import pygame import time #ループ内でスリープする必要があります。そうしないと、しばらくするとメモリがいっぱいになります from pygame.locals import * #キーボードを検出 import Random import sys #システムを終了 #動的プロジェクトの場合は、最初に静的な写真を撮ります分析する: 平静を保つために、困難を簡単に変えてください。スイカを細かく切って、それらを組み合わせてください。 大規模なプロジェクトを取得した場合、まずプロジェクトのさまざまな要素をオブジェクトに分割し、オブジェクトの属性とメソッドを決定します。 # Player クラス: #属性 : 表示ウィンドウ、位置、画像、箇条書きリスト、移動ステータス # メソッド: 表示、移動、発射、すべてのアクション クラスがメソッドに作成されます class player() : def __init__(self,screen): self.screen =screen# 属性値としてウィンドウ オブジェクトを使用します self.x=150 self.y=500 self.img =pygame.image.load("Airplane\\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)) self.y=y print() for f in self.bullet_list: f.move() f.display() if fy<=0: self.bullet_list.remove(f) def move(self): if self.ifmoveleft==1 および self。 x>=-30: self.ifmoveright==1 および self.x<=270 の場合、 self.x-= 20 : 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.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("Airplane\\emone1.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 () by>=600 の場合: self.x<=0 の場合: self.dijimove=1 self.bullet_list.remove(b) def move(self): #玩家子弹类 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): : ifevent.type==QUIT: print("Exiting") sys.exit(0)#強制終了 ifevent.type==KEYDOWN: ifevent.key = =K_RIGHT: print("右へ移動") player.ifmoveright=1 ifevent.key==K_LEFT: print("左へ移動") player.ifmoveleft=1 ifevent.key==K_SPACE: print("プレイヤーの射撃") player.fire() ifevent.type==KEYUP: ifevent.key==K_RIGHT: player.ifmoveright=0 ifevent.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) c==1 の場合: b.fire() b.display() jpinput(a) a.move() a .display() pygame.display.update() time.sleep(0.5)
Python の基礎 - 人間と機械の戦争、プログラミング的思考
おすすめ
転載: blog.csdn.net/qq_40333984/article/details/125637376
おすすめ
ランキング