小白master 2019-08-24 12:39 采纳率: 0%
浏览 396

Python从入门到实践自己写的小程序中,按空格键无法显示子弹,y值也不动,但不会报错?

Python从入门到实践自己写的小程序中,按空格键无法显示子弹,y值也不动,但不会报错
实在找不到原因,恳请大佬帮忙
import sys
import pygame
from pygame.sprite import Sprite
from pygame.sprite import Group

class Me():

def __init__(self,screen):
    self.screen = screen

    self.image = pygame.image.load('images/86.bmp')
    self.rect = self.image.get_rect()
    self.screen_rect = screen.get_rect()

    self.rect.centerx = self.screen_rect.centerx
    self.rect.centery = self.screen_rect.centery

def blitme(self):
    self.screen.blit(self.image,self.rect)

class Bullet(Sprite):
def init(self,screen):
super().__init__()
self.screen = screen
w = 3
h = 15
self.rect = pygame.Rect(0,0,w,h)
self.rect.x = 50
self.rect.y = 20
self.color = (170,60,60)
self.y = float(self.rect.y)
def update(self):
self.y += 0.0005
self.rect.y = self.y
def draw_bullet(self):
pygame.draw.rect(self.screen,self.color,self.rect)
print(self.rect.y)

def keydown_event(event,screen,me,bullets):
#方法写错地方了,方法里套方法不行
if event.key == pygame.K_RIGHT:
me.rect.centerx += 5
elif event.key == pygame.K_LEFT:
me.rect.centerx -= 5
elif event.key == pygame.K_DOWN:
me.rect.centery += 5
elif event.key == pygame.K_UP:
me.rect.centery -= 5
elif event.key == pygame.K_SPACE:
new_bullet = Bullet(screen)
bullets.add(new_bullet)
for bullet in bullets.sprites():
bullet.draw_bullet()

def check_events(screen,me,bullets):

for event in pygame.event.get():
if event.type == pygame.QUIT:
sys.exit()
elif event.type == pygame.KEYDOWN:
keydown_event(event,screen,me,bullets)

def run_game():
pygame.init()
screen = pygame.display.set_mode((1200,600))
pygame.display.set_caption('me')
me = Me(screen)
bg_color = (255,255,255)
bullets = Group()

while True:
    check_events(screen,me,bullets)
    bullets.update()
    screen.fill(bg_color)
    me.blitme()        
    pygame.display.flip()

run_game()


  • 写回答

1条回答 默认 最新

  • czy,出发! 2023-10-03 16:50
    关注

    在def _update_screen(self):的最后加上
    pygame.display.flip()
    使最近绘制的屏幕可见

    评论

报告相同问题?

悬赏问题

  • ¥15 求帮我调试一下freefem代码
  • ¥15 R语言Rstudio突然无法启动
  • ¥15 关于#matlab#的问题:提取2个图像的变量作为另外一个图像像元的移动量,计算新的位置创建新的图像并提取第二个图像的变量到新的图像
  • ¥15 改算法,照着压缩包里边,参考其他代码封装的格式 写到main函数里
  • ¥15 用windows做服务的同志有吗
  • ¥60 求一个简单的网页(标签-安全|关键词-上传)
  • ¥35 lstm时间序列共享单车预测,loss值优化,参数优化算法
  • ¥15 Python中的request,如何使用ssr节点,通过代理requests网页。本人在泰国,需要用大陆ip才能玩网页游戏,合法合规。
  • ¥100 为什么这个恒流源电路不能恒流?
  • ¥15 有偿求跨组件数据流路径图