失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > python实现微信小游戏打飞机代码

python实现微信小游戏打飞机代码

时间:2018-11-15 03:28:58

相关推荐

python实现微信小游戏打飞机代码

各位小伙伴们想要跟我交流的话可以微信扫一扫下面的公众号二维码,可以在公众号联系我哦~

python中部分代码转自crossin编程教室的代码

import pygameimport randomfrom sys import exit #向sys模块借用个exit函数来退出程序#定义一个敌机类class Enemy:def restar(self):#重置敌机位置与速度self.x=random.randint(100,600)self.y=random.randint(-200,-80)self.speed=random.random()+0.4def __init__(self):self.restar()self.image=pygame.image.load('enermy.jpg')def move(self):if self.y < 800:self.y+=self.speed #向下移动else:self.restar()#定义一个bullet类,封装子弹相关的数据和方法class Bullet:def __init__(self):self.x=0;self.y=-1;self.image=pygame.image.load('bulet.jpg')self.active=False #默认不激活子弹def move(self):#激活状态下,向上移动if self.active:self.y-=0.8#挡飞出屏幕,设为不激活if self.y<0:self.active=Falsedef restar(self):#重置子弹位置子弹mouseX,mouseY=pygame.mouse.get_pos()self.x=mouseX-self.image.get_width()/2;self.y=mouseY-self.image.get_height()/2;self.active=True;def checkhit(enemy,bullet):#如果子弹在敌机的图片范围之内if (bullet.x > enemy.x and bullet.x < enemy.x + enemy.image.get_width()) and (bullet.y > enemy.y and bullet.y < enemy.y + enemy.image.get_height()):enemy.restar();bullet.active=Falsereturn Truereturn Falseclass Plane:def restar(self):self.x=200self.y=600def __init__(self):self.restar()self.image=pygame.image.load('plane.jpg')def move(self):x, y = pygame.mouse.get_pos(); # 跟随鼠标移动x -= self.image.get_width() / 2;y -= self.image.get_height() / 2;self.x=x;self.y=ydef checkcrash(enemy, plane):if (plane.x + 0.7*plane.image.get_width() > enemy.x) and (plane.x + 0.3*plane.image.get_width() < enemy.x + enemy.image.get_width()) and (plane.y + 0.7*plane.image.get_height() > enemy.y) and (plane.y + 0.3*plane.image.get_width() < enemy.y + enemy.image.get_height()):return Truereturn Falsepygame.init()screen=pygame.display.set_mode((1000,700),0,32) #创建一个窗口pygame.display.set_caption('xwr!')#设置窗口标题background=pygame.image.load('pygame.jpg') #加载并转换图像plane=Plane()#加载飞机图像bullets=[]#创建子弹的listfor i in range(5):bullets.append(Bullet()) #向list添加5发子弹count_b=len(bullets)#子弹总数index_b=0 #即将激活的子弹序号interval_b=0#发射子弹的间隔enemies=[]for e in range(5):enemies.append(Enemy())gameover = False#分数score = 0#用以显示文字的font变量font = pygame.font.Font(None, 32)while True: #游戏主循环函数for event in pygame.event.get():if event.type==pygame.QUIT: #接收到退出事件后退出程序pygame.quit()exit()if gameover and event.type==pygame.MOUSEBUTTONUP:plane.restar()for e in enemies:e.restar()for b in bullets:b.restar()score=0;gameover=Falsescreen.blit(background, (0, 0)) # 将背景图画上去if not gameover:interval_b-=1 #发射间隔递减if interval_b<0: #激活一发子弹bullets[index_b].restar()interval_b=80 #重置间隔时间index_b=(index_b+1)%count_b#子弹序号周期性递增for b in bullets: #处于激活状态的子弹,移动位置并绘制if b.active:for e in enemies:if checkhit(e,b):score+=100b.move()screen.blit(b.image,(b.x,b.y))for e in enemies:if checkcrash(e, plane):gameover = Truee.move()screen.blit(e.image,(e.x,e.y))plane.move()screen.blit(plane.image, (plane.x, plane.y))# 在屏幕左上角显示分数text = font.render("Socre: %d" % score, 1, (0, 0, 0))screen.blit(text, (0, 0))else:# 在屏幕中央显示分数text = font.render("Socre: %d" % score, 1, (0, 0, 0))screen.blit(text, (190, 400))passpygame.display.update() #刷新一下界面

如果觉得《python实现微信小游戏打飞机代码》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。