本文整理汇总了C++中Stage::GetPos方法的典型用法代码示例。如果您正苦于以下问题:C++ Stage::GetPos方法的具体用法?C++ Stage::GetPos怎么用?C++ Stage::GetPos使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Stage
的用法示例。
在下文中一共展示了Stage::GetPos方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: TestPtToPtAndCoordStageMotion
int TestPtToPtAndCoordStageMotion()
{
int iModule;
int iError;
double dX, dY, dZ;
Path vPath;
iError=InitNMCModule3Axis (iModule, vPath);
g_stage.Rotate(180.0);
g_stage.SetVel(3.0, 3.0, 3.0);
g_stage.SetAccel(1.0, 1.0, 1.0);
// g_stage.EnableAmp();
// g_stage.ResetPos();
// g_stage.SetPathStatus();
// g_stage.EnableAmp();
// g_stage.ResetPos();
// g_stage.SetPathStatus();
vPath.SetPathParams(P_60HZ, //path frequency = 30 Hz
75, //Store a minimum of 45 points in the path point buffer
15000.0, //X scale - 20000.0 counts per inch
15000.0, //Y scale - 20000.0 counts per inch
15000.0, //Z scale - 1.0 counts per inch - not used
0.175); //acceleration = 1.0 inch/second/second
// InitServoPathParams(P_30HZ,1, 2, 3);
vPath.SetOrigin(0.0, 0.0, 0.0); //set the origin to X = 0, Y = 0, Z = 0
vPath.SetFeedrate(0.175); //feedrate = 1.0 inches/second
vPath.SetTangentTolerance(10.0); //continuous path tangent tolerence = 10 degrees
g_stage.InitPathMode(vPath);
BOOL bMotion;
iError=g_stage.MoveTo(0.0, 0.000, -0.5, true);
g_stage.GetPos( dX, dY, dZ );
CreatePath1A_XOffset( dX, dY, dZ, vPath);
ExecutePath3Axis();
iError=g_stage.MoveTo(1.0, 0.000, 0.000, true);
iError=g_stage.MoveTo(1.0, 0.000, -0.5, true);
g_stage.GetPos( dX, dY, dZ );
CreatePath1A_XOffset( dX, dY, dZ, vPath );
ExecutePath3Axis();
iError=g_stage.MoveTo(-1.0, 1.000, 0.0, true);
iError=g_stage.MoveTo(-1.0, 1.000, -0.5, true);
g_stage.GetPos( dX, dY, dZ );
CreatePath1A_XOffset( dX, dY, dZ, vPath );
ExecutePath3Axis();
iError=g_stage.MoveTo(0.0, 0.000, 0.000, true);
return 0;
};
示例2: TestCoordMotionCircleAtOrigin
int TestCoordMotionCircleAtOrigin()
{
int iModule;
int iError;
double dX=0.0, dY=0.0, dZ=0.0;
Path vPath;
iError=InitNMCModule3Axis (iModule, vPath);
g_stage.Rotate(180.0);
g_stage.SetVel(3.0, 3.0, 3.0);
g_stage.SetAccel(1.0, 1.0, 1.0);
vPath.SetPathParams(P_60HZ, //path frequency = 30 Hz
75, //Store a minimum of 45 points in the path point buffer
15000.0, //X scale - 20000.0 counts per inch
15000.0, //Y scale - 20000.0 counts per inch
15000.0, //Z scale - 1.0 counts per inch - not used
0.175); //acceleration = 1.0 inch/second/second
vPath.SetOrigin(0.0, 0.0, 0.0); //set the origin to X = 0, Y = 0, Z = 0
vPath.SetFeedrate(0.175); //feedrate = 1.0 inches/second
vPath.SetTangentTolerance(10.0); //continuous path tangent tolerence = 10 degrees
g_stage.InitPathMode(vPath);
BOOL bMotion;
iError=g_stage.MoveTo(2.5, 0.0, 0.0, true);
g_stage.GetPos( dX, dY, dZ );
vPath.ClearSegListA(2.5, 0.0, 0.0); //Clear the segment list and set the
// starting point for the path
// at X = 0, Y = 1, Z = 0
//
//Add line and arc segments to the path module's segment list for first move
//
int res;
res = vPath.AddArcSegA( 0.0, 2.5, 0.0, //end point of arc: x=1, y=3, z=0
0.0, 0.0, 0.0, //center point of arc: x=1, y=2, z = 0
0.0, 0.0, 1.0 ); //normal vector to arc plane: x = 0, y = 0, z = -1
if (res<0) return -1;
g_stage.ExecuteCoordMotion(vPath);
vPath.ClearSegListA(0.0, 2.5, 0.0); //Clear the segment list and set the
// starting point for the path
// at X = 0, Y = 1, Z = 0
//
//Add line and arc segments to the path module's segment list for first move
//
res = vPath.AddArcSegA( -2.5, 0.0, 0.0, //end point of arc: x=1, y=3, z=0
0.0, 0.0, 0.0, //center point of arc: x=1, y=2, z = 0
0.0, 0.0, 1.0 ); //normal vector to arc plane: x = 0, y = 0, z = -1
if (res<0) return -1;
g_stage.ExecuteCoordMotion(vPath);
// ExecutePath3Axis();
// iError=g_stage.MoveTo(-1.0, 1.000, 0.0, true);
// iError=g_stage.MoveTo(-1.0, 1.000, -0.5, true);
// g_stage.GetPos( dX, dY, dZ );
// CreatePath1A_XOffset( dX, dY, dZ );
// ExecutePath3Axis();
iError=g_stage.MoveTo(0.0, 0.000, 0.000, true);
return 0;
};
示例3: TestCoordMotionShortPath
int TestCoordMotionShortPath()
{
int iError;
int res;
int iModule;
Path vPath;
iError=InitNMCModule3Axis (iModule, vPath);
if (iModule < 3)
return -1;
g_stage.Rotate(180.0);
g_stage.SetVel(3.0, 3.0, 3.0);
g_stage.SetAccel(1.0, 1.0, 1.0);
vPath.SetPathParams(P_60HZ, //path frequency = 30 Hz
75, //Store a minimum of 45 points in the path point buffer
6684.57447, //X scale - 20000.0 counts per inch
6684.57447, //Y scale - 20000.0 counts per inch
2*6684.57447, //Z scale - 1.0 counts per inch - not used
1.0); //acceleration = 1.0 inch/second/second
vPath.SetOrigin(0.0, 0.0, 0.0); //set the origin to X = 0, Y = 0, Z = 0
vPath.SetFeedrate(1.0); //feedrate = 1.0 inches/second
vPath.SetTangentTolerance(10.0); //continuous path tangent tolerence = 10 degrees
g_stage.InitPathMode(vPath);
double x,y,z;
// g_stage.GetPos(x,y,z);
// InitPathParam(P_60HZ, 60,
// 6684.57447, 6684.57447, 2*6684.57447,
// 1.0,
// 1.0);
g_stage.GetPos(x,y,z);
g_stage.ResetPos();
//Clear the segment list and set the starting point for the path
// at X = 0, Y = 1, Z = 0
vPath.ClearSegListA(0,0,0);
//Add a segment to move to x=0, y=2, z=0
res = vPath.AddLineSegA(0.0, 1.0, 0.0);
if (res<0) return -1;
res = vPath.AddArcSegA( 1.0, 2.0, 0.0, //end point of arc: x=1, y=2, z=0
1.0, 1.0, 0.0, //center point of arc: x=1, y=1, z = 0
0.0, 0.0, -1.0 ); //normal vector to arc plane: x = 0, y = 0, z = -1
if (res<0) return -1;
g_stage.ExecuteCoordMotion(vPath);
vPath.ClearSegListA(1.0, 2.0, 0.0);
g_stage.GetPos(x,y,z);
res = vPath.AddLineSegA(2.0, 2.0, 0.0); //line segment endpoint: x=4, y=3, z=0
if (res<0) return -1;
res = vPath.AddArcSegA( 3.0, 1.0, 0.0, //end point of arc: x=5, y=2, z=0
2.0, 1.0, 0.0, //center point of arc: x=4, y=2, z = 0
0.0, 0.0, -1.0 ); //normal vector to arc plane: x = 0, y = 0, z = -1
if (res<0) return -1;
//line segment endpoint: x=5, y=0, z=0
res = vPath.AddLineSegA(3.0, 0.0, 0.0);
if (res<0) return -1;
//line segment endpoint: x=5, y=0, z=0
g_stage.ExecuteCoordMotion(vPath);
vPath.ClearSegListA(3.0, 0.0, 0.0);
if (res<0) return -1;
//line segment endpoint: x=5, y=0, z=0
res = vPath.AddLineSegA(0.0, 0.0, 0.0);
if (res<0) return -1;
g_stage.ExecuteCoordMotion(vPath);
ResetModules(iModule);
return 0;
};
示例4: TestPtToPtMotionShort
int TestPtToPtMotionShort()
{
// NMCSERVO Servo;
int iModules;
int iError;
long lPosition;
double XPos,YPos,ZPos;
double CmXPos,CmdYPos,CmdZPos;
double dCmdXSpeed,dCmdYSpeed,dCmdZSpeed;
double dCmdXAccel,dCmdYAccel,dCmdZAccel;
double dVelocity;
double dXHome, dYHome, dZHome;
byte byAD;
iModules=g_stage.Initialize("COM4:");
SetScaling_3Axis();
SetPIDGain_3Axis();
g_stage.SetVel(3.0, 3.0, 3.0);
g_stage.SetAccel(6.0, 6.0, 6.0);
g_stage.EnableAmp();
g_stage.ResetPos();
g_stage.GetHome( dXHome, dYHome, dZHome);
BOOL bMotion;
iError=g_stage.MoveRel(0.00, 0.00, 0.15, true);
iError=g_stage.MoveRel(0.00, 0.00, 0.15, true);
iError=g_stage.MoveRel(0.00, 0.00, 0.15, true);
iError=g_stage.MoveRel(0.15, 0.00, 0.00, true);
iError=g_stage.MoveRel(0.15, 0.00, 0.00, true);
iError=g_stage.MoveRel(0.15, 0.00, 0.00, true);
iError=g_stage.MoveRel(0.00, 0.15, 0.00, true);
iError=g_stage.MoveRel(0.00, 0.15, 0.00, true);
iError=g_stage.MoveRel(0.00, 0.15, 0.00, true);
iError=g_stage.MoveTo(1.00, 1.000, 1.000, true);
g_stage.GetPos(XPos, YPos, ZPos );
if ( !((XPos < 1.02) && (XPos > 0.98)) &&
!((YPos < 1.02) && (YPos > 0.98)) &&
!((ZPos < 1.02) && (ZPos > 0.98)) )
MessageBox(NULL, "Error with Position","Error Dialog", 1);
g_stage.GetHome( dXHome, dYHome, dZHome);
g_stage.GetCmdAccel(dCmdXSpeed, dCmdYSpeed, dCmdZSpeed);
g_stage.GetCmdAccel(dCmdXAccel, dCmdYAccel, dCmdZAccel );
iError=g_stage.MoveTo(0.0, 0.0, 0.0, true);
g_stage.GetPos(XPos, YPos, ZPos );
if ( !((XPos < 0.02) && (XPos > -0.02)) &&
!((YPos < 0.02) && (YPos > -0.02)) &&
!((ZPos < 0.02) && (ZPos > -0.02)) )
MessageBox(NULL, "Error with Position","Error Dialog", 1);
iError=g_stage.MoveTo(0.000, 0.000, 0.000, true);
g_stage.GetPos(XPos, YPos, ZPos );
g_stage.GetHome( dXHome, dYHome, dZHome);
return 0;
}
示例5: TestPtToPtMotionInPCSWithStage
int TestPtToPtMotionInPCSWithStage()
{
// NMCSERVO Servo;
int iModules;
int iError;
long lPosition;
double dXPosition,dYPosition,dZPosition;
double dCmdXPosition,dCmdYPosition,dCmdZPosition;
double dCmdXSpeed,dCmdYSpeed,dCmdZSpeed;
double dCmdXAccel,dCmdYAccel,dCmdZAccel;
double dVelocity;
double dXHome, dYHome, dZHome;
byte byAD;
iModules=g_stage.Initialize("COM3:");
SetScaling_3Axis();
SetPIDGain_3Axis();
g_stage.Rotate(180.0);
g_stage.SetVel(3.0, 3.0, 3.0);
g_stage.SetAccel(1.0, 1.0, 1.0);
g_stage.EnableAmp();
g_stage.ResetPos();
g_stage.GetCmdVel(dCmdXSpeed, dCmdYSpeed, dCmdZSpeed);
g_stage.GetSpeed(dCmdXSpeed, dCmdYSpeed, dCmdZSpeed);
g_stage.GetCmdAccel(dCmdXAccel, dCmdYAccel, dCmdZAccel );
BOOL bMotion;
iError=g_stage.MoveTo(0.0, 0.0, 0.0, true);
g_stage.GetPos(dXPosition, dYPosition, dZPosition );
double x,y,z;
x=0.5;y= 0.0;z= 0.0;
iError=g_stage.MoveTo(x,y,z, true);
g_stage.GetPos(dXPosition, dYPosition, dZPosition );
x=0.0;y= 0.5;z= 0.0;
iError=g_stage.MoveTo(x,y,z, true);
g_stage.GetPos(dXPosition, dYPosition, dZPosition );
x=-0.5;y= 0.0;z= 0.0;
iError=g_stage.MoveTo(x,y,z, true);
g_stage.GetPos(dXPosition, dYPosition, dZPosition );
x=0.0;y= -0.5;z= 0.0;
iError=g_stage.MoveTo(x,y,z, true);
g_stage.GetPos(dXPosition, dYPosition, dZPosition );
x=0.5;y= 0.5;z= 0.0;
iError=g_stage.MoveTo(x,y,z, true);
g_stage.GetPos(dXPosition, dYPosition, dZPosition );
x=-0.5;y= -0.5;z= 0.0;
iError=g_stage.MoveTo(x,y,z, true);
g_stage.GetPos(dXPosition, dYPosition, dZPosition );
x=0.5;y= -0.5;z= 0.0;
iError=g_stage.MoveTo(x,y,z, true);
g_stage.GetPos(dXPosition, dYPosition, dZPosition );
x=-0.5;y= 0.5;z= 0.0;
iError=g_stage.MoveTo(x,y,z, true);
g_stage.GetPos(dXPosition, dYPosition, dZPosition );
// iError=Servo.move(-8000,2);
// do{
// bMotion=Servo.IsInMotion();
// }
// while(bMotion);
// g_stage.GetHome( dXHome, dYHome, dZHome);
return 0;
}
示例6: Hit
//playerのHit関数
//引数:UnitBase型のポインタ
//(UnitBaseクラスを継承した子クラスの情報が扱える)
//戻り値:HRESULT型-成功かどうか
HRESULT Player::Hit(UnitBase* pTarget)
{
//ステージとの当たり判定
if (typeid(*pTarget) == typeid(Stage))
{
//pTargetをステージと判断し、stage型にキャスト
Stage* stage = (Stage*)pTarget;
//RayCastData型の変数を作る
RayCastData ray;
//レイが出る位置
ray.start = position;
ray.start.y = position.y+10;
//レイを向ける方向
ray.dir = D3DXVECTOR3(0, -1, 0);
//レイの情報を格納したアドレスを渡す
stage->GetModel()->RayCast(&ray);
//Rayが当たっているかつ
//ステージの位置Yがプレイヤー位置Y-1より大きかったら
if (ray.hit && ray.pos.y >= (position.y - 1) && ground_flg == FALSE)
{
jump_flg = TRUE;
jump_Count = 0;
ground_flg = TRUE;
position = ray.pos + D3DXVECTOR3(0, 0.5, 0);
}
else if (ground_flg == TRUE)
{
position = ray.pos + D3DXVECTOR3(0,0.5,0);
}
//目の前にステージがあるかの判定
ray.start = position;
D3DXMATRIX matR;
D3DXMatrixRotationY(&matR, D3DXToRadian(dir));
D3DXVECTOR3 rayVec = D3DXVECTOR3(0, 0, 1);
D3DXVec3TransformCoord(&rayVec, &rayVec, &matR);
ray.dir = rayVec;
stage->GetModel()->RayCast(&ray);
if (ray.hit && ray.dist < 2)
{
isWallHit = TRUE;
wallNormal = ray.normal;
}
else
{
isWallHit = FALSE;
}
ray.start = position;
ray.dir = D3DXVECTOR3(0, 0, -1);
stage->GetModel()->RayCast(&ray);
D3DXVECTOR3 v = stage->GetPos() - position;
//プレイヤーとカメラの間にステージがあるか
D3DXVECTOR3 pToCdist = camVec-position;
if (D3DXVec3Length(&v) < D3DXVec3Length(&pToCdist))
{
camVec = D3DXVECTOR3(position.x, 5, position.z);
}
}
//敵との当たり判定
if (typeid(*pTarget) == typeid(Enemy))
{
static int count = 0;
count--;
Enemy* enemy = (Enemy*)pTarget; //UnitBase型をEnemy型にキャスト
BOOL flg = item->Hit(enemy->GetPos()); //アイテムが当たったかどうか
if (flg)
{
enemy->KnockBack();
count = 100;
}
D3DXVECTOR3 v = enemy->GetPos() - position; //プレイヤーから敵に向かうベクトルを求める
if (D3DXVec3Length(&v) < 2) //ベクトルの長さが2以下だったら
{
if (count >= 0)
{
enemy->Kill();
g_gameScene = SC_CLEAR;
}
else
{
g_gameScene = SC_GAME_OVER;
}
}
}
if (typeid(*pTarget) == typeid(Invisible))
{
Invisible* invisible = (Invisible*)pTarget;
D3DXVECTOR3 inTopVec = invisible->GetPos() - position;
if (D3DXVec3Length(&inTopVec) < 1)
{
//.........这里部分代码省略.........