c++ - 在不同位置渲染相同精灵的数组
问题描述
我正在尝试重新创建 Space Invaders,但无法让我的入侵者精灵连续显示而不是彼此重叠显示。我有一个名为 Sprite 的 STRUCT,其中包含 x 位置、y 位置、宽度、高度和颜色,我将这些信息传递给一个自定义函数来绘制精灵。如果我只是创建一个精灵,一切都会工作。但我想创建多个(例如 5 个用于测试目的)。因此,我创建了一个 Sprite 结构的数组,并在 For 循环中尝试更改数组中每个元素的 x 位置,然后使用自定义函数在循环的每次迭代中绘制数组的元素,但对于某些原因我没有得到正确的结果。我可以在调试器中看到 x 位置实际上正在改变,但我认为一切仍然相互叠加。
struct INVADER
{
int xPos = 100;
int yPos;
int width;
int height;
D3DCOLOR color;
INVADER()
{
xPos;
yPos;
width = 64;
height = 64;
color = D3DCOLOR_XRGB(255, 255, 255);
}
};
INVADER invaderArmy[5];
for (int index = 0; index < 5; index++)
{
//invaderArmy->xPos = 100;
invaderArmy[index].xPos *= index;
Draw_And_Rotate_Sprite(invaderImage, invaderArmy[index].xPos);
}
解决方案
我只是在这里写信,因为我没有 50 个代表发表评论。
Draw_And_Rotate_Sprite()
被调用函数的参数不应该invaderArmy[index]
代替invaderArmy[index].xPos
吗?
在提供的代码中也没有我可以看到的问题。请告诉我们Draw_And_Rotate_Sprite()
函数定义。
推荐阅读
- asp.net-core - 如何在 finbuckle 多租户配置中更改授权类型
- r - 使用 lapply 创建语料库时的内存问题
- angular - Jhipster 项目的 Docker 文件
- python - 在 x 轴 Matplotlib 上绘制带有垂直标签的图形
- arima - ARIMA - 读取 ACF 和 PACF 图
- git - git submodule init 仅存储在 .gitmodules
- c# - 在 WPF 中用他们的 backgroundworker 画一条线
- java - 这是电源实现的功能,我也得到了逻辑和代码,但在偶数情况下,输出中没有填充数字和电源
- css - 邪恶的 pdf 自定义字体无法在 Rails 应用程序中正确加载
- python - 使用 Kivy 重复背景图像始终保持图像大小