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: main.cpp
- Revision:
- 9:5915fc800824
- Parent:
- 8:a667bc5050c1
- Child:
- 10:07a23afd5088
--- a/main.cpp Tue Feb 26 09:35:03 2019 +0000
+++ b/main.cpp Tue Mar 19 10:27:37 2019 +0000
@@ -21,79 +21,60 @@
Serial pc(USBTX, USBRX); // tx, rx
Ticker ticker;
Gamepad gamepad;
-std::vector<Cube> cubeVector;
+std::vector<Cube> cubeVector;
+std::vector<Face> faceVector;
-void spawnCubes()
-{
- cubeVector.clear();
- for (int i = 0; i<20;i++){
- Cube cube(rand()%80-40,rand()%80-40,i*40,5);
- cubeVector.push_back(cube);
- }
-}
int main()
{
gamepad.init();
Rasturizer renderer;
- ticker.attach(&spawnCubes,10);
-
- for (int i = 0; i<20;i++){
- Cube cube(rand()%80-40,rand()%80-40,i*40,5);
+ for(int i = 0; i < 1; i++){
+ Cube cube(rand()%80-40,0,i*10,5);
cubeVector.push_back(cube);
}
-
- int i = 0;
while(1) {
renderer.clear();
Vector2D coord = gamepad.get_coord();
- bool right = false;
- bool left = false;
- bool up = false;
- bool down = false;
-
- //pc.printf("%f",
-
- if(gamepad.check_event(Gamepad::R_PRESSED) == true){
- right = true;
+ bool rotate1 = false;
+ if(gamepad.check_event(Gamepad::B_PRESSED) == true){
+ rotate1 = true;
}
- else if( gamepad.check_event(Gamepad::L_PRESSED) == true){
- left = true;
- }
- else if(gamepad.check_event(Gamepad::Y_PRESSED) == true){
- up = true;
- }
- else if( gamepad.check_event(Gamepad::A_PRESSED) == true){
- down = true;
+ bool rotate2 = false;
+ if(gamepad.check_event(Gamepad::X_PRESSED) == true){
+ rotate2 = true;
}
-
for (int c = 0; c< cubeVector.size(); c++)
{
+ if(rotate1){
+ cubeVector[c].rotateY(0.2);
+ }
+ if(rotate2){
+ cubeVector[c].rotateY(-0.2);
+ }
for (int i = 0; i < 6; i++){
renderer.drawFace(cubeVector[c].getFace(i));
- }
- cubeVector[c].translate(0,0,-3);//-coord.x*2,0,-coord.y*2);
- cubeVector[c].rotateY(coord.x/10);
- cubeVector[c].rotateX(-coord.y/10);
- /*
- if(right == true){
- cubeVector[c].rotateY(0.2);
+ faceVector.push_back(cubeVector[c].getFace(i));
+ cubeVector[c].translate(-coord.x*2,0,-coord.y*2);
}
- else if(left == true){
- cubeVector[c].rotateY(-0.2);
+ }
+ for (int f = 0; f< faceVector.size()-1; f++){
+ for (int f2 = 0; f2< faceVector.size()-1; f2++){
+ if(faceVector[f].getAvgZ() < faceVector[f+1].getAvgZ()){
+ Face temp = faceVector[f+1];
+ faceVector[f+1] = faceVector[f];
+ faceVector[f] = temp;
+ }
}
- else if(up == true){
- cubeVector[c].rotateX(0.2);
- }
- else if(down == true){
- cubeVector[c].rotateX(-0.2);
- }*/
}
+ for (int f = 0; f< faceVector.size() ; f++){
+ renderer.drawFace(faceVector[f]);
+ }
+ faceVector.clear();
renderer.refresh(); // refresh the LCD so the pixels appear
wait_ms(1000/30); // this gives a refresh rate of 10 frames per second
- //i++;
}
}