Intégrer animations.gif python
Bonjour,
Je suis actuellement sur un projet de programmation pour mon bac. Je tente de reprendre dans ce jeu le principe d'Alchemy (http://littlealchemy.com) dans une petite interface 2D codée avec la bibliothèque Pygame de Python.
J'ai déjà bien avancé et j'aimerai maintenant attaquer la déco :) Je souhaiterai pouvoir intégrer des animation gif dans certaines zones de mon interface.
Les tutos ne fusent pas sur internet et je n'ai pas suffisament de temps et de maîtrise pour retranscrire mon code en java ou autre langage ...
J'implore donc l'aide de quelqu'un qui maîtrise bien python.
Si vous avez une solution, une démarche à me proposer pour pouvoir intégrer ce genre d'images : http://www.cellphonehits.net/site/up...d-electric.gif
à ce genre de programme :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89
|
import pygame as pg
import sys
import itertools
ELE_LIST = ["feu","eau",]
TRANS_DICT = {("feu" ,"eau") : "vapeur",
("vapeur" ,"eau") : "alcool",
("alcool","feu") : "molotov"}
class Dragable(object):
def __init__(self,kind,location):
self.kind = kind
self.img = self.get_img()
self.rect = self.img.get_rect(center=location)
self.selected = False
def get_img(self):
return pg.image.load(self.kind+"-icon.png").convert_alpha()
def events(self,ev):
if ev.type == pg.MOUSEBUTTONDOWN and self.rect.collidepoint(ev.pos):
if ev.button == 1:
self.selected = True
elif ev.type == pg.MOUSEBUTTONUP:
if ev.button == 1:
self.selected = False
def update(self,Surf):
if self.selected:
self.rect.center = pg.mouse.get_pos()
Surf.blit(self.img,self.rect)
class Control(object):
def __init__(self):
pg.init()
self.Screen = pg.display.set_mode((1250,850))
self.bg = pg.image.load("interface.iter.jaune.png").convert()
self.elements = [Dragable(name,(1150,350+90*i)) for i,name in enumerate(ELE_LIST*2)]
self.done = False
def event_loop(self):
for ev in pg.event.get():
if ev.type==pg.QUIT or (ev.type==pg.KEYDOWN and ev.key==pg.K_ESCAPE):
self.done = True
for Ele in self.elements:
Ele.events(ev)
def update(self):
self.Screen.fill(0)
self.Screen.blit(self.bg,(0,0))
[Ele.update(self.Screen) for Ele in self.elements if not Ele.selected]
[Ele.update(self.Screen) for Ele in self.elements if Ele.selected]
def alchemize(self):
for Eles in itertools.permutations(self.elements,2):
if not Eles[0].selected and not Eles[1].selected:
if Eles[0].rect.colliderect(Eles[1]):
self.elements.remove(Eles[0])
key = Eles[0].kind,Eles[1].kind
if key[0] != key[1]:
if key not in TRANS_DICT:
key = key[::-1]
Eles[1].kind = TRANS_DICT[key]
Eles[1].img = Eles[1].get_img()
break
def main(self):
while not self.done:
self.event_loop()
self.alchemize()
self.update()
pg.display.update()
if __name__ == "__main__":
RunIt = Control()
RunIt.main()
pg.quit();sys.exit() |
Merci énormément !
Ci joint les images nécéssaires pour faire tourner le programme :
http://imageshack.us/a/img191/6811/vapeuricon.jpg
http://imageshack.us/a/img201/5126/molotovicon.png
http://imageshack.us/a/img835/6812/i...eiterjaune.png
http://imageshack.us/a/img21/9220/feuicon.png
http://imageshack.us/a/img17/5374/eauicon.png
http://imageshack.us/a/img801/5373/alcoolicon.png