我正在研究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. 在UWP中移动项目
- 3. 移动项目在C#
- 4. (Eclipse中)移动项目listveiw
- 5. Flex移动项目选项
- 6. 如何在网格中移动项目
- 7. 在ActiveRecord_Relation结果中移动项目?
- 8. 如何在IntelliJ/Webstorm中移动项目?
- 9. 在QGraphisItem中移动儿童项目
- 10. 在表格中移动项目SWT/RCP
- 11. 在SQL中递归项目移动
- 12. 在Flex移动项目中运行Javascript
- 13. 在TFS中移动工作项目
- 14. 动态移动的项目
- 15. 雪碧不能移动JPanel
- 16. 在.NET项目中移动项目文件
- 17. interact.js拖动项目移动在顶部
- 18. 如何在JPanel上移动形状?
- 19. 在另一个项目的目录下移动gitlab项目
- 20. JavaFX - 移动ListView项目 - MVC
- 21. 移动项目上下
- 22. 可移动清单项目
- 23. Android加速移动项目
- 24. Android RelativeLayout不移动项目
- 25. Flex移动项目:Alert.show
- 26. 移动tkinter listbox curser项目被移位?
- 27. 如何在iphone移动项目运行
- 28. 在PDF文档上移动项目
- 29. 移动列表中的项目?
- 30. 移动ArrayList中的几个项目