Pygame (Python 라이브러리)으로 만든 간단한 게임을 개발하려고합니다.
나는 sprite
객체를 가지고 있으며 player
화살표 키를 사용하여 움직입니다. 마우스를 움직이지 않으면 스프라이트가 정상적으로 움직이지만 마우스를 움직이면 스프라이트가 더 빨리 움직입니다 (x2 또는 x3처럼). player
객체는 내부 charsGroup
VAR.
나는 W7과 우분투에서 게임을 운영했다. 두 OS 모두에서 동일한 일이 발생합니다.
NPC와 총알처럼 움직이는 엔티티가 더 많지만 플레이어에게는 영향을 미치지 않습니다. 이를 감안할 때 문제가 플레이어 이동 시스템 (화살표 키)과 직접 연결되어 있다고 생각합니다.
객체 의 update()
방법은 다음과 같습니다 player
.
def update(self):
for event in pygame.event.get():
key = pygame.key.get_pressed()
mouseX, mouseY = pygame.mouse.get_pos()
if event.type == pygame.MOUSEBUTTONDOWN:
self.bulletsGroup.add(Bullet(pygame.image.load("bullet.png"),
self.rect.x + (self.image.get_width()/2),
self.rect.y + (self.image.get_height()/2),
mouseX, mouseY, 50, 50))
if key[pygame.K_RIGHT]:
if not self.checkCollision():
self.rect.x += 10
else:
self.rect.x -= 10
if key[pygame.K_LEFT]:
if not self.checkCollision():
self.rect.x -= 10
else:
self.rect.x += 10
if key[pygame.K_UP]:
if not self.checkCollision():
self.rect.y -= 10
else:
self.rect.y += 10
if key[pygame.K_DOWN]:
if not self.checkCollision():
self.rect.y += 10
else:
self.rect.y -= 10
그리고 여기 while 루프가 있습니다 :
while True:
if PLAYER.healthBase <= 0:
GAMEOVER = True
if not GAMEOVER:
mapTilesGroup.draw(SCREEN)
charsGroup.update()
charsGroup.draw(SCREEN)
npcsGroup.update()
npcsGroup.draw(SCREEN)
drawBullets()
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
sys.exit()
if GAMEOVER:
myfont = pygame.font.SysFont("monospace", 30)
label = myfont.render("GAME OVER!", 1, (255, 255, 0))
SCREEN.blit(label, (400, 300))
freq.tick(0)
pygame.display.flip()
나는 당신이 나를 도울 수있는 것이 무엇인지 모르지만 필요한 정보 (더 많은 정보 또는 코드)를 요구합니다!
BULLET_IMAGE = pygame.image.load("bullet.png")
그리고 나중에self.bulletsGroup.add(Bullet(BULLET_IMAGE...