赞
踩
import pygame import time #循环里面要sleep一下,不然一会儿就将内存占满了 from pygame.locals import \* #检测键盘 import random import sys #退出系统 #动态的项目,先截个静态图来分析:化动为静,化难为易,一个西瓜切成块,再拼接起来 #拿到一个大项目,首先把项目的各个元素分成一个个的对象,确定对象具备的属性,方法,然后再组装成为一个项目 #玩家类: #属性:显示窗口、位置、图片、子弹列表、移动状态 #方法:显示、移动、开火,凡是动作类都搞成方法 class player(): def \_\_init\_\_(self,screen): self.screen=screen#将一个窗口对象作为了属性值 self.x=150 self.y=500 self.img =pygame.image.load("飞机\\\\hero.gif") self.bullet\_list=\[\] self.ifmoveright=0#0表示不移动,1表示移动 self.ifmoveleft=0 def display(self): self.screen.blit(self.img,(self.x,self.y)) print() for f in self.bullet\_list: f.move() f.display() if f.y<=0: self.bullet\_list.remove(f) def move(self): if self.ifmoveleft==1 and self.x>=-30: self.x-=20 if self.ifmoveright==1 and self.x<=270: self.x+=20 def fire(self): d=playerzd(self.screen,self.x,self.y) self.bullet\_list.append(d) class playerzd(): def \_\_init\_\_(self,screen,x,y): self.screen=screen self.x=x self.y=y self.img=pygame.image.load("飞机\\\\bullet.png") def display(self): self.screen.blit(self.img,(self.x,self.y)) def move(self): self.y-=20 class diji(): def \_\_init\_\_(self,screen): self.screen=screen#将一个窗口对象作为了属性值 self.x=0 self.y=0 self.img =pygame.image.load("飞机\\\\enemy1.png") self.bullet\_list=\[\] self.dijimove=0#0表示左移动,1表示右移动 def display(self): self.screen.blit(self.img,(self.x,self.y)) for b in self.bullet\_list: b.move() b.display() if b.y>=600: self.bullet\_list.remove(b) def move(self): if self.x<=0: self.dijimove=1 if self.x>280: self.dijimove=0 if self.dijimove==1: self.x+=10 if self.dijimove==0: self.x-=10 def fire(self): dijizd1=dijizd(self.screen,self.x,self.y) self.bullet\_list.append(dijizd1) class dijizd(): def \_\_init\_\_(self,screen,x,y): self.screen=screen#将一个窗口对象作为了属性值 self.x=x self.y=y self.img=pygame.image.load("飞机\\\\bullet-1.gif") def display(self): self.screen.blit(self.img,(self.x,self.y)) def move(self): self.y+=20 #玩家子弹类 #键盘监控 def jpinput(player): for event in pygame.event.get(): if event.type==QUIT: print("正在退出") sys.exit(0)#强制退出 if event.type==KEYDOWN: if event.key==K\_RIGHT: print("正在右移动") player.ifmoveright=1 if event.key==K\_LEFT: print("正在左移动") player.ifmoveleft=1 if event.key==K\_SPACE: print("玩家开火") player.fire() if event.type==KEYUP: if event.key==K\_RIGHT: player.ifmoveright=0 if event.key==K\_LEFT: player.ifmoveleft=0 class main(): screen=pygame.display.set\_mode((300,600)) backimg = pygame.image.load("飞机\\\\background.png") a = player(screen) b = diji(screen) while 1==1: screen.blit(backimg,(0,0)) b.move() c=random.randint(1,5) if c==1: b.fire() b.display() jpinput(a) a.move() a.display() pygame.display.update() time.sleep(0.5)
如果你现在还是不会Python也没关系,下面我会给大家免费分享一份Python全套学习资料, 包含视频、源码、课件,希望能帮到那些不满现状,想提升自己却又没有方向的朋友,可以和我一起来学习交流。
① Python所有方向的学习路线图,清楚各个方向要学什么东西
② 600多节Python课程视频,涵盖必备基础、爬虫和数据分析
③ 100多个Python实战案例,含50个超大型项目详解,学习不再是只会理论
④ 20款主流手游迫解 爬虫手游逆行迫解教程包
⑤ 爬虫与反爬虫攻防教程包,含15个大型网站迫解
⑥ 爬虫APP逆向实战教程包,含45项绝密技术详解
⑦ 超300本Python电子好书,从入门到高阶应有尽有
⑧ 华为出品独家Python漫画教程,手机也能学习
⑨ 历年互联网企业Python面试真题,复习时非常方便
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。