0
点赞
收藏
分享

微信扫一扫

TE二次开发键盘控制键修改

       用键盘可以实现在TE中进行前进、后退等一些操作,这些键是在TE中默认定义好的,在二次开发中,可以实现对这些键进行更换。

       默认的键盘操作键列表(帮助文档): 

       A:增加速度直到达到最大的前进速度

       <SHIFT>A:双倍加速

       Z:降低速度,直到达到最大反向速度

       <SHIFT>Z:双倍降速

       <SPACE>:停止飞行(速度设置为零) 

       S:向上移动

       <SHIFT>S:快速上升

       X:向下移动

      <SHIFT> X:快速下降 

  键盘的上下箭头控制摄像机倾斜

  向上箭头键:摄像机或飞行角度向上

  向下箭头键:摄像机或飞行角度向下 

  键盘左、右箭头键控制飞机的方向

  左箭头键:飞行摄像机方向向左

  右箭头键:飞行摄像机方向向右 

      Q:向左滑动/缩小

     <SHIFT> Q:快速向左滑动/缩小

     W:向右滑动/放大

     <SHIFT> W:快速向右滑动/放大


  要想实现按自己定义的键进行TE控制,在二次开发中,TE的三维窗口默认有一个事件是:OnKeyboardMessage,在程序中,实现此事件,以CS代码为例,在winform窗口上点击事件的后边,后端代码即可实现事件。

TE二次开发键盘控制键修改_3d


 private void axTE3DWindow1_OnKeyboardMessage(object sender, AxTerraExplorerX._ITE3DWindowEvents_OnKeyboardMessageEvent e)

        {

            e.message = 258;

           //这句很关键,设置true,即不实现默认键盘的按键

            e.pbHandled = true;     


          //根据e.keyCode的数值实现自定义移动

          switch (e.keyCode)

            {

          //键盘A的操作,实现向左移动

                case 65:            

                    IPosition6 pos =                              sgworld.Navigate.GetPosition(AltitudeTypeCode.ATC_TERRAIN_RELATIVE); 

                    double x = pos.Altitude * 0.2;

                    IPosition6 newpos = pos.Move(x, 270 + pos.Yaw, 0);/ 

                    newpos.Pitch = pos.Pitch;

                    newpos.Yaw = pos.Yaw;

                    sgworld.Navigate.SetPosition(newpos); 

                    break;

           //其他的键盘操作...............

            }

       此方式就可以实现自定义键盘按键的操作,唯一的要求,就是那些上下左右的移动,得用自己的方法来写。

           








举报

相关推荐

0 条评论