子弹类
Posted wfl9310
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了子弹类相关的知识,希望对你有一定的参考价值。
import pygame # pygame2d游戏 import time from pygame.locals import * class HeroPlane(object): def __init__(self,screen_temp): self.x=210 self.y=700 self.screen=screen_temp self.image= pygame.image.load("./feiji/hero1.png") self.bullet_list=[] def display(self): self.screen.blit(self.image, (self.x, self.y)) for bullet in self.bullet_list: bullet.display() bullet.move() def move_left(self): self.x-=5 def move_right(self): self.x+=5 def fire(self): self.bullet_list.append(Bullet(self.screen,self.x,self.y)) class Bullet(object): def __init__(self,screen_temp,x,y): self.x = x+40 self.y = y-20 self.screen = screen_temp self.image = pygame.image.load("./feiji/bullet.png") def display(self): self.screen.blit(self.image,(self.x,self.y)) def move(self): self.y-=20 def key_control(herotemp): for event in pygame.event.get(): # 11 if event.type == QUIT: # 按下叉号 print("exit") exit() # 退出程序,循环结束是break elif event.type == KEYDOWN: # 按下键盘键 if event.key == K_a or event.key == K_LEFT: print("left") herotemp.move_left() elif event.key == K_d or event.key == K_RIGHT: print("right") herotemp.move_right() elif event.key == K_SPACE: print("space") herotemp.fire() def main(): # 01 screen = pygame.display.set_mode((480, 852), 0, 32) # 1窗口 background = pygame.image.load("./feiji/background.png") # 2背景 hero = HeroPlane(screen) while True: # 5死循环,一直重复 screen.blit(background, (0, 0)) # 3背景贴到窗口00处 hero.display() pygame.display.update() # 4显示贴的效果 key_control(hero) time.sleep(0.01) # 6电脑配置不高的话,内存占用会很大,所以延时显示可以减少内存消耗 if __name__ == ‘__main__‘: # 0 main()
以上是关于子弹类的主要内容,如果未能解决你的问题,请参考以下文章