永发信息网

flash,as3,请问如何修改程序才可以让一个MC根据按键长短判定的它的跳跃高度?谢谢

答案:1  悬赏:10  手机版
解决时间 2021-03-17 10:05
我只能让它跳,部分程序如下:
this.addEventListener(Event.ENTER_FRAME,gameLoop);
stage.addEventListener(KeyboardEvent.KEY_DOWN,keyDownFunction);
stage.addEventListener(KeyboardEvent.KEY_UP,keyUpFunction);
////
public function keyDownFunction(event:KeyboardEvent) {
if (event.keyCode == 32) {
if (! hero.inAir) {
hero.jump=true;
}
}
}
/////////////
public function gameLoop(event:Event) {

//
if (lastTime==0) {
lastTime=getTimer();
}
var timeDiff:int=getTimer()-lastTime;
lastTime+=timeDiff;
moveCharacter(hero, timeDiff);
}
/////////
public function moveCharacter(char:Object,timeDiff:Number) {
var verticalChange:Number=char.dy*timeDiff+timeDiff*gravity;
if (verticalChange>15.0) {
verticalChange=15.0;
}
char.dy+=timeDiff*gravity;
if (char.jump) {
// start jump
char.jump=false;
char.dy=- char.jumpSpeed;
verticalChange=- char.jumpSpeed;
newAnimState="jump";
}
///////
}
多多指教,思考中。有更好的办法也可以SHOW下

有更简单可行的方法也行。
操作如下:
1 快速按一下键盘松开小跳,键盘按下时便已起跳;
2 长按根据按住的时间来决定跳跃的高度,但有最高值,键盘按下时便已起跳。
最佳答案
给你说下思路,你要先将这个事件分成两个阶段,一、键盘按下时执行enterframe事件(来决定键盘松开后的跳跃高度)。二、键盘弹起时停止enterframe事件,开始跳跃。
接下来细化这个思路,
enterframe事件执行的其实就是个变量不断增加的函数
跳跃有个最高度限制,那么在enterframe事件里就加一个判断,大于这个高度临界点时变量不再向上升

思路就是这样了,看你写的代码,应该还是基础的,写不出来在hi我吧
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
server.execute 是什么意思???
DNF2绝怎么才能简单过
三个亿提一个点是多少?
请教各位大师,森海HD820与森海HD800S音质比
形容人生前途一片大好的古诗词有哪些?
My TV is out of order. Can you tell me the
amd fx-8350配什么显卡
黔东家私城我想知道这个在什么地方
征途点卡能否使用手机话费来充值
土家族和苗族用英语怎么说
2018年1月4日5点出生的婴儿五行缺什么吗
女子防身术有用吗 什么防身物品最有用
海马护肤品怎么样???
上海时目网络科技有限公司怎么样?
有没有提现一直没到的,我的已经两天了,什么
推荐资讯
4.6x-2x等于32.5怎样解
洁力昂家政服务公司我想知道这个在什么地方
中国移动旁边显示负75什么意思
王者荣耀里面扁鹊出装备怎么出
360儿童手表5远程重启
从诸城有没有到潍坊直达的火车啊?
估算869-319约等于多少
被人状告侵犯注册商标专用权 要哪些证据?
百老泉酒坊抚顺五老店这个地址在什么地方,我
秦皇岛海港区现代购物宝姿女包价位?
日记 60字到70字
邢家山我想知道这个在什么地方
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?