나는 파이썬/파이 게임으로 게임을 만드는 법을 배우기 시작했으며, 파이 게임으로 빠르게 게임을 만드는 것은 쉬운 일이지만, 합리적인 방법으로 코드를 구성하는 방법에 대한 실제 튜토리얼은 없다.파이 게임 코드 조직
파이 게임 튜토리얼 페이지에서 3 가지 방법을 찾았습니다. 작은 프로젝트
에 대한1 클래스 없음 사용, 는
2 MVC 루비 온 레일 종류의 구조 만도 OO 프로그래밍에 지나치게 복잡하고 모호한 무언가 (결과 레일 프레임 워크없이 지식 레일 ?)
3 C++ - 다음과 같은 구조 : (매우 깨끗하고 직관적하지만 아마 파이썬 같은) 나 C++에서 SDL 게임을 만드는 데 사용 해요
import pygame
from pygame.locals import *
class MyGame:
def __init__(self):
self._running = True
self._surf_display = None
self.size = self.width, self.height = 150, 150
def on_init(self):
pygame.init()
self._display_surf = pygame.display.set_mode(self.size)
pygame.display.set_caption('MyGame')
#some more actions
pygame.display.flip()
self._running = True
def on_event(self, event):
if event.type == pygame.QUIT:
self._running = False
elif event.type == KEYDOWN:
if event.key == K_ESCAPE:
self._running = False
elif event.type == MOUSEBUTTONDOWN:
if event.button == 1:
print event.pos
def on_loop(self):
pass
def on_render(self):
pass
def on_cleanup(self):
pygame.quit()
def on_execute(self):
if self.on_init() == False:
self._running = False
while(self._running):
for event in pygame.event.get():
self.on_event(event)
self.on_loop()
self.on_render()
self.on_cleanup()
if __name__ == "__main__" :
mygame = MyGame()
mygame.on_execute()
나는 정확한 이것을 사용 구조하지만 그것은 둘 다 사용할 수 있는지 궁금하네요 sma Logged 대용량 프로젝트 또는 파이 게임에서 더 깨끗한 방법이 있다면. 그것은 또한 매우 잘 조직하고 쉽게 따라 보이는
imports
def functionx
def functiony
class MyGameObject:
class AnotherObject:
class Game: #pygame init, event handler, win, lose...etc
while True: #event loop
display update
:
예를 들어 I는 다음과 같이 구성 게임을 발견했다.
작고 큰 게임에서 깨끗한 코드를 사용할 수 있도록 모든 프로젝트에서 일관되게 사용해야하는 구조는 무엇입니까?
MVC는 GUI가있는 한 어떤 형태로 존재합니다. 'C++ 구조체'는 실제로 MVC의 컨트롤러 부분입니다. 언제든지 on_foo 메소드를 사용하여 이벤트를 기다리는 중입니다. 아마 MVC를 사용하고있을 것입니다. http://martinfowler.com/eaaDev/uiArchs.html –
파이 게임을 사용하여 간단한 게임을 쓰려고하는데, 당신의 접근법이 매우 흥미 롭다. 그러나 우리가'on_loop()'에서 무엇을해야하는지 설명 할 수 있고, 'on_render()'메쏘드? 'on_render'에서 이해할 수 있도록 몇 가지 그림을 그렸습니다. 맞습니까? 그리고'on_loop()'에서 우리는 약간의 논리를 수행합니다. 맞습니까? – DaZzz