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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 :