如何用方向键移动挡板?
我正在尝试让你可以用方向键来移动乒乓球游戏中的球拍。我已经写了大部分代码,但我对该传递什么给移动球拍的函数感到困惑。
这是我的代码(这是老师给我们的基础代码,我们只是修改了一些部分):
import math
import random
import sys, pygame
from pygame.locals import *
import ball
import colors
import paddle
# draw the scene
def draw(screen, ball1, paddle1) :
screen.fill((128, 128, 128))
ball1.draw_ball(screen)
paddle1.draw_paddle(screen)
#function to start up the main drawing
def main():
pygame.init()
width = 600
height = 600
screen = pygame.display.set_mode((width, height))
ball1 = ball.Ball(300, 1, 40, colors.RED)
paddle1 = paddle.Paddle(100, 575, colors.BLUE, 100, 20)
while 1:
for event in pygame.event.get():
if event.type == QUIT: sys.exit()
elif event.type == pygame.KEYDOWN:
if event.key == pygame.K_RIGHT:
paddle1.update_paddle()
if event.key == pygame.K_LEFT:
paddle1.update_paddle()
draw(screen, ball1, paddle1)
pygame.display.flip()
if __name__ == '__main__':
main()
在循环中,"paddle1.update_paddle()" 这一行,我需要传递一些参数来让球拍移动。但我在这里感到困惑。(我刚开始学习python!)
这是 update_paddle 函数的样子:
def update_paddle(self, dx):
self.x += dx
所以你可以看到,update_paddle 只是通过一个输入值来增加球拍的 x 位置。但我困惑的是,我到底应该把什么作为输入值呢?
1 个回答
0
也许你可以这样做:
def update_paddle(self, dir, dx):
if dir=='left':
self.x -= dx
elif dir=='right':
self.x += dx
然后你可以简单地这样做:
paddle1.update_paddle('left',5)
paddle2.update_paddle('right',3)