我是初学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做了个边框,正常状态下小球撞到边框会反弹,然而当小球到边框的时候按下加速会越过边框飞出去,这个怎么解决啊