- 积分
- 149
- 帖子
- 31
- 主题
- 3
- 精华
- 0
- 最后登录
- 2015-8-20
- 在线时间
- 16 小时
- 私信
|
发表时间 : 2014-12-10 15:29:59
|
浏览 : 1339 评论 : 2
问题:虚拟座舱驾驶杆, 实现按“键盘← →方向键”控制 驾驶杆的左右转动,并且 按指定数量转动多与少。
代码:
int GlsF16CockpitClass::StickBase_ObjectCallback(Group* self, DisplayEvent* ev)
{
MouseEvent* mev = (ev->eventType == EVENT_MOUSE ? (MouseEvent*)ev : NULL);
KeyboardEvent* kev = (ev->eventType == EVENT_KEYBOARD ? (KeyboardEvent*)ev : NULL);
CPoint poin;
bool reas=false;
ON_MOUSE_DOWN(MOUSE_LBUTTON)
{
oldx=mev->x;
reas=true;
}
ON_MOUSE_DRAG(MOUSE_LBUTTON)
{
poin.x=mev->x;
float newx=poin.x-oldx;
StickBase->DynamicRotate(newx,Y_AXIS);
reas=true;
}
/*if(ev->eventType==EVENT_KEYBOARD){
KeyboardEvent *kev=(KeyboardEvent*)ev;
if(kev->>='0' && kev->keysym<='9'){
StickBase->DynamicRotate(poin.x,Y_AXIS);
}
}*/
KeyboardEvent *kevs=(KeyboardEvent*)ev;
if((FL_Left==kevs->keysym)&&(ev->eventType==EVENT_KEYBOARD))//方向键左
{
reas=true;
}
if((FL_Right==kevs->keysym)&&(ev->eventType==EVENT_KEYBOARD))//方向键右
{
reas=true;
}
return reas;
} |
|