Talk:Complete Roguelike Tutorial, using python+libtcod, part 1
Instead of the awkward
if not first_time:
may I suggest to just put things in the order in which they are meant to be executed?
libtcod.console_set_foreground_color(0, libtcod.white)
libtcod.console_print_left(0, playerx, playery, libtcod.BKGND_NONE, '@')
libtcod.console_flush()
libtcod.console_print_left(0, playerx, playery, libtcod.BKGND_NONE, ' ')
exit = handle_keys()
if exit:
break
-- relet 16:48, 18 October 2010 (UTC)
- Sure. The logic you're pointing out was only added as an afterthought to correct a small bug: the first frame for a turn-based game wouldn't be shown while waiting for input. When someone pointed out the bug this was added as a quick-fix. I'll change it to the better solution soon (remember I also have to make the same change to all the "whole code" pages...). Jotaf 16:24, 23 October 2010 (UTC)
- Done. Had to manually update about 10 "whole code" pages but it's for the better, I never liked that logic anyway. Jotaf 22:35, 7 November 2010 (UTC)
I'm very much enjoying this tutorial! It is immensely helpful and informative. However, I have two questions, that I, as a python-noob, don't understand:
- libtcod.console_flush() comes before the code that overwrites the '@' with ' '. Doesn't that mean, that the old character gets overwritten AFTER the output? I don't understand how that works.
- When I press left arrow, and then up right after, my @ moves left two times and up once. Is that because of console_is_key_pressed? Is that the way it's supposed to work?
Thank you! SkaryMonk 13:17, 11 May 2012 (CEST)
OS X
N00b here. I'm having a difficult time translating this tutorial for OS X 10.6.8. I've downloaded an OS X version of the libtcod library, but I'm not sure which files to put in the working directory. I'm not sure if I have to install libtcod onto my system in some more general way, and if so, how I would do that.
Could anyone give a quick rundown of that process?
UPDATE: I managed to install libtcod through homebrew (which seemed the easiest possible way to do it). I used it to compile and run the libtcod samples c and c++ code in the 1.5.1 OSX download. However, the python sample gives me errors:
Traceback (most recent call last):
File "samples_py.py", line 9, in <module>
import libtcodpy as libtcod
File "/Users/user/build/libtcod/libtcodpy.py", line 46, in <module>
_lib = ctypes.cdll['./libtcod.dylib']
File "/usr/local/Cellar/python/2.7.8_2/Frameworks/Python.framework/Versions/2.7/lib/python2.7/ctypes/__init__.py", line 440, in __getitem__
return getattr(self, name)
File "/usr/local/Cellar/python/2.7.8_2/Frameworks/Python.framework/Versions/2.7/lib/python2.7/ctypes/__init__.py", line 435, in __getattr__
dll = self._dlltype(name)
File "/usr/local/Cellar/python/2.7.8_2/Frameworks/Python.framework/Versions/2.7/lib/python2.7/ctypes/__init__.py", line 365, in __init__
self._handle = _dlopen(self._name, mode)
OSError: dlopen(./libtcod.dylib, 6): image not found
UPDATE UPDATE: Ok, the problem was that libtcodpy.py could not find libtcod.dylib. I changed the path in the script to fix that, and it seems to work. Hopefully that won't mess anything else up. If it does, I'll try copying the file from /usr/local/Cellar/libtcod/1.5.1/lib to my working directory. If no more issues come up, I'll erase this whole thing and put up a step-by-step on how I set this up.