2016-08-06 3 views
-2

저는 파이 게임에서 파이 게임을 사용하여 RPG를 만들고 있습니다. 내 첫 번째 단계는 내 주인공을 만들고 움직 이도록하는 것입니다. 그러나 그렇지 않습니다. 내 코드 :블리자드가 파이 게임에서 움직이지 않는 이유는 무엇입니까?

import pygame,random 
from pygame.locals import * 

pygame.init() 

black = (0,0,0) 
white = (255,255,255) 
red = (255,0,0) 
blue = (0,255,0) 
green = (0,0,255) 

global screen, size, winWidth, winHeight, gameExit, pressed, mainChar, x, y 
size = winWidth,winHeight = (1350,668) 
screen = pygame.display.set_mode(size) 
pygame.display.set_caption("RPG") 
gameExit = False 
pressed = pygame.key.get_pressed() 
mainChar = pygame.image.load("Main Character.png") 
x,y = 655,500 

def surroundings(): 
    stoneTile = pygame.image.load("Stone Tile.png") 
    stoneTileSize = stoneTile.get_rect() 

def move(): 
    if pressed[K_LEFT]: x -= 1 
    if pressed[K_RIGHT]: x += 1 
    if pressed[K_UP]: y -= 1 
    if pressed[K_DOWN]: y += 1 

def player(): 
    move() 

    screen.fill(black) 
    screen.blit(mainChar,(x,y)) 

while not gameExit: 
    for event in pygame.event.get(): 
     if event.type == QUIT: 
      gameExit = True 

    surroundings() 
    move() 
    player() 

    pygame.display.update() 

pygame.quit() 
quit() 

도와 주시고 작동하지 않는 이유를 설명하십시오. 감사.

+0

해당 코드를 실행하려고 시도 했습니까? – Matthias

답변

1

당신은

while not gameExit: 
    for event in pygame.event.get(): 
     if event.type == QUIT: 
      gameExit = True 

    pressed = pygame.key.get_pressed() 

    surroundings() 
    move() 
    player() 

    pygame.display.update() 

당신이 이동 함수 내에서 사용한 값 x와 y는 지역 변수로 취급되고 각 실행에 누를 변수를 업데이트해야합니다 인터프리터 말할 필요 것 그들은 전역 변수입니다

def move(): 
    global x,y 
    if pressed[K_LEFT]: x -= 1 
    if pressed[K_RIGHT]: x += 1 
    if pressed[K_UP]: y -= 1 
    if pressed[K_DOWN]: y += 1