0
私はまだPythonとプログラミング一般にかなり新しいです。私はシンプルなゲームを作るために私が使っている本と一緒にフォローしようとしています。私は私が言うことができる限り逐語的にプログラムをタイプしましたが、何らかの理由で私の船のイメージが表示されない限り、すべてがうまくいくように見えます。誰が問題が何であるかを見ていますか?私は対応するpygameバージョンでPython 3.4.3を使用しています。pygameを使って画面に画像を描画しようとしていますが、画面に何も表示されませんか?
#Creating a pygame window and responding to user input
import sys
import pygame
def bg_draw():
pygame.init()
screen = pygame.display.set_mode((1200, 800))
pygame.display.set_caption("Alien Invasion")
while True:
for event in pygame.event.get():
if event.type == pygame.QUIT:
sys.exit()
pygame.display.flip()
bg_draw()
#Setting the bg color
def bg_color():
pygame.display.set_caption('Alien Invasion')
bg_color = (230, 230, 230)
while True:
screen.fill(bg_color)
pygame.display.flip()
bg_color()
from settings import Settings
def run_settings():
#initializes 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("Alien Invasion")
#start main loop for game
while True:
#redraws screen during each pass through the loop
screen.fill(ai_settings.bg_color)
pygame.display.flip()
run_settings()
#Creating the ship class
class ship():
def __init__(self, screen):
self.screen = screen
#load ship image and get it's rect
self.image = pygame.image.load('ship.bmp')
self.rect = self.image.get_rect()
self.screen_rect = screen.get_rect()
#start a new ship at bottom of screen
self.rect.centerx = self.screen_rect.centerx
self.rect.bottom = self.screen_rect.bottom
def blitme(self):
self.screen.blit(self.image, self.rect)
#drawing the ship on the screen
def run_game():
pygame.display.set_caption("Alien Invasion")
#makes a ship
ship = Ship(screen)
#start games main loop
while True:
screen.fill(ai_settings.bg_color)
ship.blitme()
pygame.display.flip()
run_game()
ようになり、同じクラス、
settings()
と同じとSettings()
ではありません()'クラスと 'blitme()'方法 ? BTW 'ship()'と 'Ship()'は同じクラスではありません - あなたはエラーメッセージを受け取るべきです。エラーメッセージを表示するにはconsole/termina/cmd.exe/powershellで実行しましたか? – furasあなたは 'while while'ループが多すぎます。あなたは 'bg_draw()'で最初のループを実行し、決してそのままにしておきます。 – furas