简介:今天,首席CTO Note将与您分享与Python飞机战争有关的多少代码。如果您可以解决您现在面临的问题,请不要忘记注意此网站。让我们现在开始!
能够编写这么多代码应该能够独立解决血液问题
所以我想代码被复制到哪里,对吗?
导入pygame
从plane_sprites导入*
从背景导入背景
从敌人进口e1my
来自英雄进口英雄
从时间进口睡眠
来自子弹导入的bllet
class plane_main(对象):
def __init __(自我):
打印(“游戏初始化”)
self.screen = pygame.display.set_mode(screet_rect.size)
self.clock = pygame.time.clock()
self .__ create_sprites()
pygame.time.set_timer(create_nemy_event,1000)
pygame.time.set_timer(here_fire_event,500)
self.count = 0
self.score = 0
def __create_sprites(SELD):
#背景组
self.back_group = pygame.sprite.group()
BG1 =背景()
BG2 =背景(true)
pygame.mixer.init()
pygame.mixer.music.load(“ https://www.shouxicto.com/article/capo Propives -journey 00_00_00_00-00-00_00_59.ogg”)
pygame.mixer.music.play(-1)
self.back_group.add(BG1,BG2)
#敌方机组
self.enemy_group = pygame.sprite.group()
#enemy-级破坏小组
self.nemy1_down_group = pygame.sprite.group()
#英英
self.hero_group = pygame.sprite.group()
self.hero =英雄()
自己。hero_group.add(self.hero)
def start_game(self):
pygame.init()
打印(“开始游戏...”)
#pygame.mixer.init()
#pygame.mixer.music.load(“ https://www.shouxicto.com/article/capo Propivions -Journey 00_00_00_00-00-00_00_00_59.OGG”
#pygame.mixer.music.play(-1)
#gameicon = pygame.image.load(“ https://www.shouxicto.com/article/name.png”)
#pygame.display.set_icon(gameicon)
而真:
self.count+= 1
#1.设置刷新帧速率
self.clock.tick(10)
#2.事件监视
self .__ event_handler()
#3.崩溃检测
self .__ check_collide()
#4.更新精灵
self .__ update_sprites()
#5.更新屏幕显示
pygame.display.update()
def __EVENT_HANDLER(SELD):
“”“事件主管”“”“”“”“”
对于pygame.event.get()中的活动:
如果event.type == pygame.quit:
plane_main .__ game_over()
event.type == create_nemy_event:
self.enemy_group.add(eney()))
event.type == mero_fire_event:
self.hero.fire()
键= pygame.key.get_presse()
如果键[pygame.k_richt]:
打印(“向右移动”)
self.hero.speed = 5
self.hero.speed1 = 0
elif键[pygame.k_left]:
打印(“向左移动”)
self.hero.speed = -5
self.hero.speed1 = 0
elif键[pygame.k_up]:
打印(“向上移动”)
self.hero.speed1 = -5
self.hero.speed = 0
elif键[pygame.k_down]:
打印(“向下移动”)
self.hero.speed1 = 5
self.hero.speed = 0
别的:
self.hero.speed = 0
self.hero.speed1 = 0
如果event.type == mero_fire_event:
self.hero.fire()
打印('火子弹!!!!!')
def __check_collide(self):
“”“冲击检查”“”
#1。子弹摧毁敌机
eney_down = pygame.sprite.groupcollide(seld.enemy_group,self.hero.hero.bulets,true,true)
eney1_down_group.add(eney_down)
#2.敌人飞机撞毁了英雄
敌人= pygame.sprite.spritecollide(seld.hero,self.enemy_group,true)
#判断列表时,有内容```
如果Len(敌人)0:
睡眠(3)
##让英雄牺牲
self.hero.kill()
# 结束游戏
plane_main .__ game_over()
def __update_sprites(SELD):
self.back_group.update()
self.back_group.draw(seld.screen)
self.enemy_group.update()
self.enemy_group.draw(seld.screen)
self.hero_group.update()
self.hero_group.draw(self.screen)
self.hero.bullets.update()
self.hero.bullets.draw(seld.screen)
self.drawText(self.score),screet_rect.width -50,50)
对于eney1_down中的敌人1_down_group:
self.screen.blit(eney1_down_surface [eney1_down.down_index],eney1_down.Rect)
如果self.count%5 == 0:
eney1_down.down_index += 1
如果eney1_down.down_index == 3:
#pygame.mixer.music.load(“ https://www.shouxicto.com/article/baozha.ogg”)
#pygame.mixer.music.play()
self.score+= 5
eney1_down_group.rmove(eney1_down)
打印(self.score)
#更更更更
#对于[self.back_group,self.nemy_group,self.hero_group,self.hero.bulets]]
#group.update()
#group.draw(self.screen)
@StaticMethod
def __game_over():
“““游戏结束”””
打印(“游戏结束”)
pygame.quit()
出口 ()
fontobj = pygame.font.font('freesansbold.ttf',TexTheight)
textsurfaceobj = fontobj.render(文本,13,fontcolor,backgroundColor)
textrctobj = textsurfaceobj.get_rect()
textrctobj.center =(POSX,POSY)
self.screen.blit(textsurfaceobj,textrectobj)
#确定当前执行的文件是否为主文件
#如果不是,如果不执行的代码
如果__name__ =='__ main __':
game = blane_main()
game.start_game()
在春节,我在家里很无聊,他们发芽了经典的迷你游戏:飞机战争的想法。大概每个人都可能扮演过这个微信。给我的感觉是该游戏如何做到这一点,如何完成这个游戏,操作很容易开始,它“适合所有年龄段”?
既然这个游戏太棒了,您可以使用Python自己实现它吗?事实证明这还可以。
让我们看一下飞机战争游戏最终实施的动态效果图。
在导入pygame之前,您需要使用该命令:
包装模块的安装
(1)。__init__初始化方法:
游戏的初始化操作开始,包括:创建游戏窗户,创建敌机,背景和其他精灵
(2)。__Create_sprites创建ELF:
负责创建不同的字符,并将其添加到
(3)。start_game游戏开始方法:
负责播放背景音乐,循环使用刷新帧速率,事件监视,碰撞检测,更新绘图精灵,更新显示屏幕图像
(4)。__EVENT_HANDLER事件监视方法:
负责监视游戏界面中用户的操作,例如:关闭游戏窗口,移动左右方向键,等等。
(5)。__check_collide碰撞检测方法:
负责测试子弹是否碰撞到敌机,敌机是否碰撞到英雄飞机上,然后进行相应的操作
(6)。__update_sprites更新精灵:
负责更新并将屏幕绘制到屏幕上,将其显示给用户
(7)。__game_over游戏结束方法:
发生碰撞时,有必要确定是否需要调用该方法退出游戏
鼓励每个人亲自意识到这个迷你游戏非常有趣。编码注释更详细。在实践过程中,您可以仔细阅读以加深理解。
如果所有组件图片都是png型图片,则可以有透明的背景,否则会暴露出白色边界。
找到材料后,我们将开始建立飞机战争。
微信上的飞机由手指控制。在计算机上,我们首先用鼠标代替它。
根据我们以前在天空上移动的过程,我们可以知道该怎么做。
导入pygame
从设置导入设置
从船上进口船
导入game_functions作为gf
来自pygame.sprite Import Group
def run_game():
#初始化游戏并创建屏幕对象
pygame.init()
ai_settings = settings()
屏幕= pygame.display.set_mode
pygame.display.set_caption(“外星人入侵”)
#创建一个航天器
船=船(AI_SETTINGS,屏幕)
#创建一个用于存放子弹的组
子弹= group()
#
而真:
gf.check_events(AI_SETTINGS,屏幕,船,子弹)
ship.update()
Bullets.update()
gf.update_bullets(船,子弹)
gf.update_screen(ai_settings,屏幕,船,子弹)
run_game()
1.我们的飞机模块
导入pygame
类Myplane(pygame.sprite.sprite):
def __init __(self,bg_size):
pygame.sprite.sprite.__ Init __(self)
self.image1 = pygame.image.load(r'e:Learn pygameimageme1.png')。convert_alpha()
self.image2 = pygame.image.load(r'e:Learn pygameimageme2.png')。convert_alpha()
self.image3 = pygame.image.load(r'e:Learn pygameimageme_protect.png')。
self.destroy_images = []
self.destroy_images.extend([[[[[[[[[[[[[[[[[[[[[]]
pygame.image.load(r'e:学习pygameimageme_destroy_1.png')。convert_alpha(),),,)
pygame.image.load(r'e:学习pygameimageme_destroy_2.png')。convert_alpha(),)
pygame.image.load(r'e:学习pygameimageme_destroy_3.png')。convert_alpha(),),,)
pygame.image.load(r'e:学习pygameimageme_destroy_4.png')。convert_alpha()
)))
self.Rect = self.image1.get_rect()
self.width,self.height = bg_size [0],bg_size [1]
self.Rect.let.let.let.let.Rect.top =(self.width- self.Rect.width)// 2,self.height-self.Rect.head- 60-60
self.speed = 10
self.active = true
self.invincible = false
self.mask = pygame.mask.from_surface(self.image1)
def moveup(self):
如果self.rect.top 0:
self.Rect.top- = self.speed
别的:
self.Rect.top = 0
Def Movesown(self):
如果self.Rect.bottom self.height -30:
self.Rect.top += self.speed
别的:
self.Rect.bottom = self.height -30
Def Moveleft(自我):
如果self.Rect.LET 0:
self.Rect.Left- = self.speed
别的:
self.Rect.Left = 0
Def Moveright(自我):
如果self.rect.richt self.width:
self.Rect.Left += self.speed
别的:
self.rect.richt = self.width
def重置(self):
self.Rect.let.let.let.let.Rect.top =(self.width- self.Rect.width)// 2,self.height-self.Rect.head-30-30-30-30-30
self.active = true
self.invincible = true
2.敌机和背景模块模块
导入pygame
从随机导入 *
Smallemy类(Pygame.sprite.sprite):
能量= 1
def __init __(self,bg_size):
pygame.sprite.sprite.__ Init __(self)
self.image = pygame.image.load(r'e:学习pygameimagenemy1.png')。convert_alpha()
self.destroy_images = []
self.destroy_images.extend([[[[[[[[[[[[[[[[[[[[[]]
pygame.image.load(r'e:学习pygameimagenemy1_down1.png')。convert_alpha(),,)
pygame.image.load(r'e:学习pygameimagenemy1_down2.png')。convert_alpha(),)
pygame.image.load(r'e:学习pygameimagenemy1_down3.png')。convert_alpha(),)
pygame.image.load(r'e:学习pygameimagenemy1_down4.png')。convert_alpha()
)))
self.Rect = self.image.get_rect()
self.width,self.height = bg_size [0],bg_size [1]
self.speed = 2
self.active = true
self.Rect.let.let,self.Rect.top =
randint(0,self.width -self.rect.width),
randint(-5 * seld.head,0)
self.mask = pygame.mask.from_surface(seld.image)
self.energy = smalleNemy.energy
self.hit = false
def移动(自我):
如果self.rect.top self.height:
self.Rect.top += self.speed
别的:
self.reset()
def重置(self):
self.active = true
self.energy = smalleNemy.energy
self.Rect.let.let,self.Rect.top =
randint(0,self.width -self.rect.width),
randint(-5 * seld.head,0)
Midenemy类(Pygame.sprite.sprite):
能量= 4
结论:以上是首席执行官注释为每个人编制的Python飞机战争的相关内容的相关内容摘要。希望它对您有所帮助!如果您解决了问题,请与更多关心此问题的朋友分享?