1
저는 Python에서 libtcod를 사용하여 roguelike를 작성하고 있습니다. 객체 지향으로 전환하기 전에 운동이 잘 작동했습니다. 파이썬 게임을 실행하면 플레이어가 움직이려고하자마자 멈 춥니 다.재생할 때 파이썬 프로그램이 응답하지 않음
import libtcodpy as libtcod;
SCREEN_WIDTH = 80;
SCREEN_HEIGHT = 50;
LIMIT_FPS = 20;
class Object:
def __init__(self, x, y, char, color):
self.x = x
self.y = y
self.char = char
self.color = color
def move(self, dx, dy):
self.x = dx
self.y = dy
def draw(self):
#libtcod.console_set_default_foreground(con, self.color)
libtcod.console_put_char(con, self.x, self.y, self.char, libtcod.BKGND_NONE)
def clear(self):
libtcod.console_put_char(con, self.x, self.y, ' ', libtcod.BKGND_NONE)
def handle_keys():
key = libtcod.console_check_for_keypress()
if key.vk == libtcod.KEY_ENTER and key.lalt:
libtcod.console_set_fullscreen(not libtcod.console_is_fullscreen())
elif key.vk == libtcod.KEY_ESCAPE:
return True #exit game
if libtcod.console_is_key_pressed(libtcod.KEY_UP):
player.move(0, -1)
elif libtcod.console_is_key_pressed(libtcod.KEY_DOWN):
player.move(0, 1)
elif libtcod.console_is_key_pressed(libtcod.KEY_LEFT):
player.move(-1, 0)
elif libtcod.console_is_key_pressed(libtcod.KEY_RIGHT):
player.move(1, 0)
libtcod.console_set_custom_font('arial10x10.png', libtcod.FONT_TYPE_GREYSCALE | libtcod.FONT_LAYOUT_TCOD);
libtcod.console_init_root(SCREEN_WIDTH, SCREEN_HEIGHT, 'Lets Crawl', False);
libtcod.sys_set_fps(LIMIT_FPS);
con = libtcod.console_new(SCREEN_WIDTH, SCREEN_HEIGHT)
player = Object(SCREEN_WIDTH/2, SCREEN_HEIGHT/2, '@', libtcod.white)
#npc = Object(SCREEN_WIDTH/2 - 5, SCREEN_HEIGHT/2, '@', libtcod.yellow)
objects = [player]
while not libtcod.console_is_window_closed():
for object in objects:
object.draw()
#libtcod.console_check_for_keypress()
libtcod.console_blit(con, 0, 0, SCREEN_WIDTH, SCREEN_HEIGHT, 0, 0, 0)
libtcod.console_flush();
for object in objects:
object.clear()
exit = handle_keys()
if exit:
break
그것은 while 루프와 운동을 함께 할 수있는 뭔가가있을 ... 우 내가
나는 지체되었다. 고맙습니다. Libtcod에 대해 잘 알고 있습니까? 나는 어떤 색깔도 사용할 수 없다. –
몇 년 전 파이썬에서 Libtcod를 사용했는데 ... – sloth
왜 색상이 전혀 작동하지 않는지 아십니까? –