少儿编程分享:手把手教你用Python编写March大逃亡(三)
游戏分享:手把手教你用Python编写
March大逃亡(三)
2018.1.2
这次的对象创建更细致了
要理解创建精灵组的意义
主程序对象创建
92#主程序对象部分
93pygame.init()
94audio_init()
95screen=pygame.display.set_mode((800,600),0,32)
96pygame.display.set_caption("March大逃亡")
97font=pygame.font.Font(None,40)
98font1=pygame.font.Font(None,40)
99framerate=pygame.time.Clock()
100upImageFilename='game_start_up.png'
101downImageFilename='game_start_down.png'
102#创建按钮对象
103button=Button(upImageFilename,downImageFilename,(400,500)) 104interface=pygame.image.load("interface.png")
105
106#创建地图对象
107bg1=MyMap(0,0)
108bg2=MyMap(300,0)
109#创建一个精灵组
110group=pygame.sprite.Group()
111group_exp=pygame.sprite.Group()
112group_glasses=pygame.sprite.Group()
113#创建怪物精灵
114monster=MySprite()
115monster.load("marchboss.png",175,280,5)
116monster.position=100,90
117group.add(monster)
118
119#创建爆炸动画
120explosion=MySprite()
121explosion.load("explosion.png",128,128,6)
122#创建玩家精灵
123player=MySprite()
124player.load("march.png",80,100,5)
125player.position=400,270
126group.add(player)
127
128#创建导弹精灵
129arrow=MySprite()
130arrow.load("flame.png",40,16,3)
131arrow.position=800,320
132group.add(arrow)
在这里我依次创建
1)画板
2)标题名
3)两种字号
4)帧数
5)开始游戏图片
6)按钮对象
7)读取界面图
8)两张地图
9)精灵组
而在怪物精灵、导弹精灵、玩家精灵以及爆炸动画的创建中,我们使用MyLibrary 中的load读取了相对应的图片,以("march.png",80,100,5)为例子,python 将以宽80,长100的尺寸,将图片分为5列,依次读取图片中的图像,以形成动态的效果,最后加入精灵组。
定义变量
133#定义一些变量
134arrow_vel=15.0
135game_over=False
136you_win=False
137player_jumping=False
138jump_vel=0.0
139player_start_y=player.Y
140player_hit=False
141monster_hit=False
142p_first=True
143m_first=True
144best_score=0
145global bg_sound,hit_sound,btn_sound,bullent_sound
146bg_sound=Music(bg_au)
147hit_sound=Music(hit_au)
148btn_sound=Music(btn_au)
149bullent_sound=Music(bullent_au)
150game_round={1:'ROUND ONE',2:'ROUND TWO',3:'ROUND
THREE',4:'ROUND FOUR',5:'ROUND FIVE'}
151game_pause=True
152index=0
153current_time=0
154start_time=0
155music_time=0
156score=0
157replay_flag=True
在这里我们创建了一系列游戏状态变量,这些变量都将在之后的主程序循环中使用到。
(未完待续)