2016-04-25 18 views
0

エラーがない私は、このエラーと黒い画面を取得していますなぜ'モジュール' オブジェクトが属性 'game_display'

import pygame 

pygame.init() 

display_width = 800 
display_height = 600 

char_width = 128 
char_height = 99 

char_sprite = pygame.image.load("man.png") 

framerate = 30 

gravity = 5 

game_display = pygame.display.set_mode((display_width,display_height)) 
pygame.display.set_caption("Platformer") 
clock = pygame.time.Clock() 

def char(x,y): 
    size = pygame.transform.scale(char_sprite,(128,99)) 
    pygame.game_display.blit(size,(x,y)) 

def close(): 
    pygame.quit() 
    quit() 

def game_loop(): 

    char_x = display_width/2 
    char_y = display_height/2 
    char_x_change = 0 
    char_y_change = 0 
    char_speed = 5 

    game_exit = False 
    while not game_exit: 

     for event in pygame.event.get(): 
      if event.type == pygame.QUIT: 
       close() 
      if event.type == pygame.KEYDOWN: 
       if event.type == pygame.K_W: 
        char_y_change -= char_speed 
       if event.type == pygame.K_S: 
        char_y_change += char_speed 
       if event.type == pygame.K_A: 
        char_x_change -= char_speed 
       if event.type == pygame.K_D: 
        char_x_change += char_speed 

     game_display.fill((0,0,255)) 

     char_x += char_x_change 
     char_y += char_y_change 
     char_y -= gravity 
     char(char_x,char_y) 

     char_y -= gravity 

     pygame.display.update() 
     clock.tick(framerate) 

game_loop() 

を私は知りません。コードを理解するのを助けるために、私は2D Plat-formerを作成しようとしています。私はプログラミングとpygameに新しいので、高度な説明をしないようにしてください。このような他のエラーの場合は、何かをインポートする必要がありますが、pygameがインポートされるようです。

+0

また、すべてのコードを申し訳ありません。 – 0swald

+2

'pygame.game_display'を' pygame.display'に切り替えるだけでいいですか? –

+1

'pygame'には' game_display'属性がありません。それがエラーであり、ドキュメントのレビューでも同じことが確認されます。それは 'display'属性を持っていますが、' display'属性には対応する 'blit'メソッドがありません。 –

答えて

0

ここにコードが変更されています。より多くのエラーがありますが、あなたが一人でできない場合にのみ解決して尋ねなければなりません。 :) 関数を呼び出すときには、値とパラメータをその関数に送る必要があります。関数はそれを自動的には行いません。私が行った変更を見てください。

import pygame 
from pygame import * 

pygame.init() 

display_width = 800 
display_height = 600 

char_width = 128 
char_height = 99 

char_sprite = pygame.image.load("test.png") 

framerate = 30 

gravity = 5 

screen = pygame.display.set_mode((display_width,display_height)) 
pygame.display.set_caption("Platformer") 
clock = pygame.time.Clock() 

def char(x,y, screen): 
    size = pygame.transform.scale(char_sprite,(128,99)) 
    screen.blit(size,(x,y)) 

def close(): 
    pygame.quit() 
    quit() 

def game_loop(screen, display_width, display_height): 

    char_x = display_width/2 
    char_y = display_height/2 
    char_x_change = 0 
    char_y_change = 0 
    char_speed = 5 

    game_exit = False 
    while not game_exit: 

     for event in pygame.event.get(): 
      if event.type == pygame.QUIT: 
       close() 
      if event.type == pygame.KEYDOWN: 
       if event.type == pygame.K_W: 
        char_y_change -= char_speed 
       if event.type == pygame.K_S: 
        char_y_change += char_speed 
       if event.type == pygame.K_A: 
        char_x_change -= char_speed 
       if event.type == pygame.K_D: 
        char_x_change += char_speed 

     screen.fill((0,0,255)) 

     char_x += char_x_change 
     char_y += char_y_change 
     char_y -= gravity 
     char(char_x,char_y, screen) 

     char_y -= gravity 

     pygame.display.update() 
     clock.tick(framerate) 

game_loop(screen, display_width, display_height) 

これが役に立ちます。

+0

私はそれを解決しようとします。 – 0swald

+0

キー入力が正しく受信されません。 http://www.pygame.org/docs/ref/key.htmlセクションとhttp://www.pygame.org/docs/ref/event.htmlセクションをよく読んで、コンセプトをよく理解してください。 – emorphus

関連する問題