【发布时间】:2015-09-24 16:24:03
【问题描述】:
我正在尝试做一个乒乓球比赛,首先我想做一个动作……球。 所以它朝着一个方向前进,但转弯有点波涛汹涌。当你向右走然后举起然后向右释放时,它会停止向上或向右。试着绕一个圈,你会看到。 我该如何解决这个问题,还有其他关于这段代码特别糟糕的事情吗?
import pygame
import sys
from pygame.locals import *
white = (255, 255, 255)
black = (0, 0, 0)
block_size = (32, 185)
pong_size = 20, 20
pong_pos_x = 390
pong_pos_y = 280
pygame.init()
clock = pygame.time.Clock()
pygame.display.set_caption("aa")
display = pygame.display.set_mode((800, 600))
while True:
for event in pygame.event.get():
if event.type == QUIT:
pygame.quit()
sys.exit()
display.fill(black)
rekt = pygame.draw.rect(display, white, ((pong_pos_x, pong_pos_y), pong_size))
pygame.display.update()
h_move = 'none'
if event.type == pygame.KEYDOWN:
if event.key == K_RIGHT:
h_move = 'right'
elif event.key == K_LEFT:
h_move= 'left'
elif event.key == K_UP:
h_move = 'up'
elif event.key == K_DOWN:
h_move = 'down'
if h_move == 'right':
pong_pos_x += 2
elif h_move == 'left':
pong_pos_x -= 2
elif h_move == 'up':
pong_pos_y -= 2
elif h_move == 'down':
pong_pos_y += 2
pygame.display.update()
【问题讨论】:
-
您应该使用
lerp或slerp进行旋转插值以获得更平滑的运动和动画,请参阅:pygame.org/docs/ref/math.html#pygame.math.Vector2.lerp