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:
- 8:a667bc5050c1
- Parent:
- 7:15543cb10a14
- Child:
- 9:5915fc800824
--- a/main.cpp Sat Feb 23 17:45:43 2019 +0000
+++ b/main.cpp Tue Feb 26 09:35:03 2019 +0000
@@ -18,60 +18,82 @@
#include "Cube.h"
#include "Gamepad.h"
+Serial pc(USBTX, USBRX); // tx, rx
+Ticker ticker;
+Gamepad gamepad;
+std::vector<Cube> cubeVector;
- Gamepad gamepad;
+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;
- Cube cube1(-30,0,100,3);
- Cube cube2(30,0,100,3);
- Cube cube3(-30,0,50,3);
- Cube cube4(30,0,50,3);
+ ticker.attach(&spawnCubes,10);
+
+ for (int i = 0; i<20;i++){
+ Cube cube(rand()%80-40,rand()%80-40,i*40,5);
+ cubeVector.push_back(cube);
+ }
-
int i = 0;
while(1) {
renderer.clear();
- //if (i == 6)
- // i = 0;
- for (int i = 0; i < 6; i++){
- renderer.drawFace(cube1.getFace(i));
+ 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;
}
- for (int i = 0; i < 6; i++){
- renderer.drawFace(cube2.getFace(i));
+ else if( gamepad.check_event(Gamepad::L_PRESSED) == true){
+ left = true;
}
- for (int i = 0; i < 6; i++){
- renderer.drawFace(cube3.getFace(i));
+ else if(gamepad.check_event(Gamepad::Y_PRESSED) == true){
+ up = true;
}
- for (int i = 0; i < 6; i++){
- renderer.drawFace(cube4.getFace(i));
+ else if( gamepad.check_event(Gamepad::A_PRESSED) == true){
+ down = true;
}
- Vector2D coord = gamepad.get_coord();
- cube1.translate(-coord.x*3,0,-coord.y*3);
- cube2.translate(-coord.x*3,0,-coord.y*3);
- cube3.translate(-coord.x*3,0,-coord.y*3);
- cube4.translate(-coord.x*3,0,-coord.y*3);
-
+ for (int c = 0; c< cubeVector.size(); c++)
+ {
+ 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);
+ }
+ else if(left == true){
+ cubeVector[c].rotateY(-0.2);
+ }
+ else if(up == true){
+ cubeVector[c].rotateX(0.2);
+ }
+ else if(down == true){
+ cubeVector[c].rotateX(-0.2);
+ }*/
+ }
- if(gamepad.check_event(Gamepad::B_PRESSED) == true){
- cube1.rotateX(0.2);
- cube2.rotateX(0.2);
- cube3.rotateX(0.2);
- cube4.rotateX(0.2);
- }
- if( gamepad.check_event(Gamepad::X_PRESSED) == true){
- cube1.rotateX(-0.2);
- cube2.rotateX(-0.2);
- cube3.rotateX(-0.2);
- cube4.rotateX(-0.2);
- }
-
renderer.refresh(); // refresh the LCD so the pixels appear
- wait_ms(1000/15); // this gives a refresh rate of 10 frames per second
+ wait_ms(1000/30); // this gives a refresh rate of 10 frames per second
//i++;
}
-}
\ No newline at end of file
+}