【小恐龙游戏】中,小恐龙的跳起数据“y”输出漂移
发表在Java视频课程答疑 2018-09-06
是否精华
版块置顶:
《在【小恐龙游戏】实践中,发现小恐龙的跳起数据“y”输出漂移》

是这样的,为了控制小恐龙跳起时间,调试jumpValue值,结果发现,“y”输出不尽人意,后来打印输出y,y并不是算式y += jumpValue;算出来的结果。

不知道你们会不会这样?如果根号申老师能看到就好了。


public void move() {// 移动
step();// 踏步
if (jumpState) {// 当起跳的时候
if (y >= LOWEST_Y) {// 如果站在地上
jumpValue = -5;
}
if (y <= LOWEST_Y - jumpHeight) {
jumpValue = 5;
}
y += jumpValue;
if (y >= LOWEST_Y) {
jumpState = false;
}

}
}
分享到:
精彩评论 4
根号申
学分:4736 LV12
TA的每日心情
2021-07-16 23:48:46
2018-09-07
沙发

我没看懂你说的是什么意思,计算机不会骗人,如果输出在y += jumpValue;之后,你输出的y就是计算后的值,如果你觉得输出的记过和你想的不一样,说明你想错了。

mrkj_1532404047
学分:1553 LV9
2018-09-07
板凳
谢谢老师回复!比如我把jumpValue设置成-10和+3,Y的输出并不是每次减10,而是每次减7,每次加6,当jV值设置为2或者1的时候,就不跳了,错了。
根号申
学分:4736 LV12
TA的每日心情
2021-07-16 23:48:46
2018-09-07
地板

-5和+5是恐龙跳跃时每一帧的移动速度,-10就是减10,+3就是加3,如果你得出的结果不对,要么是输出的不是计算结果,要么你的计算过程是错的。恐龙不跳是因为没发生移动,你可以根据自己的代码和设定的数值判断为什么恐龙没有移动。

mrkj_1532404047
学分:1553 LV9
2018-09-07
4L
我的计算过程是这样的,为了方便理解,我把算法一起放在jump()方法中:
(但是这个y,并不是我们想要的那个y。)

public void jump() {

if (jumpstate1) {

if (y <= high) {//high=最高点10
jumpval = 1;
}
if (y >= low) {//low=最低点120
jumpval = -8;
}
y = y + jumpval; // jumpval没有问题,而Y产生漂移,根本就不是算出来的结果。
if (y >= low - 3) {
jumpstate1 = false;
y = low;
}
}
首页上一页 1 下一页尾页 4 条记录 1/1页
手机同步功能介绍
友情提示:以下图书配套资源能够实现手机同步功能
明日微信公众号
明日之星 明日之星编程特训营
客服热线(每日9:00-17:00)
400 675 1066
mingrisoft@mingrisoft.com
吉林省明日科技有限公司Copyright ©2007-2022,mingrisoft.com, All Rights Reserved长春市北湖科技开发区盛北大街3333号长春北湖科技园项目一期A10号楼四、五层
吉ICP备10002740号-2吉公网安备22010202000132经营性网站备案信息 营业执照