#12004/5/8 17:17:59
                            
                                请高手帮忙:
我想作一个篮球在墙面和地板间回弹的动画。篮球受鼠标拖动而运动,运动中受重力作用。可是篮球在动画的最后,竟被渐渐吸入地下,这是什么原因?怎样更改?
以下是代码:
property pSpeed     --记录速度大小
property pDistance    --记录当前鼠标位置和角色位置的差值
property pLimit    --舞台的范围
property pGravity    --重力
on getPropertyDescriptionList me    --获得速度取样间隔列表和舞台范围列表
  list=[:]
  addProp list,#pThrowSpan,[#comment:"Frame Span of throw",#format,#integer,#ange:[#min:1,#max:20],#default:5]
  addProp list,#pLimit,[#Comment:"Limit Rectangle",#format:#rect,#default:rect(0,0,640,480)]
  addProp list,#pGravity,[#Comment:"Gravity",#format:#integer,#range:[#min:0,#max:3],#default:0]
  return list
end
on beginSprite me    --设置舞台对角色的限制范围
  pLimit.right=pLimit.right-(sprite(me.spriteNum).right-sprite(me.spriteNum).left)/2
  pLimit.left=pLimit.left+(sprite(me.spriteNum).right-sprite(me.spriteNum).left)/2
  pLimit.bottom=pLimit.bottom+(sprite(me.spriteNum).top-sprite(me.spriteNum).bottom)/2
  pMode=#normal
end
on mouseDown me
  pDistance=the mouseloc-sprite(me.spriteNum).loc
  pMode=#pressed
  pLocList=[]
end
on mouseUp me
  throw(me)
end
on mouseUpOutside me
  throw(me)
end
on throw me
  pSpeed=(the mouseLoc-pDistance-pLocList[1])/pThrowSpan    --设置鼠标弹起时物体的初速度
  pMode=#throw
end
on exitFrame me
    
  if pMode=#pressed then
    
    pCurrentLoc=the mouseLoc-pDistance    
    sprite(me.spriteNum).loc=pCurrentLoc     --鼠标拖动时设置当前物体位置
    pLocList.add(pCurrentLoc)
    if pLocList.count>pThrowSpan then 
      pLocList.deleteAt(1) 
    end if
    
  else if pMode=#throw then    --设置物体反弹时的速度
    pSpeed.locV=pSpeed.locV+pGravity  
    pCurrentLoc=pCurrentLoc+pSpeed
    sprite(me.spriteNum).loc=pCurrentLoc    --投掷过程中物体的位置
    pSpeed=pSpeed*0.98    --由于阻力的作用,物体速度要减慢
    
    if pCurrentLoc.locH>pLimit.right or pCurrentLoc.locH<pLimit.left then 
      puppetSound 1,"ding"
      pSpeed.locH=-pSpeed.locH
      pSpeed.locV=pSpeed.locV+pGravity
    end if
    if  pCurrentLoc.locV>pLimit.bottom then 
      puppetSound 1,"ding"
      pSpeed.locV=-abs(pSpeed.locV)          
    end if 
        
  end if
end