參考教學:
Complete roguelike tutorial using C++ and libtcod - part 1: setting up。
本篇文章主要有三個重點:
- 改用 Makefile 編譯 g++。
- 使用 GitHub 版控。
- 執行第一支 main.cpp 程式 (可以移動行走)。
改用 Makefile 編譯 g++
嘗試使用 Code::Block & CodeLite 等 IDE 均不滿意,想說既然是在 Linux 環境下,還是熟習較基本的編譯環境以及使用 Vim 開發,如此爾後的可控制性也會較好 (越來越喜歡這類命令列的指令模式,初學困難但會倒吃甘蔗)。
使用最普及的 Makefile 來編寫 c++ 的編譯腳本。目前對其語法並不熟悉,就是先針對現在的專案目錄結構,可以順利編譯位於 src/ 資料夾下的 main.cpp,以及可以執行所編譯產出的執行檔即可。
SRCDIR = src INCDIR = include LIBDIR = lib CPP = g++ # CFLAGS = -O2 -s -w -std=c++11 -I$(INCDIR)/nwbd -I$(INCDIR)/tcod CFLAGS = -g -Wall -std=c++11 -I$(INCDIR)/tcod # Determine if operating system is 32-bit or 64-bit ifeq ($(shell uname -m),x86_64) # These are the definitions specific to 64-bit systems LFLAGS = -L$(LIBDIR)/x86_64 -ltcod -ltcodxx -Wl,-rpath=$(LIBDIR)/x86_64 else #These are the definitions specific to 32-bit systems LFLAGS = -L$(LIBDIR)/i386 -ltcod -ltcodxx -Wl,-rpath=$(LIBDIR)/i386 endif SUFFIXES: .o .hpp .cpp all: clean tuto tuto: @$(CPP) $(SRCDIR)/*.cpp -o tuto $(CFLAGS) $(LFLAGS) clean: @rm -f tuto |
使用 Github 版控
所有程式源碼均放置於 Github 上,使用 Git Clone 指令即可下載最新版源碼。
$ git clone https://github.com/kenming/game-roguelike-cpp-tutorial.git |
我現在是為每一個課程單元標注一個 標籤 (Tag)。可以執行 git -t 取得標籤列表,然後再用 git Checkout tag_name 即可取出所對應的 Tag 版本。
目前僅有一個 Tag: lession-01。
執行第一支程式-main.cpp
#include "libtcod.hpp" int main() { int playerx=40,playery=25; TCODConsole::initRoot(80,50,"libtcod C++ tutorial",false); while ( !TCODConsole::isWindowClosed() ) { TCOD_key_t key; TCODSystem::checkForEvent(TCOD_EVENT_KEY_PRESS,&key,NULL); switch(key.vk) { case TCODK_UP : playery--; break; case TCODK_DOWN : playery++; break; case TCODK_LEFT : playerx--; break; case TCODK_RIGHT : playerx++; break; default:break; } TCODConsole::root->clear(); TCODConsole::root->putChar(playerx,playery,'@'); TCODConsole::flush(); } return 0; } |
執行編譯:
$ make tuto |