C 连续播放器移动
C++ Continuous Player Movement
对于我的程序,我正在制作pacman!我能够允许玩家使用钥匙移动,但是如何在玩家自动移动的位置将其放置,然后当您按下另一键时,它会更改。在简短的句子中,如果我按正确的箭头键,玩家会自行移动而无需我按下键,如果我按下钥匙,下一个可用的角落,则播放器将继续向上移动。这是我的运动代码:
void Controls()
{
if (GetAsyncKeyState(VK_UP) != 0)
{
text(Ply_X, Ply_Y, 15, " ");
if( Map[Ply_Y-1][Ply_X] == '.' ){ Ply_Y--; points++; } else
if( Map[Ply_Y-1][Ply_X] == ' ' ) Ply_Y--;
text(Ply_X, Ply_Y, 14, ""); cout << (char)2;
}
if (GetAsyncKeyState(VK_DOWN) != 0)
{
text(Ply_X, Ply_Y, 15, " ");
if( Map[Ply_Y+1][Ply_X] == '.' ){ Ply_Y++; points++; } else
if( Map[Ply_Y+1][Ply_X] == ' ' ) Ply_Y++;
text(Ply_X, Ply_Y, 14, ""); cout << (char)2;
}
if (GetAsyncKeyState(VK_RIGHT) != 0)
{
text(Ply_X, Ply_Y, 15, " ");
if( Map[Ply_Y][Ply_X+1] == '.' ){ Ply_X++; points++; } else
if( Map[Ply_Y][Ply_X+1] == ' ' ) Ply_X++;
text(Ply_X, Ply_Y, 14, ""); cout << (char)2;
}
if (GetAsyncKeyState(VK_LEFT) != 0)
{
text(Ply_X, Ply_Y, 15, " ");
if( Map[Ply_Y][Ply_X-1] == '.' ){ Ply_X--; points++; } else
if( Map[Ply_Y][Ply_X-1] == ' ' ) Ply_X--;
text(Ply_X, Ply_Y, 14, ""); cout << (char)2;
}
}
我看到的最简单的方法是在按下键时只是设置播放器方向。
因此,您最初将有播放器方向成为VK_NONE,当您按任何键时,您将将播放器方向设置为该键。
和以后的这些ifs将代替getAsynckeystate(vk_up)!= 0,要编写为:playerDirection == vk_up。
相关文章:
- SFML纹理像播放器
- 根据用户回答声明"Players"。用户选择玩家数量。播放器是结构体
- (SFML)按下键时,播放器构造函数未使用正确的动画进行更新
- 旋转播放器模型以指向一个点
- 播放器未在程序中的"X"和"O"之间切换
- DwmGetWindowAttribute 在全屏模式下无法获得媒体播放器的正确矩形大小
- 可以访问一个类中的播放器结构,但不能访问另一个类中的播放器结构
- C++ 播放器墙与 SFML 的冲突
- 如何在不显示媒体播放器的情况下在libVLC中拍摄快照
- OpenGL沿方向矢量移动播放器
- 如何将 cdparanoia 读取的 CD 音频数据移交给 ALSA 播放器?
- 我应该如何在文本RPG中调用播放器咒语
- 类模板"没有用于调用播放器的匹配函数::P layer()"
- 使用 Struct 进行 mp3 播放器模拟C++(不需要播放 mp3 的唯一显示列表)
- 如何修复结构播放器对象中的矢量位置,以便它在 Main 中与 me.position 一起使用?
- 将超能力高级音频播放器同步到绝对位置
- QT 5.8 WebEngine HTML 5视频播放器支持
- UNORDERED_MAP的存在确定是否使用了复制构建器或移动构造器
- C 连续播放器移动
- c++ tron 播放器光循环向一个方向移动