有没有大佬教教我如用QT做一个小球在框里弹,鼠标点击向鼠标点击方向移动

Mositoph 2019-01-25 08:08:09
刚刚学习qt的小白。
...全文
768 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
引用 11 楼 Mositoph 的回复:
引用 10 楼 彩阳 的回复:
这个是业务逻辑相关的内容了。都不算很难的。
因为我的球随机动 然后再获取鼠标动坐标我不知道该怎么求这个直线


接收到点击事件的时候,w = click.x - ball.x; h = click.y - ball.y; 根据你定时器间隔和你想要运动的时间算你要刷新的次数n,于是每次刷新时ball.x += w/n; ball.y += h/n;这就是匀速过去了。

匀减速就是n次之后w/n h/n为0,x方向每次减少量 fx = (w/n)/n; fy同理。 然后ball.x += (w/n - fx*i); i是当前刷新到第几次了。

这是简化来的。你也可以根据勾股定理来算,我动图里的就是根据公式来的。
由于修年假了路上无聊,我就把那玩意改成了桌球
Mositoph 2019-01-28
  • 打赏
  • 举报
回复
引用 10 楼 彩阳 的回复:
这个是业务逻辑相关的内容了。都不算很难的。
因为我的球随机动 然后再获取鼠标动坐标我不知道该怎么求这个直线
彩阳 2019-01-28
  • 打赏
  • 举报
回复
这个是业务逻辑相关的内容了。都不算很难的。
Mositoph 2019-01-28
  • 打赏
  • 举报
回复


引用 7 楼 这是一个正经昵称 的回复:

我看到了 是这样的 就是随着鼠标动
Mositoph 2019-01-28
  • 打赏
  • 举报
回复
引用 6 楼 这是一个正经昵称 的回复:


这样吗?我还没写碰撞。
你的图。。。没有
  • 打赏
  • 举报
回复
  • 打赏
  • 举报
回复


这样吗?我还没写碰撞。
Mositoph 2019-01-26
  • 打赏
  • 举报
回复
我已经实现在框里弹了。就重写鼠标点击事件我不知道具体怎么操作
kerwin liu 2019-01-26
  • 打赏
  • 举报
回复
用box2d 不用自己处理加速度和碰撞等问题。参考链接 https://wiki.qt.io/Build_QML_Box2D_Library
ooolinux 2019-01-25
  • 打赏
  • 举报
回复
每个定时间隔的时候重绘。
ooolinux 2019-01-25
  • 打赏
  • 举报
回复
重新计算vx,vy时小球可以保持标量线速度均衡。
ooolinux 2019-01-25
  • 打赏
  • 举报
回复
小球坐标x,y,速度vx,vy,用一个定时器每隔定时间隔x+=vx,y+=vy,碰到左右墙壁vx=-vx,碰到上下墙壁vy=-vy,点击鼠标时重新计算vx,vy使小球朝那个方向运动。

16,239

社区成员

发帖
与我相关
我的任务
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧