[英]Why is the character movment for my game not working properly
我的角色移動是錯誤的,我根本不知道為什么當我運行它時它向前移動並且像向后移動錯誤我改變了速度和幀率無濟於事並且害怕觸摸代碼因為我只是在背景時讓它工作可見
import pygame
import os
WIDTH, HEIGHT = 1920, 1080
WIN = pygame.display.set_mode((WIDTH, HEIGHT))
pygame.display.set_caption("Gaem")
WHITE = (255, 255, 255)
FPS = 60
Vel = 5
CHARACTER = pygame.image.load('MAN.png')
def draw_window(CHARACTERM):
WIN.fill((WHITE))
WIN.blit(CHARACTER, (CHARACTERM.x, CHARACTERM.y))
pygame.display.update()
def main():
CHARACTERM = pygame.Rect(100, 300, 850, 450)
clock = pygame.time.Clock()
run = True
while run:
clock.tick(FPS)
for event in pygame.event.get():
if event.type == pygame.QUIT:
run = False
##########CHARACTER MOVMENT####################
draw_window(CHARACTERM)
keys_pressed = pygame.key.get_pressed()
if keys_pressed[pygame.K_a]: #Left
CHARACTERM.x -= Vel
draw_window(CHARACTERM)
keys_pressed = pygame.key.get_pressed()
if keys_pressed[pygame.K_d]: #Right
CHARACTERM.x += Vel
draw_window(CHARACTERM)
keys_pressed = pygame.key.get_pressed()
if keys_pressed[pygame.K_w]: #Up
CHARACTERM.y -= Vel
draw_window(CHARACTERM)
keys_pressed = pygame.key.get_pressed()
if keys_pressed[pygame.K_s]: #Down
CHARACTERM.y += Vel
################################################
draw_window(CHARACTERM)
pygame.quit()
if __name__ == "__main__":
main()
謝謝扎坦多1
一次調用pygame.key.get_pressed()
和draw_window()
就足夠了:
def main():
CHARACTERM = pygame.Rect(100, 300, 850, 450)
clock = pygame.time.Clock()
run = True
while run:
clock.tick(FPS)
for event in pygame.event.get():
if event.type == pygame.QUIT:
run = False
keys_pressed = pygame.key.get_pressed()
if keys_pressed[pygame.K_a]: #Left
CHARACTERM.x -= Vel
if keys_pressed[pygame.K_d]: #Right
CHARACTERM.x += Vel
if keys_pressed[pygame.K_w]: #Up
CHARACTERM.y -= Vel
if keys_pressed[pygame.K_s]: #Down
CHARACTERM.y += Vel
draw_window(CHARACTERM)
pygame.quit()
如果多次調用draw_window()
, pygame.display.update()
將在每一幀中執行多次。 在應用程序循環結束時更新顯示就足夠了。 多次調用pygame.display.update()
或pygame.display.flip()
會導致閃爍。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.