网站开发技术公司,网站开发介绍人拿多少钱,台州网站建设/推广公司,uniapp开源商城源码简介
玩家用鼠标控制飞机#xff08;白色方块#xff09;移动#xff0c;按下鼠标后#xff0c;玩家所在位置出现子弹#xff0c;子弹匀速向右飞行。
代码
没有什么新的东西#xff0c;使用两个精灵类表示玩家和子弹。 有一个细节需要注意#xff0c;当子弹飞出屏幕…简介
玩家用鼠标控制飞机白色方块移动按下鼠标后玩家所在位置出现子弹子弹匀速向右飞行。
代码
没有什么新的东西使用两个精灵类表示玩家和子弹。 有一个细节需要注意当子弹飞出屏幕时要将子弹清除(kill)。否则虽然看不见子弹了但是子弹还是一直存在会占用内存。
import pygame
import sysclass Player(pygame.sprite.Sprite):def __init__(self):super().__init__()self.image pygame.Surface((50, 50))self.image.fill((255, 255, 255))self.rect self.image.get_rect(center (screen_size[0]//2, screen_size[1]//2))def update(self):self.rect.center pygame.mouse.get_pos()def shoot(self):return Bullet(self.rect.centerx, self.rect.centery)class Bullet(pygame.sprite.Sprite):def __init__(self,pos_x, pos_y):super().__init__()self.image pygame.Surface((50, 10))self.image.fill((255, 0, 0))self.rect self.image.get_rect(center (pos_x, pos_y))self.speed 5def update(self):self.rect.x self.speed# 如果子弹超出屏幕就删除。否则子弹会在屏幕外一直存在。if self.rect.right screen_size[0] 20:self.kill()# 初始化
pygame.init()
screen_size (800, 600)
screen pygame.display.set_mode(screen_size)
pygame.display.set_caption(Pygame Demo)
clock pygame.time.Clock()pygame.mouse.set_visible(False)player Player()
player_group pygame.sprite.Group()
player_group.add(player)bullet_group pygame.sprite.Group()while True:for event in pygame.event.get():if event.type pygame.QUIT:pygame.quit()sys.exit()if event.type pygame.MOUSEBUTTONDOWN:bullet player.shoot()bullet_group.add(bullet)# update# drawscreen.fill((0, 0, 0)) # 先画子弹再画玩家否则玩家会被子弹挡住。bullet_group.update()bullet_group.draw(screen)player_group.update()player_group.draw(screen)pygame.display.flip()clock.tick(60)