所以,我正在创建一个太空入侵者游戏,我本应该在屏幕底部创建一个填充的红色方块,但这不会发生,因为我创建的类确实接受变量,但当我调用它时,错误表明它无法接受任何值。
我试着回忆课堂上的一切,但都没起作用。我原以为它会画一个正方形,但没有。这是我的代码
import pygame import os import time import random pygame.font.init() WIDTH, HEIGHT = 750, 750 WIN = pygame.display.set_mode((WIDTH, HEIGHT)) pygame.display.set_caption("Space Invaders") # Load Images RED_SPACE_SHIP = pygame.image.load(os.path.join("assets", "pixel_ship_red_small.png")) GREEN_SPACE_SHIP = pygame.image.load(os.path.join("assets", "pixel_ship_green_small.png")) BLUE_SPACE_SHIP = pygame.image.load(os.path.join("assets", "pixel_ship_blue_small.png")) # Player Ship RED_SPACE_SHIP = pygame.image.load(os.path.join("assets", "pixel_ship_yellow.png")) # Lasers RED_LASER = pygame.image.load(os.path.join("assets", "pixel_laser_red.png")) GREEN_LASER = pygame.image.load(os.path.join("assets", "pixel_laser_green.png")) BLUE_LASER = pygame.image.load(os.path.join("assets", "pixel_laser_blue.png")) YELLOW_LASER = pygame.image.load(os.path.join("assets", "pixel_laser_yellow.png")) # Background BG = pygame.transform.scale(pygame.image.load(os.path.join("assets", "background-black.png")), (WIDTH, HEIGHT)) #HERE IS THE CLASS WITH THE ERROR class Ship: def _init_(self, x, y, health = 100): self.x = x self.y = y self.health = health self.ship_img = None self.laser_img = None self.lasers = [] self.cool_down_counter = 0 def draw(self, window): pygame.draw.rect(window, (255,0,0), (self.x, self.y, 50, 50))x def main(): run = True FPS = 60 level = 1 lives = 5 main_font = pygame.font.SysFont("comicsans", 50) #HERE IS WHERE I CALL THE CLASS AND GIVE IT VALUES ship = Ship(300, 650) clock = pygame.time.Clock() def redraw_window(): WIN.blit(BG, (0,0)) # draw text lives_label = main_font.render(f"Lives: {lives}", 1, (255,255,255)) level_label = main_font.render(f"Level: {level}", 1, (255,255,255)) WIN.blit(lives_label, (10, 10)) WIN.blit(level_label,(WIDTH - level_label.get_width() - 10, 10)) ship.draw(WIN) pygame.display.update() while run: clock.tick(FPS) redraw_window() for event in pygame.event.get(): if event.type == pygame.QUIT: run = False
main()
错误如下:
python.exe" "c:/Users/shireen/Desktop/Python Folder/main.py" Traceback (most recent call last): File "c:\Users\shireen\Desktop\Python Folder\main.py", line 75, in <modmodule> main() ule> File "c:\Users\shireen\Desktop\Python Folder\main.py", line 50, in mainain ship = Ship(300, 650) TypeError: Ship() takes no arguments