Python 3.x python蛇游戏中的属性错误,这意味着什么?
我已经用pythonidle创建了一个蛇游戏,但是第24行有一个属性错误,我不太确定这意味着什么。有人知道吗?游戏开始工作,因为它显示了我的矩形和屏幕,但它只是一个黑色的窗口。不知道我哪里出了问题。。。。这是我的a级课程作业Python 3.x python蛇游戏中的属性错误,这意味着什么?,python-3.x,attributes,pygame,Python 3.x,Attributes,Pygame,我已经用pythonidle创建了一个蛇游戏,但是第24行有一个属性错误,我不太确定这意味着什么。有人知道吗?游戏开始工作,因为它显示了我的矩形和屏幕,但它只是一个黑色的窗口。不知道我哪里出了问题。。。。这是我的a级课程作业 from typing import List, Tuple import pygame FPS = 10 WINDOW_WIDTH = 900 #how big the window is going to be WINDOW_HEIGHT = 900 cla
from typing import List, Tuple
import pygame
FPS = 10
WINDOW_WIDTH = 900 #how big the window is going to be
WINDOW_HEIGHT = 900
class Snake(object):
WIDTH = 40 #how big ther snakes body starts off
HEIGHT = 40
def __init__(self):
self.pos_a = 1
self.pos_b = 1 #position it starts in
self.vel_a = 0
self.vel_b =0
def update(self, events: List[pygame.event.Event]) -> None:
self.pos_a += self.vel_a
self.pos_a += self.vel_b
self.vel_a, self.vel_b = self.handle_mov(events)
def draw(self,screen: pygame.Surface):
pygame.draw.rect( #what colour the snake is
screen,
pygame.color.Color("purple"),
(
self.pos_a,
self.pos_b,
self.WIDTH, #spelt it colour
self.HEIGHT,
), 0
)
def handle_mov(self, events: List[pygame.event.Event]) -> Tuple[int, int]:
travelling = (self.vel_a, self.vel_b)
for ev in events:
if ev.type == pygame.KEYDOWN:
if ev.key == pygame.K_UP:
travelling = (0, -1)
elif ev.key == pygame.K_DOWN:
travelling = (0, 1)
elif ev.key == pygame.K_LEFT:
travelling = (-1, 0)
elif ev.key == pygame.K_RIGHT:
travelling = (1, 0)
return travelling
def run() -> None:
pygame.init()
screen = pygame.display.set_mode(
(WINDOW_WIDTH, WINDOW_HEIGHT), #syntax error on height
pygame.HWSURFACE
)
snakegame_loop(screen)
def snakegame_loop(screen: pygame.Surface) -> None:
snake = Snake()
clock = pygame.time.Clock()
while True:
events = pygame.event.get()
handle_quit(events)
screen.fill(pygame.color.Color("pink"))
snake.update(events)
snake.draw(screen) #the screen color
pygame.display.update() #updating all the adjustments added
clock.tick(FPS)
def handle_quit(events: List[pygame.event.Event]) -> None:
for ev in events:
if ev.type == pygame.QUIT:
exit(0)
if ev.type == pygame.KEYDOWN and ev.key == pygame.K_ESCAPE:
exit(0)
run()
请发布一个简单的工作示例并阅读“如何提问”。我们不是来解决你的家庭作业问题的。你必须放弃
handle_mov
方法,因为它目前只在draw
方法中定义。也许它不是最小的,但至少它是有效的。我没有任何属性错误
。请添加完整的回溯。您能发布准确的错误消息和引发错误的行吗?好的,这确实没有复制粘贴效果,@skrx是正确的,您必须删除处理\u mov
一个级别。