包括Cmake的游戏资产

时间:2015-10-05 20:22:00

标签: c++ cmake allegro

我正试图在C++中为练习制作一个小游戏。我正在使用Clion IDEA,它使用CMake作为构建系统。

所以我设置了这个使用Allegro游戏库的项目,我现在可以使用它来运行CMakeLists.txt:

cmake_minimum_required(VERSION 3.3)
project(my-game)

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")

set(SOURCE_FILES main.cpp)

# Set executeable
add_executable(game ${SOURCE_FILES})

#Include Allegro
include_directories(/usr/include/allegro5/)
link_directories(/usr/include/allegro5/)

#connect all the libraries you need
set(game_LIBS
        liballegro.so
        liballegro_dialog.so
        liballegro_image.so
        liballegro_font.so
        liballegro_ttf.so
)
target_link_libraries(game ${game_LIBS})

现在的问题是,在我的项目根文件夹中,我有一个名为assets的文件夹,在其中我想存储我的资产。现在有一个fonts文件夹,其中包含一个arial.ttf文件,我想用它来显示游戏中的一些文字。

现在我用来获取此资产并在我的应用程序中使用它的行应该是类似的:

ALLEGRO_FONT *font24 = al_load_ttf_font("/assets/fonts/arial.ttf", 24, 0);

但由于某些原因,当我启动应用程序并开始使用font24指针时,我收到此错误:

game: /build/buildd/allegro5-5.0.10/addons/font/text.c:77: al_draw_ustr: Assertion `font' failed.

现在,如果我改用这一行:

ALLEGRO_FONT *font24 = al_load_ttf_font("/home/kaspar/Documents/Coding-projects/ClionProjects/my-game/assets/fonts/arial.ttf", 24, 0);

然后应用程序将能够使用所需的字体打印文本。

那么我必须做些什么才能更容易地在项目中引用我的资产?我想,指向一个带有完整系统路径的文件并不是一种健康的做法。

0 个答案:

没有答案