Переменные имеют одинаковое значение, pygame - PullRequest
0 голосов
/ 25 февраля 2012

Я пытаюсь сделать игру в pygame, но по какой-то причине актер и inp имеют одинаковое значение.Я пытался использовать их как массивы, а не как классы, но это не решило проблему.

import pygame, sys
from pygame.locals import *

pygame.init()
screen=pygame.display.set_mode((640,360),0,32)

a=pygame.image.load('a.png')

class xy:
    x=0
    y=0
    jump=0

actor=xy
inp=xy

def events():
    for event in pygame.event.get():
        if event.type == QUIT:
            pygame.quit()
            sys.exit()
            return
        elif event.type == KEYDOWN:
            if event.key==K_LEFT:
                inp.x=-1
            elif event.key==K_RIGHT:
                inp.x=1
            elif event.key==K_UP:
                inp.y=-1
            elif event.key==K_DOWN:
                inp.y=1
            elif event.key==K_SPACE:
                inp.jump=True
        elif event.type==KEYUP:
            if event.key==K_LEFT:
                inp.x=0
            elif event.key==K_RIGHT:
                inp.x=0
            elif event.key==K_UP:
                inp.y=0
            elif event.key==K_DOWN:
                inp.y=0
            elif event.key==K_SPACE:
                inp.jump=False
    return

def controller():
    if inp.x<0:
        actor.x-=1
    elif inp.x>0:
        actor.x+=1
    if inp.y<0:
        actor.y-=1
    elif inp.y>0:
        actor.y+=1

##    actor.x+=inp.x
##    actor.y+=inp.y
    return

def screen_update():
    pygame.draw.rect(screen, 0x006633, ((0,0),(640,360)),0)
    screen.blit(a, (actor.x,actor.y))
    pygame.display.update()

if __name__ == '__main__':
    while True:
        events()
        print 'inp='+str(inp.x)+','+str(inp.y)
        print 'actor='+str(actor.x)+','+str(inp.y)
        controller()
        screen_update()

Почему вещи, которые я делаю, не работают должным образом?(

1 Ответ

3 голосов
/ 25 февраля 2012

Проще говоря, вы делаете уроки полностью неправильно.

class xy:
  def __init__(self):
    self.x = 0
    self.y = 0
    self.jump = 0

actor = xy()
inp = xy()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...