import pyglet
from pyglet.gl import *
from time import time # Used for FPS calc
key = pyglet.window.key
class main(pyglet.window.Window):
def __init__ (self):
super(main, self).__init__(800, 800, fullscreen = False, vsync = True)
self.running = True
self.fps_counter = 0
self.last_fps = time()
self.fps_text = pyglet.text.Label(str(self.fps_counter), font_size=12, x=10, y=10)
def on_key_press(self, symbol, modifiers):
if symbol == key.ESCAPE: # [ESC]
self.running = False
else:
self.clear() # However, this is done in the render() logic anyway.
def on_draw(self):
self.render()
def render(self):
self.clear()
# And flip the GL buffer
self.fps_counter += 1
if time() - self.last_fps > 1:
self.fps_text.text = str(self.fps_counter)
self.fps_counter = 0
self.last_fps = time()
self.fps_text.draw()
self.flip()
def run(self):
while self.running is True:
self.render()
# -----------> This is key <----------
# This is what replaces pyglet.app.run()
# but is required for the GUI to not freeze
#
event = self.dispatch_events()
if event and event.type == pygame.QUIT:
self.running = False
x = main()
x.run()
이 검은 화면에 대한 FPS 카운터의 신속하고 더러운 복사 및 붙여 넣기 논리이다.
키를 누를 때마다 강제로 화면이 지워집니다.
예를 들어 pyglet.window.Window()
을 myWindow = py...
또는 비슷한 것으로 저장하고 있습니다. 그리고 그 전역 변수에 데코레이터에서 myWindow.clear()
이라고 부릅니다.
import pyglet
myWindow = pyglet.window.Window()
@myWindow.event
def on_key_press(symbol, modifier):
myWindow.clear()
pyglet.all.run()
이 (당신은 마지막에
:
부족,
key.escape
그냥 변수이어야하며
clear
함수가 아니라 변수입니다.)
그러나 큰 그래픽 응용 프로그램을 작성 계속려고하는 경우에, 나는 강력하게 코드를 분류하고 그것을 "OOP"로 만들 것을 권하고 싶다. 그래픽 라이브러리는 지저분한 편이다.
당신이 게임을 만들려고한다면 2D와 Pyglet으로 빤히 쳐다보고 있습니다. 아래의 답변을 완료하면 http://hvornum.se/pyglet/이 도움이 될 것입니다. ** 나는 이것을 안다. ** 이것은 조잡하다. ***이 사이트 범위에서 벗어난 것이다. 난 그냥 올바른 방향 (특히 스프라이트와 배치 부분)에 몇 가지 포인터를 줄 수있을 줄 알았는데. – Torxed