Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: mbed
Diff: GraphicEngine/GraphicEngine.cpp
- Revision:
- 19:6d9721ffc078
- Parent:
- 18:6be4c3c94a3d
- Child:
- 22:17ea297c19b5
--- a/GraphicEngine/GraphicEngine.cpp Thu May 14 03:53:16 2020 +0000
+++ b/GraphicEngine/GraphicEngine.cpp Thu May 14 05:52:50 2020 +0000
@@ -37,6 +37,31 @@
lcd.drawRect(chick->x, chick->y, chick->width, chick->width, FILL_BLACK);
}
+void GraphicEngine::createSafetyLanes(const std::vector<Safety>& safety_lane)
+{
+ Safety temp;
+ for(unsigned int i = 0; i < safety_lane.size(); i++){
+ temp.x = safety_lane[i].x;
+ temp.row = safety_lane[i].row;
+ temp.c = safety_lane[i].c;
+
+ drawIndividualSafety(temp);
+ }
+}
+
+void GraphicEngine::drawIndividualSafety(&Safety lane_obj)
+{
+ switch(lane_obj.c)
+ {
+ case 'K':
+ lcd.drawSprite(lane_obj.x, 48 - 4*lane_obj.row, 4, 4, (int *)safety_lanes_one);
+ break;
+ case 'K':
+ lcd.drawSprite(lane_obj.x, 48 - 4*lane_obj.row, 4, 4, (int *)safety_lanes_two);
+ break;
+ }
+}
+
void GraphicEngine::drawFirstSafetyBackground(int x, int row)
{
lcd.drawSprite(x, 48 - 4*row, 4, 4, (int *)safety_lanes_one);
@@ -106,22 +131,33 @@
}
}
-// x is the offset in the for loop, y is the row number
-void GraphicEngine::displayFirstWater(Water &waterobj)
+void GraphicEngine::drawWater(std::vector<Water> &water_lane)
{
- lcd.drawSprite(waterobj.x,48 - 4*waterobj.y, 4, 4, (int *)first_water);
+ Water temp;
+ for(unsigned int i = 0; i < water_lane.size(); i++)
+ {
+ temp.x = water_lane[i].x;
+ temp.row = water_lane[i].row;
+ temp.char = water_lane[i].c;
+
+ drawIndividualWater(&temp);
+ }
}
-// x is the offset in the for loop, y is the row number
-void GraphicEngine::displaySecondWater(Water &waterobj)
+void GraphicEngine::showIndividualWater(Water &temp)
{
- lcd.drawSprite(waterobj.x,48 - 4*waterobj.y, 4, 4, (int *)second_water);
-}
-
-// x is the offset in the for loop, y is the row number
-void GraphicEngine::displayThirdWater(Water &waterobj)
-{
- lcd.drawSprite(waterobj.x,48 - 4*waterobj.y, 4, 4, (int *)third_water);
+ switch(temp.c)
+ {
+ case 'F':
+ lcd.drawSprite(temp.x,48 - 4*temp.y, 4, 4, (int *)first_water);
+ break;
+ case 'S':
+ lcd.drawSprite(temp.x,48 - 4*temp.y, 4, 4, (int *)second_water);
+ break;
+ case 'T':
+ lcd.drawSprite(temp.x, 48 - 4*temp.y, 4, 4, (int *)third_water);
+ break;
+ }
}
void GraphicEngine::drawVehicleSprites(char obj, int x, int y, int rows, int cols)