Changeset 243 for trunk/monsterz/piece.cpp
- Timestamp:
- Jan 19, 2011, 10:23:35 PM (10 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/monsterz/piece.cpp
r241 r243 49 49 */ 50 50 51 Piece::Piece(Game *game, int i, int j, int id)51 Piece::Piece(Game *game, Int2 cell, int id) 52 52 { 53 53 data = new PieceData(); … … 55 55 Ticker::Ref(game); 56 56 data->tiler = Tiler::Register(PNG_TILES, 48, 48, 1.0f); 57 data->cell = Int2(i, j);58 data->pos = Int2(i * 48, j * 48);57 data->cell = cell; 58 data->pos = cell * 48; 59 59 data->id = id; 60 60 data->state = PieceData::IDLE; … … 67 67 case PieceData::IDLE: 68 68 data->state = PieceData::BLINK; 69 data->timer = 400.0f; 69 data->timer = 400.0f; /* Duration of a blink */ 70 70 return 1; 71 71 default: … … 78 78 switch (data->state) 79 79 { 80 case PieceData::UNGRAB: 81 if ((data->cell * 48 - data->pos).sqlen() > 24 * 24) 82 return 0; 83 /* Fall through */ 80 84 case PieceData::IDLE: 81 85 case PieceData::BLINK: … … 119 123 data->timer += deltams; 120 124 Int2 trip = data->cell * 48 - data->tmp; 121 float total_time = trip.len() / 0.8f; /* Moving speed */122 float t = total_time ? data->timer / total_time : 1.0f;125 float moving_time = trip.len() / 0.8f; /* Moving speed */ 126 float t = moving_time ? data->timer / moving_time : 1.0f; 123 127 if (t >= 1.0f) 124 {125 128 t = 1.0f; 129 if (data->timer > moving_time + 200.0f) 126 130 data->state = PieceData::IDLE; 127 } 128 data->pos = data->tmp + (t * trip + Float2(0.5f)); 131 data->pos = data->tmp + (t * trip + 0.5f); 129 132 break; 130 133 } … … 154 157 break; 155 158 case PieceData::UNGRAB: 156 id = data->id + 2; 159 if ((data->cell * 48 - data->tmp).sqlen() > 24 * 24) 160 id = data->id + 2; 157 161 z = 4; 158 162 break; 159 163 } 164 160 165 data->game->GetScene()->AddTile((data->tiler << 16) | id, x, y, z, 0); 166 167 if (data->state == PieceData::GRAB) 168 data->game->GetScene()->AddTile((data->tiler << 16) | 0, x, y, z, 0); 161 169 } 162 170
Note: See TracChangeset
for help on using the changeset viewer.