跳转到内容

抓住小猫

upidea.com 出品

捉住小猫

C++ & SDL3 复刻项目 捉住小猫访问官网

在线体验

抓住小猫

游戏玩法

点击小圆点,围住小猫。 你点击一次,小猫走一次。 直到你把小猫围住(赢),或者小猫走到边界并逃跑(输)。

catchTheCat游戏截图

开发

编译,根据自己的环境修改CMakePresets.json文件,然后:

bash
# 编译端版(mac)
cmake --preset=Debug
cmake --build --preset=Debug
## 真难受, preset condition 在windows下就失效了
cmake --preset=Debug-win
cmake --build --preset=Debug-win

# 编译页版(mac)
/usr/local/emsdk activate latest
source /usr/local/emsdk_env.sh
# ...
cmake --preset=Debug-emc
cmake --build --preset=Debug-emc

代码,参考: GhostEscape

TODO

svg转换成png

imagemagick rsvg-convert -w 50 -h 70 -a 1.svg -o 1.png 等先手工转换成png并拼接。

本想直接读svg图片,但是库librsvg是个怪咖,想加载进来的话rust环境需要额外的编译时间。 nanosvg 不支持 svg 格式中的特性, 最终放弃。

看一下类图

引擎基础模块类图

plantuml Diagram

场景、对象与组件类图

  • GameObject 上每种 Component(含子类)有且仅有一个
  • Scene 内有一个 GameObject 容器,一个场景内有多个GameObject
plantuml Diagram
pre
<script setup>
import { useData } from 'vitepress'

const { theme, page, frontmatter } = useData()
</script>

## Results

### Theme Data
<pre>{{ theme }}</pre>

### Page Data
<pre>{{ page }}</pre>

### Page Frontmatter
<pre>{{ frontmatter }}</pre>

基于 MIT 许可发布