我正在研究pong游戏,并且正在研究移动球的机制。如果我给x加1,球就向右移动1个像素,如果我给y加1,球就会向下移动1个像素。如果我想以某个角度移动球,那么如何计算坐标。在JPanel中移动项目
0
A
回答
2
尝试使用角度将会比你需要得到更复杂一点。对于这种动画,您通常希望使用浮点数来存储对象的x和y坐标,并通过应用x和y角度来移动它(浮点数将保留在屏幕上绘制时四舍五入的位置细节)。增量表示物体在每个轴上移动的速度,可以是负值或正值。
对于动画的每次迭代,将xdelta添加到x坐标并将ydelta添加到y坐标。将它们四舍五入以将它们放置在屏幕上。
当您点击顶部或底部边框时,您可以交换ydelta组件上的标志,同样也可以更换侧边框。
您不希望始终保持相同的x和y增量,因此当物体碰到桨时,稍微修改x或y增量以改变角度。
1
您正在寻找线条绘制算法,类似于Bresenham或DDA,您可以找到一些合理的实现方法,而不是绘制完整的线条,而是沿着该线条移动球,但找到要移动的一组线条的方式上是一样的。
1
您可能会感兴趣these resources对您有所帮助。
1
对于像Pong这样的东西,你应该研究矢量数学,但如果你想要的只是知道一个角度,你真正需要的是SOHCAHTOA。
相关问题
- 1. 项目不会移动JPanel
- 2. 在JFrame中移动JPanel
- 3. Jpanel在设计时自由移动项目
- 4. 在QGraphicsView中移动项目
- 5. 在UWP中移动项目
- 6. Swing:移动JPanel
- 7. 在JPanel周围移动JLabel
- 8. (Eclipse中)移动项目listveiw
- 9. 移动项目在C#
- 10. 移动UICollectionView项目
- 11. Flex移动项目选项
- 12. 如何在IntelliJ/Webstorm中移动项目?
- 13. 在Windows中移动TreeView项目
- 14. 在QListWidget中上下移动项目?
- 15. 在表格中移动项目SWT/RCP
- 16. 在Flex移动项目中运行Javascript
- 17. 在QGraphisItem中移动儿童项目
- 18. 如何在网格中移动项目
- 19. 在SQL中递归项目移动
- 20. 在ActiveRecord_Relation结果中移动项目?
- 21. 在TFS中移动工作项目
- 22. 动态移动的项目
- 23. Flex移动项目或ActionScript移动项目?
- 24. 在.NET项目中移动项目文件
- 25. 雪碧不能移动JPanel
- 26. interact.js拖动项目移动在顶部
- 27. 使用键移动JPanel中的矩形
- 28. 刷新JPanel中移动的JLabel
- 29. 鼠标在JPanel内移动事件
- 30. 如何在JPanel上移动形状?