3.6里面当按下多个按钮时候code怎么返回

我是初学cocos,做了个物理相关的小demo,就是按下上下左右的话小球分别在四个方向上可以加速,我把加速的式子都写在update里面了,但是当我按下2个按键的时候就不能实现斜着加速了,是不是按下多个按钮的时候code的返回值是复数个值?求大大教一下

这是获取code,按下就获取,松开就变回初始值

void StartScene::thisKeyPressed(EventKeyboard::KeyCode code, Event* event)
{
    lastCode = code;
}

void StartScene::thisKeyReleased(EventKeyboard::KeyCode code, Event* event)
{
    lastCode = EventKeyboard::KeyCode::KEY_NONE;
}

```

更新时候给小球加速
void StartScene::update(float delta)
{
    if(lastCode == EventKeyboard::KeyCode::KEY_LEFT_ARROW) {
        aniPhysicsBody->setVelocity(aniPhysicsBody->getVelocity()+Vec2(-20.f, 0.f));
    }
    if(lastCode == EventKeyboard::KeyCode::KEY_RIGHT_ARROW) {
        aniPhysicsBody->setVelocity(aniPhysicsBody->getVelocity()+Vec2(20.f, 0.f));
    }
    if(lastCode == EventKeyboard::KeyCode::KEY_UP_ARROW) {
        aniPhysicsBody->setVelocity(aniPhysicsBody->getVelocity()+Vec2(0.f, 20.f));
    }
    if(lastCode == EventKeyboard::KeyCode::KEY_DOWN_ARROW) {
        aniPhysicsBody->setVelocity(aniPhysicsBody->getVelocity()+Vec2(0.f, -20.f));
    }
}

```


另外还有一个问题就是我用edgebox做了个边框,正常状态下小球撞到边框会反弹,然而当小球到边框的时候按下加速会越过边框飞出去,这个怎么解决啊