如何解决Python清理和视觉改进
我刚刚开始学习 Python,特别是 pygame,并且正在尝试制作一个简单的跳跃游戏。我制作了一个基本的运动脚本作为测试,但动画真的很不稳定。每当方块移动时,就会有一个残像,看起来就像它刚刚崩溃一样。此外,如果您对清理脚本有任何建议,那就太好了。
import pygame
from pygame.locals import *
SIZE = 800,600
RED = (255,0)
GRAY = (150,150,150)
x = 50
y = 50
pygame.init()
screen = pygame.display.set_mode(SIZE)
running = True
while running:
for event in pygame.event.get():
if event.type == QUIT:
running = False
pressed = pygame.key.get_pressed()
if pressed[pygame.K_RIGHT]:
x += 3
if pressed[pygame.K_LEFT]:
x -= 3
if pressed[pygame.K_UP]:
y -= 3
if pressed[pygame.K_DOWN]:
y += 3
rect = Rect(x,y,50,50)
screen.fill(GRAY)
pygame.draw.rect(screen,RED,rect)
pygame.display.flip()
pygame.quit()
解决方法
在 PyGame 中,您必须管理 FPS 以保持游戏稳定。例如,如果你有一台非常快的计算机,你将有 200 或 300 FPS,并且在像你一样的小场景中,你的玩家每秒移动 200 倍的速度,所以这是相当快的,否则你的计算机就是一个真的很旧,你会得到大约 30 FPS,而你的玩家每秒移动的速度只会是你速度的 30 倍,这显然要慢得多。
我想向您解释的是 FPS 是必不可少的,因此您的游戏可以具有恒定的移动和速度。
所以我只添加了配置 FPS 的行,我设置了 60 并将速度更改为 10,但您可以轻松地为您的计算机调整这些值。
import pygame
from pygame.locals import *
SIZE = 800,600
RED = (255,0)
GRAY = (150,150,150)
x = 50
y = 50
pygame.init()
screen = pygame.display.set_mode(SIZE)
# creating a clock
clock = pygame.time.Clock()
running = True
while running:
for event in pygame.event.get():
if event.type == QUIT:
running = False
pressed = pygame.key.get_pressed()
if pressed[pygame.K_RIGHT]:
x += 10
if pressed[pygame.K_LEFT]:
x -= 10
if pressed[pygame.K_UP]:
y -= 10
if pressed[pygame.K_DOWN]:
y += 10
rect = Rect(x,y,50,50)
screen.fill(GRAY)
pygame.draw.rect(screen,RED,rect)
# setting the fps to 60,depending on your machine,60 fps is great in my opinion
clock.tick(60)
pygame.display.flip()
pygame.quit()
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。