Mario开发流程(七)

完成Mario的跳跃功能

思考1:如何判断当前Mario是否可以跳跃?

分析:如果处在某个障碍物的上面,Mario是可以跳跃的。但如果已经在空中的话,Mario就不能继续跳跃了。

// 如果符合下述条件,表示当前处在一个障碍物的上面
if (ob.getY() == this.y + 60 && (ob.getX() - 60 < this.x && ob.getX() + 60 > this.) {
   onLand=true;//onLand是boolean类型的标志位,默认为false
}

思考2:如何实现按空格键进行跳跃

分析:如果可以跳跃,每按一次空格键就会进行跳跃,当上升到一定程度就会有一个下落的过程。

1.在MainFrame的keyPressed方法中增加对空格键的处理
//当按下空格键时,Mario开始跳跃
if(e.getKeyCode()==32){
	this.mario.jump();
}
2.完成Mario中的jump方法
public void jump() {
  // 如果当前处于静止状态,表示可以进行跳跃
  if (this.status.indexOf("jumping") == -1){
   if (this.status.indexOf("left") != -1) {
    this.status = "left--jumping";
   } else {
    this.status = "right--jumping";
   }
   ymove=-5;
  }
 }
而跳跃应该分成两个阶段,之前是上升的阶段,之后是下落的过程。上升时纵坐标不断减小,下落时纵坐标增大。
3.在Mario中增加down方法。注意Mario下落时,不仅跳跃会下落,当移动到障碍物边界继续移动时也会下落。
	//加入下落的方法
	public void down(){
		if (this.status.indexOf("left") != -1) {
			this.status = "left--jumping";
		} else {
			this.status = "right--jumping";
		}
		ymove=5;
	}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值