在Android中嵌入SDL2
这里说一下如何将SDL编译为App。参考文档是SDL源码下的docs/README-android.md。
前期准备
需要准备:
- android sdk工具和ndk工具
- JDK8(更高的应该也可以)
- SDL2的源代码(这里使用的是SDL2_2.0.14版本)
- make,CMake(如果你用的Android Studio或者Gradle就不需要CMake和make)
- Gradle(最新版本就行,我这里是7.2)
这里说一下如何将SDL编译为App。参考文档是SDL源码下的docs/README-android.md。
需要准备:
本文简述了shared_ptr aliasing constructor。
这几天做游戏的时候要用到GUI。但是SDL2本身是没有GUI组件,所以得自己做一个。
上面的视频就是目前完成的东西,有窗口,滚动条,按钮,Label和输入框。因为在输入框这里卡了很久,所以打算写一篇博客记录一下如何实现。
今天看《C++ Templates》中遇到的,一开始没看懂,就探究一下。
参考cppreference pointer
这里介绍了传统Roguelike游戏开发中的几种处理时间消耗的算法。
参考网站是RogueBasin
像Roguelike这种回合制游戏,生物每次行动都需要消耗一定量的时间,这样就必须有一个通过消耗时间确定生物行动顺序的系统。
这里是我对何时使用智能指针的思考🤔。
智能指针一共有三个unique_ptr,shared_ptr和weak_ptr。其中weak_ptr是为了弥补shared_ptr所造成的循环指向而诞生的,使用的场景很明确,所以不予讨论。
本文介绍了如何使用emscripten来将SDL程序编译成网页。
emscripten是一个用于WebAssembly的一套编译工具,基于LLVM。
WebAssembly(wasm),即网页汇编,说白了,就是用在Web上的汇编语言。WebAssembly的优点是速度快,他可以将C/C++代码转换成wasm代码,所以能够提升不少效率。
不过我这里主要是为了将C++代码变成网页啦,不管效率。
本文介绍了如何对UTF-8编码的字符串进行Warp。
Text Warp是游戏和GUI开发中不可或缺的一个技术,说白了就是自动换行:给定一个长度,当你渲染的字符串超过这个长度时需要自动从下一行开始渲染。
对ASCII码组成的字符串进行Warp很简单,但是对于UTF-8的编码就会麻烦一点。
这里是本博客安装的一些Hexo插件,主要是记录下来要怎么用和一些坑,防止后面忘了。
吧github仓库上面某一个提交的时间线拉出来:
对于Bresenham算法的解释
Bresenham算法是一种绘制直线和曲线的方法。这里主要是介绍如何绘制直线。