本文整理汇总了C++中player::getPosition方法的典型用法代码示例。如果您正苦于以下问题:C++ player::getPosition方法的具体用法?C++ player::getPosition怎么用?C++ player::getPosition使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类player
的用法示例。
在下文中一共展示了player::getPosition方法的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: checkCollidePH
//player to hard code point
bool checkCollidePH(player P, float ox, float oy, float or)
{
Point p;
p.x = ox;
p.y = oy;
return theCollide(P.getPosition(), p, P.getRadius(), or);
}
示例2: drawPlayer
void drawPlayer()
{
int x, y;
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
//get players position
x = mainPlayer.getPosition().x;
y = mainPlayer.getPosition().y;
//draw our triangle
glBegin(GL_TRIANGLES);
glVertex3f(x,y + 20 ,0);
glVertex3f(x -20, y-10,0);
glVertex3f(x+20,y -10,0);
glEnd();
//glutSwapBuffers();//swap bufferes!!!! Important for animation
glFlush();
}
示例3: checkCollidePP
//player to player
bool checkCollidePP(player P1, player P2)
{
return (theCollide(P1.getPosition(), P2.getPosition(), P1.getRadius(), P2.getRadius()));
}
示例4: checkCollidePU
//player to unit
bool checkCollidePU(player P, unit U)
{
return (theCollide(P.getPosition(), U.getPosition(), P.getRadius(), U.getRadius()));
}
示例5: playerMovement
//movement function
void playerMovement ()
{
if (_move == true)
{
//if right clicked in enemy, following enemy
if (follow == true)
{
if (attack_flag == true && clock() >= end_cool_attack)
{
attack_flag = false;
player_animation_select = 0;
//reset animation
}
//take a portion of clock time on cooldown to select animations basically 1 animation per 1/num animtions timeframe
float pre, post;
current = clock();
pre = (float)((float)player_animation_select / (float)player_animation_max);
post = (float)((float)(player_animation_select + 1) / (float)player_animation_max);
if (current >= start_cool_attack + (attack_cooldown*pre) && current < start_cool_attack + (attack_cooldown*post) && player_animation_select != player_animation_max - 1 && attack_flag == true)
{
player_animation_select++;
}
mouse.x = enemy[chase].getPosition().x;
mouse.y = enemy[chase].getPosition().y;
//if not attacking
if (attack_flag == false)
{
float distance = (float)pow(pow(enemy[chase].getPosition().x - mainPlayer.getPosition().x, 2) + pow(enemy[chase].getPosition().y - mainPlayer.getPosition().y, 2), 0.5);
//if within range of enemy, rememebr we already checked if the enemy was clicked on
if (distance <= mainPlayer.getRange())
{
//attack the enemy and start the cooldown clock
cout<<enemy[chase].getHealth()<<cout<<"\n";
attack(chase);
start_cool_attack = clock();
end_cool_attack = attack_cooldown + start_cool_attack;
attack_flag = true;
cout<<enemy[chase].getHealth()<<cout<<"\n";
}
}
//stop following if enemy is dead
if (enemy[chase].getHealth() <= 0 && follow == true)
{
follow = false;
_move = false;
}
}
if (follow == false)
player_animation_select = 0;
//move the player to its movepoint
mainPlayer.move(movepoint.x, movepoint.y);
//if you reach the mouse click, stop moving
if (mainPlayer.getPosition().x == mouse.x && mainPlayer.getPosition().y == mouse.y)
_move = false;
}
}
示例6: drawPlayer
void drawPlayer()
{
int x, y, r;
//glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
//get players position
x = (int)mainPlayer.getPosition().x;
y = (int)mainPlayer.getPosition().y;
r = (int)mainPlayer.getRadius();
//start drawing the player
glPushMatrix();
glEnable(GL_TEXTURE_2D);
glMatrixMode(GL_MODELVIEW);
//for rotation
if (wasclicked_RB == true || follow == true)
{
float PI = (float)3.14159265;
float dy, dx;
if (follow == true)
{
dy = (enemy[chase].getPosition().y - y);
dx = (enemy[chase].getPosition().x - x);
}
else
{
dy = (mouse.y - y);
dx = (mouse.x - x);
}
//find angle of rotation, if dx is 0 then you cant divide by 0 so set angle to 180
if (dx == 0)
{}
else
angle = atan(dy / dx) * 180/PI + 90;
//if dx is negative then we have to compensate the angle to go left
if (dx < 0)
angle += 180;
}
//draw the player texture
glBindTexture(GL_TEXTURE_2D, mainPlayer.getSprites()[player_animation_select]);
//translate the player to the origin
glTranslatef((GLfloat)x,(GLfloat)y, (GLfloat)0.0f);
//rotate player
glRotatef(angle,0,0,1);
//draw player
glBegin(GL_QUADS);
glTexCoord2f(0, 0);
glVertex2f((GLfloat)(-r), (GLfloat)(r));
glTexCoord2f(1, 0);
glVertex2f((GLfloat)(r), (GLfloat)(r));
glTexCoord2f(1, 1);
glVertex2f((GLfloat)(r), (GLfloat)(-r));
glTexCoord2f(0, 1);
glVertex2f((GLfloat)(-r), (GLfloat)(-r));
glEnd();
glDisable(GL_TEXTURE_2D);
//reset the screen so only player rotated
glPopMatrix();
//flush the buffer
glFlush();
}
示例7: playerMovement
void playerMovement ()
{
//rotate player
//needs to be added in, will come soon
//move in direction of
int col_flag;
Point P1, P2;
if (_move == true)
{
//move until player hits mouse click
P1 = mainPlayer.getPosition();
mainPlayer.move(mouse.x, mouse.y);
P2 = mainPlayer.getPosition();
if (checkCollisions() == true)
{
//left
if ((mainPlayer.getPosition().x - mainPlayer.getRadius()) <= enemy[collide_with].getPosition().x + enemy[collide_with].getRadius() && (mainPlayer.getPosition().x - mainPlayer.getRadius()) + mainPlayer.getSpeed() + 1> enemy[collide_with].getPosition().x + enemy[collide_with].getRadius())
col_flag = 1;
//right
else if ((mainPlayer.getPosition().x + mainPlayer.getRadius()) >= enemy[collide_with].getPosition().x - enemy[collide_with].getRadius() && (mainPlayer.getPosition().x + mainPlayer.getRadius()) - mainPlayer.getSpeed() - 1< enemy[collide_with].getPosition().x - enemy[collide_with].getRadius())
col_flag = 2;
//none
else
col_flag = 3;
//top
if ((mainPlayer.getPosition().y - mainPlayer.getRadius()) <= enemy[collide_with].getPosition().y + enemy[collide_with].getRadius() && (mainPlayer.getPosition().y - mainPlayer.getRadius()) + mainPlayer.getSpeed() + 1 > enemy[collide_with].getPosition().y + enemy[collide_with].getRadius())
col_flag += 10;
//bottom
else if ((mainPlayer.getPosition().y + mainPlayer.getRadius()) >= enemy[collide_with].getPosition().y - enemy[collide_with].getRadius() && (mainPlayer.getPosition().y + mainPlayer.getRadius()) - mainPlayer.getSpeed() - 1 < enemy[collide_with].getPosition().y - enemy[collide_with].getRadius())
col_flag += 20;
//none
else
col_flag += 30;
mainPlayer.setPosition(P1.x, P1.y);
switch (col_flag)
{
//left top
case 11:
P1.x = enemy[collide_with].getPosition().x + enemy[collide_with].getRadius() + mainPlayer.getRadius();
P1.y = enemy[collide_with].getPosition().y + enemy[collide_with].getRadius() + mainPlayer.getRadius();
mainPlayer.move(P1.x,P1.y);
break;
//left bottom
case 21:
P1.x = enemy[collide_with].getPosition().x + enemy[collide_with].getRadius() + mainPlayer.getRadius();
P1.y = enemy[collide_with].getPosition().y - enemy[collide_with].getRadius() - mainPlayer.getRadius();
mainPlayer.move(P1.x,P1.y);
break;
//left none
case 31:
P1.x = enemy[collide_with].getPosition().x + enemy[collide_with].getRadius() + mainPlayer.getRadius();
P1.y = mouse.y;
mainPlayer.move(P1.x,P1.y);
break;
//right top
case 12:
P1.x = enemy[collide_with].getPosition().x - enemy[collide_with].getRadius() - mainPlayer.getRadius();
P1.y = enemy[collide_with].getPosition().y + enemy[collide_with].getRadius() + mainPlayer.getRadius();
mainPlayer.move(P1.x,P1.y);
break;
//right bottom
case 22:
P1.x = enemy[collide_with].getPosition().x - enemy[collide_with].getRadius() - mainPlayer.getRadius();
P1.y = enemy[collide_with].getPosition().y - enemy[collide_with].getRadius() - mainPlayer.getRadius();
mainPlayer.move(P1.x,P1.y);
break;
//right none
case 32:
P1.x = enemy[collide_with].getPosition().x - enemy[collide_with].getRadius() - mainPlayer.getRadius();
P1.y = mouse.y;
mainPlayer.move(P1.x,P1.y);
break;
//none top
case 13:
P1.x = mouse.x;
P1.y = enemy[collide_with].getPosition().y + enemy[collide_with].getRadius() + mainPlayer.getRadius();
mainPlayer.move(P1.x,P1.y);
break;
//none bottom
case 23:
P1.x = mouse.x;
P1.y = enemy[collide_with].getPosition().y - enemy[collide_with].getRadius() - mainPlayer.getRadius();
mainPlayer.move(P1.x,P1.y);
break;
//none none
case 33:
mainPlayer.move(mouse.x,mouse.y);
break;
default:
mainPlayer.move(mouse.x,mouse.y);
break;
}
}
if (mainPlayer.getPosition().x == mouse.x && mainPlayer.getPosition().y == mouse.y)
_move = false;
//.........这里部分代码省略.........