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

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 lammps拉伸应力应变曲线分析
  • ¥15 C++ 头文件/宏冲突问题解决
  • ¥15 用comsol模拟大气湍流通过底部加热(温度不同)的腔体
  • ¥50 安卓adb backup备份子用户应用数据失败
  • ¥20 有人能用聚类分析帮我分析一下文本内容嘛
  • ¥15 请问Lammps做复合材料拉伸模拟,应力应变曲线问题
  • ¥30 python代码,帮调试
  • ¥15 #MATLAB仿真#车辆换道路径规划
  • ¥15 java 操作 elasticsearch 8.1 实现 索引的重建
  • ¥15 数据可视化Python