Changeset 0693e25 in network-game for common/Game.cpp


Ignore:
Timestamp:
Sep 28, 2013, 2:11:19 AM (11 years ago)
Author:
dportnoy <dmp1488@…>
Branches:
master
Children:
6319311
Parents:
3ef8cf4
Message:

The client draws the map and players in individual games

File:
1 edited

Legend:

Unmodified
Added
Removed
  • common/Game.cpp

    r3ef8cf4 r0693e25  
    11#include "Game.h"
     2
     3#include <allegro5/allegro_primitives.h>
     4
     5#include "Common.h"
    26
    37using namespace std;
     
    7478   this->blueScore = score;
    7579}
     80
     81void Game::drawPlayers(ALLEGRO_FONT* font, unsigned int curPlayerId) {
     82   map<unsigned int, Player*>::iterator it;
     83
     84   Player* p;
     85   POSITION pos;
     86   ALLEGRO_COLOR color;
     87
     88   for(it = players.begin(); it != players.end(); it++)
     89   {
     90      p = it->second;
     91
     92      if (p->isDead)
     93         continue;
     94
     95      pos = mapToScreen(p->pos.toInt());
     96
     97      if (p->id == curPlayerId)
     98         al_draw_filled_circle(pos.x, pos.y, 14, al_map_rgb(0, 0, 0));
     99     
     100      if (p->team == 0)
     101         color = al_map_rgb(0, 0, 255);
     102      else if (p->team == 1)
     103         color = al_map_rgb(255, 0, 0);
     104     
     105      al_draw_filled_circle(pos.x, pos.y, 12, color);
     106
     107      // draw player class
     108      int fontHeight = al_get_font_line_height(font);
     109
     110      string strClass;
     111      switch (p->playerClass) {
     112      case Player::CLASS_WARRIOR:
     113         strClass = "W";
     114         break;
     115      case Player::CLASS_RANGER:
     116         strClass = "R";
     117         break;
     118      case Player::CLASS_NONE:
     119         strClass = "";
     120         break;
     121      default:
     122         strClass = "";
     123         break;
     124      }
     125      al_draw_text(font, al_map_rgb(0, 0, 0), pos.x, pos.y-fontHeight/2, ALLEGRO_ALIGN_CENTRE, strClass.c_str());
     126
     127      // draw player health
     128      al_draw_filled_rectangle(pos.x-12, pos.y-24, pos.x+12, pos.y-16, al_map_rgb(0, 0, 0));
     129      if (p->maxHealth != 0)
     130         al_draw_filled_rectangle(pos.x-11, pos.y-23, pos.x-11+(22*p->health)/p->maxHealth, pos.y-17, al_map_rgb(255, 0, 0));
     131
     132      if (p->hasBlueFlag)
     133         al_draw_filled_rectangle(pos.x+4, pos.y-18, pos.x+18, pos.y-4, al_map_rgb(0, 0, 255));
     134      else if (p->hasRedFlag)
     135         al_draw_filled_rectangle(pos.x+4, pos.y-18, pos.x+18, pos.y-4, al_map_rgb(255, 0, 0));
     136   }
     137}
Note: See TracChangeset for help on using the changeset viewer.