• 大小: 4.65MB
    文件类型: .zip
    金币: 2
    下载: 0 次
    发布日期: 2024-02-02
  • 语言: Python
  • 标签: Python  Pygame  Tank  Py2Exe  

资源简介

完整的游戏开发源代码,赚1分不过分吧 可以先看博文再下载哦,http://blog.csdn.net/cmd9x/article/details/48950427

资源截图

代码片段和文件信息

#coding=utf-8
import random
import pygame
from const import *

class Block(pygame.sprite.DirtySprite):
    #图片多行组成,每行一种类型
    def __init__(self engine who type pos delay = 0 layer = LIST_BALKS):
        pygame.sprite.DirtySprite.__init__(self)
        self.engine = engine
        self.mode = 1 #-1销毁 0出生 1正常 2爆炸
        self.who = who #-1边界 0可击毁地图目标 1玩家1 2玩家2 3敌人
        self.type = type
        self.scale = False #是否缩放
        self.dir = DIR_UP  #方向(对运动目标有效)
        self.can_through = False #是否允许通过
        self.can_destory = True  #是否允许消灭(子弹可以击毁)
        self.destory_fire = 1 #击毁需要火力等级
        self.pos = pos
        self.animation = True #贴图动画(玩家坦克2帧,不动时就不需动画效果了)
        self.frame_delay = delay #帧延时(多帧时有效)
        self.image_change(self.type self.frame_delay)
        self.engine.add_sprite(self layer)
        
    def get_rect(self):
        pt = [self.pos[0]+1 self.pos[1] + 1]
        return pygame.Rect(pt (self.width-2 self.height-2))
    
    def image_change(self type = -1 delay = 0):
        if type >=  0:
            self.type = type
        if delay > 0:
            self.frame_delay = delay
        self.frame_index = 0
        angle = DIR_CFG[self.dir][“angle“]
        self.frames = self.engine.get_frame(self.type angle self.scale)        
        self.frame_count = len(self.frames)
        self.image = self.frames[self.frame_index]
        self.width = self.image.get_width()
        self.height = self.image.get_height()
                
    def inc_counter(self timer):
        #累计一定时间后进行帧切换
        if self.frame_delay > 0 and timer % self.frame_delay == self.frame_delay - 1:
            self.next_frmae()
    
    def next_frmae(self):
        if self.frame_count > 1:
            if self.frame_index + 1 == self.frame_count:
                self.frame_index = 0
            else:
                self.frame_index += 1
            if self.animation:
                self.image = self.frames[self.frame_index]
            
    def hit(self bullet):
        if self.can_destory and bullet.level >=  self.destory_fire:
            self.die()
    
    def draw(self screen):
        screen.blit(self.image self.pos)
        
    def die(self):
        self.kill()
        del self

class Brick(Block):
    #砖
    def __init__(self engine who type pos delay layer):
        Block.__init__(self engine who type pos delay layer)
        self.can_through = False
        
    def hit(self bullet):
        if bullet.who !=  WHO_ENEMY:
            self.engine.play_sound(SND_BRICK)
        if bullet.level > 2:
            self.die()
        else:
            #击中不中位置,火力不同产生的销毁效果也不同
            type = BRICK_TAB[bullet.dir][self.type]
            if type == M_00:
                self.die()
            else:
                self.image_change(type)
        
class Ice(Block):
    #冰
    def __init__(self engine who type pos delay layer):
        

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2015-10-18 16:26  Tank\
     目录           0  2015-09-21 00:58  Tank\nbproject\
     目录           0  2015-09-23 22:11  Tank\nbproject\private\
     文件           0  2015-09-23 22:11  Tank\nbproject\private\private.properties
     文件         658  2015-10-26 21:26  Tank\nbproject\private\private.xml
     文件         116  2015-10-18 15:07  Tank\nbproject\project.properties
     文件         430  2015-10-18 15:07  Tank\nbproject\project.xml
     目录           0  2015-10-26 21:26  Tank\src\
     文件        6750  2015-10-18 15:39  Tank\src\block.py
     文件        9672  2015-10-18 15:09  Tank\src\const.py
     目录           0  2015-10-18 17:52  Tank\src\data\
     文件       10536  2015-09-26 02:19  Tank\src\data\add_life.ogg
     文件        6856  2015-09-26 02:19  Tank\src\data\add_score.ogg
     文件       13886  2015-09-26 02:08  Tank\src\data\game_over.ogg
     文件        8880  2015-09-26 02:05  Tank\src\data\game_pause.ogg
     文件       33113  2015-09-26 02:05  Tank\src\data\game_start.ogg
     文件        8099  2015-09-26 02:19  Tank\src\data\get_props.ogg
     文件        4423  2015-09-26 02:19  Tank\src\data\hit_border.ogg
     文件        4253  2015-09-26 02:19  Tank\src\data\hit_brick.ogg
     文件        7109  2015-09-26 02:18  Tank\src\data\hit_kill.ogg
     文件        7673  2015-09-26 02:18  Tank\src\data\hit_special.ogg
     文件        4226  2015-09-26 02:18  Tank\src\data\hit_steel.ogg
     文件        3936  1999-09-20 16:20  Tank\src\data\ICOIN.FON
     文件        4188  2015-09-26 02:18  Tank\src\data\inc_score.ogg
     文件        4680  2015-09-26 02:06  Tank\src\data\shoot.ogg
     文件        9008  2015-09-26 02:16  Tank\src\data\speed_normal.ogg
     文件        7875  2015-09-26 02:17  Tank\src\data\speed_up.ogg
     文件        9737  2015-10-11 11:50  Tank\src\data\tank.png
     目录           0  2015-10-18 18:21  Tank\src\dist\
     文件        6750  2015-10-18 15:39  Tank\src\dist\block.py
     文件        9672  2015-10-18 15:09  Tank\src\dist\const.py
............此处省略106个文件信息

评论

共有 条评论