毕业设计网
JSP,JAVA | python | nodejs | android,安卓 | PHP | 微信小程序 |

VC飞行模拟

可以选择不同的预定义3d飞机模型,可控制飞机的飞行速度、飞行模式

进入系统可以选择飞机飞行的的场景,来观察模拟飞行的效果, 程序根据其用户需要提供其可利用的菜单项,然后通过菜单访问各个模块。其选择飞行场景界面如图3-1所示

 
本模块实现的技术关键在于对点击飞机一,飞机二选择时的判断.载入预先设置好的飞机3d模型.
DlgStart::DlgStart(CWnd* pParent /*=NULL*/)
 : CDialog(DlgStart::IDD, pParent)
{
 //{{AFX_DATA_INIT(DlgStart)
  // NOTE: the ClassWizard will add member initialization here
 //}}AFX_DATA_INIT
 m_iAirModel=1;
}


void DlgStart::DoDataExchange(CDataExchange* pDX)
{
 CDialog::DoDataExchange(pDX);
 //{{AFX_DATA_MAP(DlgStart)
 DDX_Control(pDX, IDC_BTNSTART, m_btStart);
 DDX_Control(pDX, IDC_BTNAIRTOW, m_btAirTwo);
 DDX_Control(pDX, IDC_BTNAIRONE, m_btAirOne);
 //}}AFX_DATA_MAP
}

3.3控制飞机状态
控制飞机的飞行状态是有键盘上方向键来控制的. 其模拟飞机飞行的状态界面如图3-2所示

 
void CAircraftView::MovePlane(void)
{
 register float dx,dz;

 dx=m_aircaft.vel*cos((90+m_aircaft.an)*3.141/180);
 dz=m_aircaft.vel*sin((90+m_aircaft.an)*3.141/180);
 if(AIRMODEL==1)
 {
  m_aircaft.x+=dx;
     m_aircaft.z+=dz;
 }
 else
 {
  m_aircaft.x-=dx;
     m_aircaft.z-=dz;
 }

 
 if(m_aircaft.x<-4000)
  m_aircaft.x=4000;
 if(m_aircaft.x>4000)
  m_aircaft.x=-4000;
 if(m_aircaft.z<-4000)
  m_aircaft.z=4000;
 if(m_aircaft.z>4000)
  m_aircaft.z=-4000;
}
3.4飞行背景切换
当飞机飞行的时候可以通过上面的背景切换状态来切换飞机飞行的背景. 其模拟飞机飞行背景切换界面如图3-3所示
 

3.5切换飞行状态
按下键盘上的m键,飞机可以实现尾气排放,也就是可切换飞机的状态,1是 不可控制状态,飞机自由飞翔,2是飞机接收键盘方向键控制.
 
void CAircraftView::OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags)
{
 // TODO: Add your message handler code here and/or call default
 // Camera position
 if(nChar==VK_LEFT)
  Ioan+=2;
 if(nChar==VK_RIGHT)
  Ioan-=2;
 if(nChar==VK_UP)
 {
  m_aircaft.vel+=0.1;
  if(m_aircaft.vel>30)
   m_aircaft.vel=30;
 }
 if(nChar==VK_DOWN)
 {
  m_aircaft.vel-=0.1;
  if(m_aircaft.vel<3)
   m_aircaft.vel=3;
 }
 if(nChar==83) // 按下'S'键
 {
  if(m_bSky==false)
   m_bSky=true;
  else
   m_bSky=false;
 }
 if(nChar==77) // 按下'M'键
 {
  if(m_bSmoke==false)
   m_bSmoke=true;
  else
   m_bSmoke=false;
 }
 // 视点模式
 if(nChar==49) // 按下'1'键
 {
  m_iCameraType=0;
 }
 if(nChar==50) // 按下'2'键
 {
  m_iCameraType=1;
 }
 
 CView::OnKeyDown(nChar, nRepCnt, nFlags);
}

 

 

 


 

以上是一部分介绍,如需要完整的资料或者如不符合您的要求,请联系技术人员qq:242219979咨询

上一篇:VB户籍管理系统
下一篇:VC文件对比


版权所有 毕业设计网联系qq:242219979 © 2007-2022