test avoid bulled game

Dependencies:   C12832_lcd LCD_fonts mbed mbed-rtos

Files at this revision

API Documentation at this revision

Comitter:
th_mbed
Date:
Fri Dec 09 13:28:51 2016 +0000
Parent:
13:70e31c1d8205
Child:
16:1104089ff3cb
Commit message:
add Stage model.; But skeleton implement

Changed in this revision

Stage.cpp Show annotated file Show diff for this revision Revisions of this file
models.h Show annotated file Show diff for this revision Revisions of this file
--- a/Stage.cpp	Mon Dec 05 12:11:29 2016 +0000
+++ b/Stage.cpp	Fri Dec 09 13:28:51 2016 +0000
@@ -5,12 +5,37 @@
     this->v = v;
     length = STEP_NUM;
     for(int i = 0; i < STEP_NUM; i++){
-        stage[i].x = LCD_X - i * ONE_STEP_SIZE - 1;
-        stage[i].y = LCD_Y - 2;    
-    }    
+        stage[i].x = i * ONE_STEP_SIZE;
+        stage[i].y = LCD_Y - 2; //height is 1
+    }
 }
 
-point* Stage::getStage(point* stage){
-    stage = this->stage;
-    return stage;
+point* Stage::getStage(){
+    point result[STEP_NUM];
+    for(int i = 0; i < STEP_NUM; i++){
+        int next_x = this->stage[i].x - this->v;
+        if(next_x < 0){
+            //stage fade out
+            getCircledList(stage);
+        }else{
+            //simly slide stage
+            stage[i].x = next_x;
+        }
+    }
+    //copy stage
+    for(int i = 0;i < STEP_NUM;i++){
+        result[i] = stage[i];
+    }
+    return result;
+}
+void Stage::getCircledList(point* s){
+    point result[STEP_NUM];
+    for(int i = 0; i < STEP_NUM;i++){
+        if(i == STEP_NUM - 1){
+            s[i].x = LCD_X;
+            s[i].y = LCD_Y - 2;
+        }else{
+            s[i] = s[i+1];
+        }
+    }
 }
\ No newline at end of file
--- a/models.h	Mon Dec 05 12:11:29 2016 +0000
+++ b/models.h	Fri Dec 09 13:28:51 2016 +0000
@@ -8,9 +8,9 @@
 
 //Stage params
 #define ONE_STEP_SIZE 15
-#define STEP_NUM LCD_X/ONE_STEP_SIZE+1
-//#define STEP_NUM 10
-#define ALL_LENGTH 1000
+//#define STEP_NUM LCD_X/ONE_STEP_SIZE+1
+#define STEP_NUM 25
+#define ALL_LENGTH 1000 //stage all length
 #define STAGE_V 1
 
 //Person params
@@ -59,7 +59,8 @@
     point stage[STEP_NUM];
 public:
     Stage(int v);
-    point* getStage(point* stage);
+    point* getStage();
+    void getCircledList(point* s);
 };