比如说我做一个类似"雷电"的游戏,需要在移动的同时射击,需要实现向斜方向移动(按下两个方向键),要怎么实现?
高手们请教教,谢谢!

解决方案 »

  1.   

    两个按键同时按下,属于一个同时的事件,例如你往右下走(0,0)--------------(6,0)
        |  \
        |    \
        |      \
        |        \
        |         (3,-3) 
        |
        |
        |
    (0,-6)假设初始飞机的位置是:(0,0)当你按住6秒“下”按键,飞机飞到的位置应该是(0,-6),X的位置为零,Y为负六
    同样,当你按住6秒“下”按键,飞机飞到的位置应该是(6,0)事实上,你看上图就知道,其实你按下右下两个按钮的时候,雷电飞机走到的位置应该是(3,-3),因为速度只是左右单独键的一半速度。这样你就可以构建一个函数用来计算飞机在哪个键飞行的速度。例如:右飞的位置 (S,0) = (X * 时间秒,0)下飞的位置是 (0,S) = (0,-Y   * 时间秒)右下飞的位置 (S1,S2) =(X * 时间秒/2 ,-Y   * 时间秒 /2)  每个都除以2
      

  2.   

    如果是游戏 
    你不用在意····
    因为在UPDATE的时候是顺序结构的··
    所以
    if 按键==下 
    {
      y=y+Speed;
    }
    if 按键==左
    {
      x=x-Speed;
    }
    就可以实现了因为是一帧一帧的更新的嘛 实际看不出来是先下再左的