프로그래밍에서 클래스와 OOP를 많이 사용하려고 시도하고 있으며, 기본 게임 윈도우를 디스플레이 클래스로 설정하려고합니다.이 클래스는 호출 될 때 게임 윈도우를 만듭니다 , 모든 파이 게임 초기화를 수행합니다.내 파이 게임 표면을 클래스에 넣으려고 시도합니다.
보기 튜토리얼을 완료했지만 pygame.display 호출을 클래스로 캡슐화하는 데 어려움을 겪고 있습니다. 파이 게임이 제대로 작동하기 위해서는 /해야하지 않기 때문입니다.
가장 일반적인 오류는 내가 들어 왔 그것이 내가 클래스 디스플레이 (객체)로 대체하여 (내 코드를 수정하는 경우
Traceback (most recent call last):
File "C:\Program Files (x86)\Wing IDE 101 5.0\src\debug\tserver\_sandbox.py", line 13, in <module>
File "C:\Program Files (x86)\Wing IDE 101 5.0\src\debug\tserver\_sandbox.py", line 27, in Display
NameError: name 'Display' is not defined
있습니다 주변에 재생하는 동안 -> 클래스 디스플레이 (폭, 높이, tilesize), 내가 전달하려고 값이 오류 얻을되는 :
NameError: name 'width' is not defined
그냥 오류가 내 구문에 있는지 알아 내려고 노력하고, 아니면이 불가능 감사을 시도하려고합니다. :)
import pygame
from pygame.locals import *
#Constants
TILESIZE = 32
MAPWIDTH = 16
MAPHEIGHT = 16
#variables
playing = True
#Creates Display Window
class Display(object):
def __init__(self, width, height, tilesize):
pygame.init()
pygame.display.set_icon("player.jpg")
pygame.display.set_caption("FarmTown Version 1.0")
self.SCREEN_WIDTH = width * tilesize
self.SCREEN_HEIGHT = height * tilesize
self.myScreen = pygame.display.set_mode([SCREEN_WIDTH, SCREEN_HEIGHT])
def update():
pygame.display.flip()
#Set Up Everything To Play
myDisplay = Display(MAPWIDTH, MAPHEIGHT, TILESIZE)
#Game Loop Begins
while playing:
#Display the surface
myDisplay.update()
정말 대단한 알림 identing 꽤 코드를한다하더라도 그, 나는 파이썬으로 그렇게 할 수 없다. 아이콘 부분에 대한 추가 팁을 가져 주셔서 감사합니다. 그 부분을보기 전에 오류 메시지를 정리하면 마지막 부분을 수정했습니다. 그런 철저한 답을 주셔서 감사합니다. 나는 버그 수정이 간단한 때를 좋아한다. 다시 한번 감사드립니다. –