在空中曲棍球比赛中,我怎样才能使冰球的速度慢下来?
How can I make the speed of the puck slow down in an air hockey game?
我正在用c++制作一个空中曲棍球游戏(这是我用c++编写的第一个程序)。我对冰球的速度有问题(它在减速,但从来没有停止过)。我怎样才能让它工作?这是控制冰球和球拍的速度的代码(我只有一个球拍)。
(paddle1包含paddle1的坐标,paddle1helper是前一个坐标)
paddle1speed = Point(paddle1.x-paddle1helper.x,paddle1.y-paddle1helper.y);
if(puck.x > paddle1.x-40 && puck.x < paddle1.x+40 && puck.y < paddle1.y+40 && puck.y > paddle1.y-40) {
if(paddle1speed.x <= 1 && paddle1speed.y <= 1)
puckspeed*=-1;
else puckspeed=paddle1speed;
}
puckspeed.x/=1,9;
puckspeed.y/=1,9;
puck+=puckspeed;
if((puck.y > winsize.y-15 || puck.y < 15))
puckspeed.y *=-1;
if((puck.x > winsize.x-15 || puck.x < 15))
puckspeed.x *=-1;
paddle1helper = paddle1;
我知道这不是最好的解决方案。你能给我一些建议吗? 你有一个问题在这里:
puckspeed.x/=1,9;
您正在使用逗号操作符,操作数为puckspeed.x/=1
和9
,因为表达式是这样解析的:
(puckspeed.x/=1) ,(9);
逗号操作符对第一个操作数求值,丢弃结果,对第二个操作数求值,并返回结果。在您的示例中,表达式的实际效果是
puckspeed.x/=1;
极有可能你想要除以1.9
,可以这样做:
puckspeed.x/=1.9;
^ HERE
GCC会给你一个有用的警告,如果你编译-Wall
标志:
警告:逗号操作符的右操作数无效[- unused-value]
您正在使用不存在的欧陆c++语言进行编程,其中浮点常量具有(例如)1,9
的形式。在Anglo-Saxon c++中,表达式1,9
是一个逗号操作符表达式,其求值为其第二个参数:在本例中为9
。试试这个:
puckspeed.x/=1.9;
puckspeed.y/=1.9;
相关文章:
- CUDA Shuffle指导减少速度慢于减少共享记忆
- 使用boost.lockfree队列比使用静音速度慢
- 提升文件系统的速度慢得令人难以置信
- Winsock C++ - Java 连接速度慢
- Qt自定义树模型显示正确,但有缺陷且速度慢
- C++线程化的应用程序比非线程化的运行速度慢
- 函数调用速度慢得令人痛苦
- gcc std::unordered_map 实施速度慢吗?如果是这样 - 为什么
- 返回元素的速度比通过引用和修改发送元素的速度慢
- A* 寻路速度慢
- 流网络摄像头的速度慢,无法"detectMultiScale"
- 相同的功能?使用 GMP(C++) 时运行速度慢约 10 倍
- C++ 多线程处理速度慢
- C++ ifstream::由于memcpy,读取速度慢
- 运行时间比较 - 类似的代码运行速度慢 4 倍
- 大桌子的快速排序速度慢得出奇
- 在c++中重写这个python函数似乎会使其运行速度慢很多.这合理吗
- 在空中曲棍球比赛中,我怎样才能使冰球的速度慢下来?
- 编译后首次执行速度慢得令人难以置信,除非"obvious"所有循环都将停止
- 与CPU版本相比,OpenCV GPU对象检测速度慢,检测次数少