我试图制作它,以便您可以使用箭头键移动球拍(进行乒乓球比赛)。我已经拥有了大部分代码,但我对于将传递给将移动paddle的函数的内容感到困惑。
这是我的代码(这是我们的教师给我们的基本代码,我们只修改了部分代码):
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()
在while循环中,它表示" paddle1.update_paddle()",我需要传递一些参数以使paddle移动。但这是我困惑的地方。 (我刚开始学习python!)
这是update_paddle函数的样子:
def update_paddle(self, dx):
self.x += dx
正如您所看到的,update_paddle只是将paddle的x位置增加一个输入值。但令我困惑的是,我究竟将其作为输入值放在什么位置?
答案 0 :(得分: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)