コード例 #1
0
ファイル: gamestate.py プロジェクト: hsandt/Project-1
	def __init__(self):
		# charger font
		self.font = pygame.font.Font(None, 40)
		# charger images
		self.images = {
			"stars": load_image("stars.png"),
			"earth": load_image("earth.png")
		}
コード例 #2
0
ファイル: projectile.py プロジェクト: gustvgdt/Project-1
 def __init__(self,x0,y0, angle0):
     
     Projectile.__init__(self,x0,y0,angle0)
     self.vit=10
     self.cpt=1000
     self.im1 = load_image('reddragon1.png')[0].convert()
     self.im2 = load_image('reddragon2.png')[0].convert()
     self.im3 = load_image('reddragon3.png')[0].convert()
     self.im4 = load_image('reddragon4.png')[0].convert()
     self.image=self.im1
     self.image.set_colorkey((255,255,255))
コード例 #3
0
ファイル: character.py プロジェクト: gustvgdt/Project-1
 def __init__(self, image_path, position, max_life, atk, max_speed) :
     
     pg.sprite.Sprite.__init__(self)
     
     if image_path == None:
         self.image = None
     else:        
         try:
             print(load_image)
             self.image_all = load_image(image_path, -1)[0] #sprite sheet
         except:
             print("Impossible de charger l'image du personnage")
         rect_tab = [[pg.Rect(32*i, 48*j, 32, 48) for j in range(4)] for i in range(4)]  
         self.images = [[self.image_all.subsurface(rect_tab[i][j]) for i in range(4)] for j in range(4)]
         self.image = self.images[0][0]
             
     self.position = position
     self.rect = pg.rect.Rect(position[0], position[1], 32, 48)
     self.speed = max_speed
     self.life = max_life
     self.atk = atk #attaque de l'entité
     self.state = 0 #Défini l'état de l'entité (0 : immobile, 1: mouvement, 2: attaque, 3: touché)
     self.aim = 0 #"angle" de visé de l'entité
     self.cpt = 1000
     self.i_image = 0
     self.j_image = 0
コード例 #4
0
ファイル: building.py プロジェクト: TVGDT/Project-1
    def __init__(self,x0,y0,height = 48, width = 64, lifeMax = 1000, period = 120):

        Building.__init__(self,x0,y0,height,width,lifeMax = 1000)
        self.image = load_image('Cochon.png')
        self.image.set_colorkey((255,255,255))


        self.period = period
        self.gene_time = period
        self.gene_pos = (x0 + 20, y0 + 65)
コード例 #5
0
ファイル: projectile.py プロジェクト: jbschtlr/Project-1
    def __init__(self, x0, y0, angle0):

        Projectile.__init__(self, x0, y0, angle0)
        self.vit = 6
        self.cpt = 1000
        self.nb_sprites = 4  # temp

        self.spritesheet = load_image("baseballs_demo.png", colorkey=-1)
        clip_rect_tab = [pygame.Rect(6 * i, 0, 6, 6) for i in range(self.nb_sprites)]
        self.sprites = [self.spritesheet.subsurface(clip_rect) for clip_rect in clip_rect_tab]
        self.image = self.sprites[0]
        self.sprite_index = 0  # désigne le numéro du sprite en cours
コード例 #6
0
ファイル: animsprite.py プロジェクト: hsandt/Project-1
    def __init__(self, spritesheet_name, sprite_width, sprite_height, animation_info_hash, init_animation_name):
        """
        Initialise un sprite animé depuis le spritesheet 'spritesheet_name' avec des sprites de dimension (sprite_width, sprite_height)

        Le sprite animé est composé de différentes 'animations' basées sur le spritesheet suivant le paramètre 'animation_info_hash'.
        'animation_info_hash' est un hash dont chaque entrée correspond aux infos d'une animation. Chaque entrée est décrite comme suit :
        - une clé donnant le nom de l'animation (marche haut, immobile droite...)
        - une valeur sous forme de hash donnant :
            - 'start' : le numéro du sprite de départ (les sprites sont comptés de gauche à droite et de haut en bas sur la spritesheet et sont de dimension connue)
            - 'end' : le numéro du sprites final (les sprites sont supposés consécutifs sur la spritesheet)
            - 'duration' : la durée de chaque sprite (pour l'instant, la durée est la même pour tous les sprites)
            (ou simplement un tuple)

        Puis on en déduit 'animation_hash' qui contient véritablement les animations, sous le format suivant :
        - en clé, le nom de l'animation
        - en valeur, un tuple (liste des sprites de l'animation, durée de chaque sprite)

        On pourrait aussi se contenter de garder 'animation_info_hash' en attribut et retrouver les sprites voulus dans la spritesheet
        à partir de ces données à chaque fois qu'un update est nécessaire (on s'arrêterait après la définition de sprite_list)

        """

        sprite.Sprite.__init__(self)

        # pour l'instant, si le chargement échoue, on exit...
        # pas très correct, mieux vaut faire un raise dans load_image()
        # et le récupérer dans une clause try ici
        self.spritesheet = load_image(spritesheet_name, colorkey=-1)

        nb_sprites_i = self.spritesheet.get_width() / sprite_width
        nb_sprites_j = self.spritesheet.get_height() / sprite_height

        # on travaille avec un tableau 2D de sprites : une ligne par état
        clip_rect_list = [
            Rect(sprite_width * i, sprite_height * j, sprite_width, sprite_height)
            for j in range(nb_sprites_j)
            for i in range(nb_sprites_i)
        ]
        sprite_list = [self.spritesheet.subsurface(clip_rect) for clip_rect in clip_rect_list]
        self.animation_dict = {
            animation_name: (
                sprite_list[animation_info["start"] : animation_info["end"] + 1],
                animation_info["duration"],
            )
            for animation_name, animation_info in animation_info_hash.iteritems()
        }
        self.change_animation(init_animation_name)  # animation en cours (marche haut, attaque droite...)
        self.sprite_index = 0  # numéro du sprite en cours dans cette animation
        self.image = self.animation[0][
            self.sprite_index
        ]  # le premier élement du couple self.animation est la liste de sprites en jeu
        self.time = self.animation[1]  # on lance le décompte avec la durée, le deuxième élément du couple
コード例 #7
0
ファイル: building.py プロジェクト: TVGDT/Project-1
    def __init__(self,x0,y0,height = 48, width = 32, lifeMax = 100):

        Building.__init__(self,x0,y0,height,width,lifeMax = 1000)
        self.image = load_image('pitching_machine_demo.png')
        self.image.set_colorkey((255,255,255))
コード例 #8
0
ファイル: building.py プロジェクト: jbschtlr/Project-1
 def __init__(self,x0,y0,height = 48, width = 64, lifeMax = 1000):
     
     Building.__init__(self,x0,y0,height,width,lifeMax = 1000)
     self.image = load_image('Cochon.png').convert()
     self.image.set_colorkey((255,255,255))