我正在pygame中创建一个乒乓游戏,并试图在班级中绘制桨和球。
当我尝试在普通函数中绘制它时,它可以正常工作,但是当我尝试使用类来实现它时,会出现很多错误。
我在做什么错?对我来说,在Photoshop中创建图像并将其导入会更容易吗?另外,我是在 init 方法中还是在单独的方法中绘制桨。
这是我的代码,该类位于单独的文件中。
paddles.py:
import pygame
import sys
class Paddles():
def __init__(self, screen):
self.screen = screen
self.paddle_l = pygame.draw.rect(screen, (255, 255, 255), [15, 250, 10, 100])
self.paddle_r = pygame.draw.rect(screen, (255, 255, 255), [780, 250, 10, 100])
program.py:
import sys
import pygame
from settings import Settings
from paddles import Paddles
import game_functions as gf
def run_game():
# Initialise pygame, settings and screen object.
pygame.init()
ai_settings = Settings()
screen = pygame.display.set_mode((ai_settings.screen_width,ai_settings.screen_height))
pygame.display.set_caption('Ping Pong')
#Make paddles
paddles = Paddles(screen)
paddles.paddles()
# Start the main loop for the game.
while True:
gf.check_events()
gf.update_screen(ai_settings,screen,paddles)
run_game()
我收到的错误消息是:
Traceback (most recent call last): File "C:/Users/PycharmProjects/pingpong/.idea/program.py", line 27, in <module>
run_game()
File "C:/Users/PycharmProjects/pingpong/.idea/program.py", line 19, in run_game
paddles.paddles()
AttributeError: 'Paddles' object has no attribute 'paddles'
答案 0 :(得分:1)
就像错误消息中所说的那样,您的Paddle
类没有名为paddles
的函数。您的课程应如下所示:
class Paddles():
def __init__(self, screen):
self.screen = screen
self.paddle_l = pygame.draw.rect(screen, (255, 255, 255), [15, 250, 10, 100])
self.paddle_r = pygame.draw.rect(screen, (255, 255, 255), [780, 250, 10, 100])
def paddles(self):
# DO STUFF WITH PADDLES
我不确定您打算使用此功能做什么,但这取决于您。
答案 1 :(得分:0)
您得到的错误是因为您试图使用libraryDependencies += javaCore
中的方法,该方法将是Paddles
,但它不存在。
就我所知,您的文件称为paddles
(我可以猜测您的代码),因此这并不意味着您的类paddles.py
具有此Paddles
方法。
要解决此问题,只需在paddles
类中添加paddles
方法,例如:
Paddles