Advertisement
Guest User

speedboid.cpp

a guest
Dec 8th, 2019
121
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.41 KB | None | 0 0
  1. #include "speedboid.h"
  2. #include "ofAuDApp.h"
  3.  
  4. /**
  5.  * Standartkonstruktor
  6.  *
  7.  * @brief SpeedBoid::SpeedBoid
  8.  */
  9. SpeedBoid::SpeedBoid() {
  10.     posX = 0;
  11.     posY = 0;
  12.     vx = 0;
  13.     vy = 0;
  14.     size = 20;
  15. }
  16.  
  17. /**
  18.  * Zeichnet den Boid
  19.  * @brief SpeedBoid::draw
  20.  */
  21. void SpeedBoid::draw() {
  22.     ofSetColor(255,255,255);
  23.  
  24.     if ( (vx == 0) && (vy == 0 ) ) {
  25.         ofDrawCircle(posX,posY,size/4);
  26.  
  27.     } else {
  28.         float dist = sqrt(vx*vx + vy*vy);
  29.  
  30.         float dirX = vx/dist;
  31.         float dirY = vy/dist;
  32.  
  33.         float aX = posX + size*dirX;
  34.         float aY = posY + size*dirY;
  35.  
  36.         float bX = posX - size/4*dirY;
  37.         float bY = posY + size/4*dirX;
  38.  
  39.         float cX = posX + size/4*dirY;
  40.         float cY = posY - size/4*dirX;
  41.  
  42.  
  43.         ofDrawTriangle(aX,aY,bX,bY,cX,cY);
  44.     }
  45. }
  46.  
  47. /**
  48.  * Bewegt den Boid entsprechend seiner Geschwindigkeit
  49.  * @brief SpeedBoid::move
  50.  */
  51. void SpeedBoid::move() {
  52.     posX = posX + vx;
  53.     posY = posY + vy;
  54. }
  55.  
  56. //========================================================================
  57. //=====================   Getter und Setter   ============================
  58. //========================================================================
  59.  
  60. /**
  61.  * Setzt den Boid auf eine bestimmte Position
  62.  * @brief SpeedBoid::setPosition
  63.  * @param x x-Koordinate
  64.  * @param y y-Koordinate
  65.  */
  66. void SpeedBoid::setPosition(int x, int y) {
  67.     posX = x;
  68.     posY = y;
  69. }
  70.  
  71. /**
  72.  * Setzt die Geschwindigkeit des Boids
  73.  * @brief SpeedBoid::setSpeed
  74.  * @param x x-Anteil der Geschwindigkeit
  75.  * @param y y-Anteil der Geschwindigkeit
  76.  */
  77. void SpeedBoid::setSpeed(int x, int y) {
  78.     vx = x;
  79.     vy = y;
  80. }
  81.  
  82. int SpeedBoid::getX() {
  83.     return posX;
  84. }
  85.  
  86.  
  87. int SpeedBoid::getY() {
  88.     return posY;
  89. }
  90.  
  91. int SpeedBoid::getSpeedX() {
  92.     return vx;
  93. }
  94.  
  95. int SpeedBoid::getSpeedY() {
  96.     return vy;
  97. }
  98.  
  99. ofVec2f SpeedBoid::getVelocityVec() const
  100. {
  101.     ofVec2f hVelocityVec;
  102.     hVelocityVec.set(vx,vy);
  103.     return hVelocityVec;
  104. }
  105.  
  106. void SpeedBoid::setVelocityVec(const ofVec2f &velocity)
  107. {
  108.     velocityVec = velocity;
  109. }
  110.  
  111. ofVec2f SpeedBoid::getPositionVec() const
  112. {
  113.     ofVec2f hPositionVec;
  114.     hPositionVec.set(posX,posY);
  115.     return hPositionVec;
  116. }
  117.  
  118. void SpeedBoid::setPositionVec(const ofVec2f &position)
  119. {
  120.     positionVec = position;
  121. }
  122.  
  123. int SpeedBoid::getId() const
  124. {
  125.     return id;
  126. }
  127.  
  128. void SpeedBoid::setId(int pId)
  129. {
  130.     id = pId;
  131. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement