- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我将正在制作的游戏从 SDL 1.2 移植到了 SDL2。移植游戏并正确编译后,当我在此处调用 TTF_OpenFont 时,出现段错误:
bool cargararchivos(SDL_Texture* &background,SDL_Texture* &player,TTF_Font* &font,SDL_Texture* &bullet,Config* placlips,SDL_Renderer* renderer)
{
string playerss;
//Open the font
font = TTF_OpenFont( "lazy.ttf", 28 );
//If there was an error in loading the font
if(font==NULL)
{
return false;
}
try{
playerss = placlips->lookup("filename").c_str();
}catch(const SettingNotFoundException &nfex)
{
cerr << "No 'name' setting in configuration file." << endl;
return false;
}
//Open background
background = cargarimagen("fondo.png",renderer);
if(background==NULL){
return false;
}
//Open player sprites
player = cargarimagen(playerss,renderer);
if(player==NULL){
return false;
}
bullet = cargarimagen("bullet.png",renderer);
if(bullet==NULL)
return false;
return true;
}
段错误发生在 TTF_OpenFont 结束之前。我得到的回溯是:
#0 ?? ?? () (??:??)
#1 0x7ffff7410ce5 TTF_CloseFont(font=0x8af1e0) (SDL_ttf.c:933)
#2 0x7ffff74110fd TTF_OpenFontIndexRW(src=<optimized out>, freesrc=<optimized out>, ptsize=<optimized out>, index=0) (SDL_ttf.c:489)
#3 0x409c9d cargararchivos(background=@0x7fffffffe598: 0x0, player=@0x7fffffffe590: 0x0, font=@0x7fffffffe580: 0x0, bullet=@0x7fffffffe588: 0x0, placlips=0x7fffffffe560, renderer=0x9c25b0) (/home/xxxxx/xxxxx/main.cpp:33)
#4 0x40a526 main(argc=1, args=0x7fffffffe6e8) (/home/xxxxx/xxxxx/main.cpp:173)
如果我取出所有 SDL_ttf 内容,我仍然会遇到类似的段错误,但使用 IMG_Load。我怀疑这是我的 CodeBlocks 设置的问题,因为我可以使用 g++ 构建 Lazy Foo SDL2 教程并运行它们。或者也许这是一个错误?顺便说一句,我正在使用 Debian sid (Linux)。请帮忙。
最佳答案
SDL_ttf 1.2 版本中有一个包含内容,我忘记更改为新版本。伙计,我很愚蠢。谢谢凯尔塔!
关于c++ - 调用 TTF_OpenFont 时出现奇怪的段错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28934628/
我将正在制作的游戏从 SDL 1.2 移植到了 SDL2。移植游戏并正确编译后,当我在此处调用 TTF_OpenFont 时,出现段错误: bool cargararchivos(SDL_Textur
事实如下:我在 Ubuntu 上使用代码块。我已经安装了 SDL 和 SDL_ttf,并成功地包含和链接了它们。我想将文本呈现到字体 FreeSerif 的屏幕上。 问题在这里:当程序到达行 TTF_
TTF_OpenFont() returns NULL 我有同样的问题,TTF_OpenFont 返回 NULL 并有错误。 TTF_OpenFont("/absolute/path/to/S
我在加载 SDL_TTF 字体时遇到问题。我的代码: TTF_Font* font = TTF_OpenFont( "Arial.ttf", 24 ); std::cout << "ERROR:" <
我正在尝试使用 SDL_ttf 在 C 中制作一个游戏,以便在每次刷新 diplay 时显示分数。代码如下: SDL_Surface *score = NULL; TTF_Font *font; SD
我正在尝试使用 qrc 文件(Qt Creator 2.7 和 Mac OS X)来管理我的资源,但它不起作用...这是我的字体复制/粘贴路径,从 Copy Resource Path to剪贴板 :
我是一名优秀的程序员,十分优秀!