發問發問
 

已答覆External flight model

  • 2009年6月6日 下午 09:19mamucz 使用者勳章使用者勳章使用者勳章使用者勳章使用者勳章
     
    Hi,
    I wont use ESP only for graphics rendering and i have external flight model. In input to ESP i have only  alt,lat,lon,Pitch,Bank and Heading. What is best way do it please? I try it via SIMCONNECT_DATA_INITPOSITION but it invite progress dialog.

    THX

解答

所有回覆

  • 2009年6月7日 下午 06:10Tim Gregson [MSFT] 使用者勳章使用者勳章使用者勳章使用者勳章使用者勳章
     提議的解答
    You need to define your own data struct with the variables you need to set, and then use that data struct to set the position and orientation.  Using the INITPOSITION structure, as you've found out, causes the sim to do a partial reset (reloading terrain, AI aircraft, etc) and is designed specifically to set the Initial Position for an object.

    Tim
    http://beatlesblog.spaces.live.com/
  • 2009年6月8日 上午 07:17mamucz 使用者勳章使用者勳章使用者勳章使用者勳章使用者勳章
     
    Define my own data structure is not problem, but how set it? Please can you give me some example?


    THX

    Petr
  • 2009年6月17日 下午 06:16Jon Hart ______________ 使用者勳章使用者勳章使用者勳章使用者勳章使用者勳章
     包含代碼
    First, set up your structure definition in ESP:

    		hr = SimConnect_AddToDataDefinition(_hSimConnect,DEFINITION, "Plane Altitude", "feet",					SIMCONNECT_DATATYPE_FLOAT64, 0.0f, SIMCONNECT_UNUSED);
    		hr = SimConnect_AddToDataDefinition(_hSimConnect,DEFINITION, "Plane Latitude", "degrees",				SIMCONNECT_DATATYPE_FLOAT64, 0.0f, SIMCONNECT_UNUSED);
    		hr = SimConnect_AddToDataDefinition(_hSimConnect,DEFINITION, "Plane Longitude","degrees",				SIMCONNECT_DATATYPE_FLOAT64, 0.0f, SIMCONNECT_UNUSED);
    		hr = SimConnect_AddToDataDefinition(_hSimConnect,DEFINITION, "Plane Heading Degrees True",	"degrees",	SIMCONNECT_DATATYPE_FLOAT64, 0.0f, SIMCONNECT_UNUSED);
    		hr = SimConnect_AddToDataDefinition(_hSimConnect,DEFINITION, "Plane Pitch Degrees",			"degrees",	SIMCONNECT_DATATYPE_FLOAT64, 0.0f, SIMCONNECT_UNUSED);
    		hr = SimConnect_AddToDataDefinition(_hSimConnect,DEFINITION, "Plane Bank Degrees",			"degrees",	SIMCONNECT_DATATYPE_FLOAT64, 0.0f, SIMCONNECT_UNUSED);
    	
    .and have a struct for it:

    struct PLANE_XYZ_HPR
    	{
    		double altitude;
    		double latitude;
    		double longitude;
    		double heading;
    		double pitch;
    		double roll;
    
    	} _PlanePos;
    populate the above, then call

    	res = SimConnect_SetDataOnSimObject(_hSimConnect,DEFINITION, SIMCONNECT_OBJECT_ID_USER, 0, 0, sizeof(_PlanePos),&_PlanePos );
    
    to set the data.

    I have more code if you want to PM me.






    Regards, Jon
  • 2009年7月9日 下午 12:02mamucz 使用者勳章使用者勳章使用者勳章使用者勳章使用者勳章
     已答覆
    Thank you it is what I need!!!
    • 已標示為解答mamucz 2009年7月9日 下午 12:02
    •