作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我一直在关注 SDL 上的 lazyfoos 教程,并且我大量修改了他的代码以制作一种可以四处移动的船游戏。我正在尝试让飞船开火,但我完全不知道该怎么做。我有船和它的运动以及图像在类里面的实际应用,我想知道是否有人有任何技术或某些方法可以有效地使船射击,使镜头独立移动然后在它离开时消失关闭屏幕。我知道我给出了一个模糊的解释,但我不想得到所有的答案,只是一些示例代码和正确方向的要点。
最佳答案
创建一个类来保存弹丸,其中包含您需要的所有信息,例如:
struct Projectile
{
Vector2 position;
Vector2 velocity;
shared_ptr<Image> graphic;
Time time_until_my_destruction;
bool dead;
void update(Time time_delta) {
if(!dead) {
position += velocity * time_delta;
time_until_my_destruction -= time_delta;
if(time_until_my_destruction < 0.0) dead = true;
}
}
void draw(DrawDest & dest) const {
graphic->draw(dest, position);
}
bool checkCollision(const GameObject & object) const {
return object.area().contains(position);
}
};
这个类显然不完整,你可能想调整访问级别,写一些构造函数和其他东西,但它应该给你基本的想法。
制作一个容器。当船开火时,将一个放入容器中。每一帧,调用更新,绘制,检查射弹是否已经死亡并检查与游戏对象的碰撞。如果发生碰撞,请施加损坏或其他任何东西。如果对象已死,则将其从容器中取出。
关于c++ - 在 SDL 中使对象独立移动(如枪声),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5972943/
我是一名优秀的程序员,十分优秀!