用c++玩过场动画

Playing cutscenes in c++

本文关键字:动画 c++      更新时间:2023-10-16

我使用SDL打开窗口并处理事件。OpenGL把我的物体渲染到屏幕上。SDL_mixer用于声音,SDL_ttf用于文本。现在我正在想办法把视频展示出来。比如游戏开始前的动画标志之类的。只是为了试验一下。在某些时候,我需要知道它…

我已经找到并尝试安装FFMPEG,我已经包含了"include"文件夹,并设置了"lib"文件夹。起初,我得到一个错误,告诉我它无法加载"inttypes.h"。所以我下载了一个包,并把它放在FFMPEG的include文件夹中。

现在我被这个错误卡住了,我似乎无法解决。

c: 程序文件 ffmpeg - 20140507 - git - 4 - cdea92 win64 - dev 包括 libavutil 构成(87):致命错误C1004:发现意外的文件结束符

另一个问题,是否有其他库可以更容易地用于显示简单的视频?我读到一些关于SDL能够做到这一点的东西,但是没有找到关于它的任何信息。

编辑:这是第78到96行:

#if FF_API_AV_REVERSE
extern attribute_deprecated const uint8_t av_reverse[256];
#endif
#ifdef HAVE_AV_CONFIG_H
#   include "config.h"
#   include "intmath.h"
#endif
/* Pull in unguarded fallback defines at the end of this file. */
#include "common.h"
#ifndef av_log2
av_const int av_log2(unsigned v);
#endif
#ifndef av_log2_16bit
av_const int av_log2_16bit(unsigned v);
#endif

像这样将你的#include <libav*.h>包入block中:

#ifndef __STDC_CONSTANT_MACROS
#define __STDC_CONSTANT_MACROS
#define UNDEFINE_STDC_CONSTANT_MACROS
#endif
extern "C"
{
#include <libavdevice/avdevice.h>
#include <libavdevice/version.h>
}
#ifdef UNDEFINE_STDC_CONSTANT_MACROS
#undef __STDC_CONSTANT_MACROS
#endif

可能一种使用UNDEFINE_STDC_CONSTANT_MACROS hack的方法,但是我现在没有想到逻辑。

在VS2012上使用Zeranoe的32位ffmpeg开发二进制文件和msinttypes的inttypes.h

嗯,我找到了dll文件,它给了我一个64位库的链接错误。我改回32位和32位的dll,它工作得很好。我猜库会问你是否有32/64位的Visual Studio而不是Windows。