开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 1627|回复: 9
收起左侧

[已解决] 求助一个菜鸟的问题

 关闭 [复制链接]
结帖率:82% (9/11)
发表于 2010-9-25 21:57:36 | 显示全部楼层 |阅读模式   广东省深圳市
5精币
1(FAKN_S4H]9GD~T93OXFWS.jpg

为什么上面代码里的“-25”替换了成“÷2”按钮在启动窗口运行时,一直抖动着!....

最佳答案

查看完整内容

因为这个程序的目的是使单击时,按钮移到横向纵向各加25的坐标处。抖动的原因应该是“÷2”之后的坐标位置变成小数,发生错误引起的。正确的方法是对“÷2”之后的坐标进行取整。但这样做有可能达不到楼主的初衷。你可以试试做一下修改。 附:代码: .版本 2 .判断循环首 (取整 (横向位置 ÷ 2) ≠ 按钮1.左边 或 取整 (纵向位置 ÷ 2) ≠ 按钮1.顶边) .如果 (取整 (横向位置 ÷ 2) > 按钮1.左边) 按钮1.左边 = 按 ...

回答提醒:如果本帖被关闭无法回复,您有更好的答案帮助楼主解决,请发表至 源码区 可获得加分喔。
友情提醒:本版被采纳的主题可在 申请荣誉值 页面申请荣誉值,获得 1点 荣誉值,荣誉值可兑换荣誉会员、终身vip用户组。
快捷通道:申请荣誉值无答案申请取消悬赏投诉有答案未采纳为最佳
结帖率:0% (0/1)
发表于 2010-9-25 21:57:37 | 显示全部楼层   山东省烟台市
因为这个程序的目的是使单击时,按钮移到横向纵向各加25的坐标处。抖动的原因应该是“÷2”之后的坐标位置变成小数,发生错误引起的。正确的方法是对“÷2”之后的坐标进行取整。但这样做有可能达不到楼主的初衷。你可以试试做一下修改。
附:代码:
.版本 2

.判断循环首 (取整 (横向位置 ÷ 2) ≠ 按钮1.左边 或 取整 (纵向位置 ÷ 2) ≠ 按钮1.顶边)

    .如果 (取整 (横向位置 ÷ 2) > 按钮1.左边)
        按钮1.左边 = 按钮1.左边 + 1
    .否则
        .如果 (取整 (横向位置 ÷ 2) < 按钮1.左边)
            按钮1.左边 = 按钮1.左边 - 1
        .否则

        .如果结束

    .如果结束

    .如果 (取整 (纵向位置 ÷ 2) > 按钮1.顶边)
        按钮1.顶边 = 按钮1.顶边 + 1
    .否则
        .如果 (取整 (纵向位置 ÷ 2) < 按钮1.顶边)
            按钮1.顶边 = 按钮1.顶边 - 1
        .否则

        .如果结束

    .如果结束

    延时 (10)

.判断循环尾 ()
回复

使用道具 举报

结帖率:67% (16/24)
发表于 2010-9-25 22:51:10 | 显示全部楼层   广东省广州市
数学不好,以后再看看
回复

使用道具 举报

发表于 2010-9-25 22:57:19 | 显示全部楼层   福建省福州市
因为当鼠标点击完后,如果得到的横向位置或是纵向位置为奇数时,再除2,得到的就是小数,而按钮1.左边或按钮1.顶边为整数。这就永远不会相等,进入死循环。最后就来回抖动了。如在目标0.5时,从0移动过去,+1到1值,比0.5大,又减1,回到0,就这样来回移动。所以就抖了
回复

使用道具 举报

发表于 2010-9-25 22:59:40 | 显示全部楼层   福建省福州市
本帖最后由 jkevin 于 2010-9-25 23:01 编辑

可以试下我改后的代码:因为x、y为整型,所以没有小数出现,不会抖的。
[e].版本 2  .局部变量 x, 整数型 .局部变量 y, 整数型  .判断循环首 (横向位置 ≠ 按钮1.左边 + 按钮1.宽度 ÷ 2 或 纵向位置 ≠ 按钮1.顶边 + 按钮1.高度 ÷ 2)     x = 取绝对值 (取整 ((横向位置 - 按钮1.左边 - 按钮1.宽度 ÷ 2) \ 15))     y = 取绝对值 (取整 ((纵向位置 - 按钮1.顶边 - 按钮1.高度 ÷ 2) \ 15))     .如果真 (x = 0)         x = 1     .如果真结束     .如果真 (y = 0)         y = 1     .如果真结束     .如果真 (横向位置 < 按钮1.左边 + 按钮1.宽度 ÷ 2)         按钮1.左边 = 按钮1.左边 - x     .如果真结束     .如果真 (横向位置 > 按钮1.左边 + 按钮1.宽度 ÷ 2)         按钮1.左边 = 按钮1.左边 + x     .如果真结束     .如果真 (纵向位置 < 按钮1.顶边 + 按钮1.高度 ÷ 2)         按钮1.顶边 = 按钮1.顶边 - y     .如果真结束     .如果真 (纵向位置 > 按钮1.顶边 + 按钮1.高度 ÷ 2)         按钮1.顶边 = 按钮1.顶边 + y     .如果真结束      延时 (1) .判断循环尾 () [/e]

.版本 2

.局部变量 x, 整数型
.局部变量 y, 整数型

.判断循环首 (横向位置 ≠ 按钮1.左边 + 按钮1.宽度 ÷ 2 或 纵向位置 ≠ 按钮1.顶边 + 按钮1.高度 ÷ 2)
    x = 取绝对值 (取整 ((横向位置 - 按钮1.左边 - 按钮1.宽度 ÷ 2) \ 15))
    y = 取绝对值 (取整 ((纵向位置 - 按钮1.顶边 - 按钮1.高度 ÷ 2) \ 15))
    .如果真 (x = 0)
        x = 1
    .如果真结束
    .如果真 (y = 0)
        y = 1
    .如果真结束
    .如果真 (横向位置 < 按钮1.左边 + 按钮1.宽度 ÷ 2)
        按钮1.左边 = 按钮1.左边 - x
    .如果真结束
    .如果真 (横向位置 > 按钮1.左边 + 按钮1.宽度 ÷ 2)
        按钮1.左边 = 按钮1.左边 + x
    .如果真结束
    .如果真 (纵向位置 < 按钮1.顶边 + 按钮1.高度 ÷ 2)
        按钮1.顶边 = 按钮1.顶边 - y
    .如果真结束
    .如果真 (纵向位置 > 按钮1.顶边 + 按钮1.高度 ÷ 2)
        按钮1.顶边 = 按钮1.顶边 + y
    .如果真结束

    延时 (1)
.判断循环尾 ()

评分

参与人数 1好评 +1 收起 理由
黑丝妹 + 1 是非常详细但是呢;但是代码的改动稍大了点

查看全部评分

回复

使用道具 举报

结帖率:0% (0/3)
发表于 2010-9-25 23:09:34 | 显示全部楼层   广东省深圳市
只要有一个位置是奇数就会不断循环
但都是偶数也是一样的,测试多次,只有一次正确跳出循环。

所以还是和 ÷2有关系
÷返回的是双精度小数
不知道是不是和这个有关

有取整() 或者到整数()都可以解决问题

评分

参与人数 1好评 +1 收起 理由
黑丝妹 + 1 谢谢解释了“÷号”返回值

查看全部评分

回复

使用道具 举报

发表于 2010-11-22 10:46:07 | 显示全部楼层   广东省佛山市
不取整数就行啦~~类型改改不就行了~只要不让他进入死循环~~~
回复

使用道具 举报

结帖率:100% (67/67)

签到天数: 17 天

发表于 2011-4-17 22:08:57 | 显示全部楼层   广东省汕头市
这也菜鸟~~完全不会~
回复

使用道具 举报

结帖率:100% (67/67)

签到天数: 17 天

发表于 2011-4-17 22:09:41 | 显示全部楼层   广东省汕头市
这也菜鸟~~完全不会~
回复

使用道具 举报

结帖率:100% (11/11)

签到天数: 8 天

发表于 2011-11-19 15:17:08 | 显示全部楼层   江苏省盐城市
感谢楼主分享,努力学习呀!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 793400750,邮箱:wp@125.la
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表