【发布时间】:2014-02-16 05:48:24
【问题描述】:
我正在用 SDL 编写一个 2D 游戏,在这个游戏中,我想创建一个“鸟”类,它将在屏幕上为一只简单的鸟制作动画。我认为这是最好的工作方式是有一个基类来绘制我想要的东西,然后有子类('bird' 类,'player' 类,最后是子弹类等)。基类的draw成员函数会调用子类的成员函数来绘制自己(使用基类中的函数),那么首先,这是构造我的游戏的合理方式吗?
其次,当我调用例如我的“鸟”类的绘制函数时,该函数需要知道它正在播放动画的哪一帧,并返回适当的图像。每次调用函数时增加帧号会更好,还是让函数在单独的线程上运行,这样在调用函数的任意时间它都会返回正确的帧,但这意味着我'd 需要一个单独的线程来处理屏幕上的每个动画精灵。
我考虑做第二种的原因是,在第一种方法中,运行相同程序的不同计算机将以不同的速度运行,因此动画也会如此,所以我唯一的选择是固定数量每秒调用渲染函数的次数。在第二种方法中,帧计数器在单独的线程中运行,我可以在函数显示下一帧之前设置特定的时间延迟,这意味着整个动画的速度完全不受渲染次数的影响函数被调用。
最后一个快速问题 - 对于我的“鸟”类,如果该类的每个实例都是单独的鸟,或者有一个控制 X 多只鸟的实例会更好吗?它有什么不同吗?
【问题讨论】:
标签: c++ multithreading oop sdl