注意:我是编程新手。
首先,我要发布我写的代码:
import pygame
import random
pygame.init()
screen = pygame.display.set_mode([640, 480])
paddle = pygame.image.load("pulgake.png")
pygame.display.set_caption("PONG!")
WHITE = [0, 0, 0]
back = pygame.image.load("taust.png")
screen.blit(back, (0, 0))
screen.blit(paddle, (600, 240))
pygame.display.flip()
xpaddle = 600
ypaddle = 240
delay = 10
interval = 10
pygame.key.set_repeat(delay, interval)
class Ball:
def __init__(self):
self.pos = [0,0]
self.velocity = [1,0]
def move():
self.pos[0] += self.velocity[0]
self.pos[1] += self.velocity[1]
if self.pos[0] > 10:
self.pos[0] *= -1
elif self.pos[1] > 470: # My background has a frame
self.pos[1] *= -1
elif self.pos[1] < 10:
self.pos[1] *= -1
elif self.pos[0] > 605:
False
def draw(screen):
pygame.draw.circle(screen,WHITE,self.pos,15)
pall = Ball()
while True:
pall.move()
screen.blit(back, (0,0))
screen.blit(paddle, (xpaddle, ypaddle))
pygame.display.flip()
for i in pygame.event.get():
if i.type == pygame.QUIT:
sys.exit()
elif i.type == pygame.KEYDOWN:
if i.key == pygame.K_UP:
ypaddle = ypaddle - 10
if ypaddle < 10:
ypaddle = 10
elif i.key == pygame.K_DOWN:
ypaddle = ypaddle + 10
if ypaddle > 410:
ypaddle = 410
我收到此错误 -
line 44, in <module>
pall.move()
TypeError: move() takes no arguments (1 given)
所以,我想让一个球从墙上弹起来(也是桨,但我还不知道怎么样)
另外,如果有人帮助我在这个游戏中获得秒表,显示时间“幸免于难”,我将非常感激。
编辑:添加def move(self)
现在,出现了一个更大的问题:
draw()和move() - 未定义全局名称“self”。 我真的想不通这个。
答案 0 :(得分:0)
您正在调用不存在的ball.move
,因为move
需要再次缩进。
如果你想“在按下按键时执行操作”你可以使用getkeystate
并在你想要“按下按键时执行一次操作”时使用KEYDOWN事件