frogger game revision

Dependencies:   4DGL-uLCD-SE MMA8452 SDFileSystem mbed wave_player

Dependents:   C_Assembly

Fork of ECE2035_FroggerGame_SUM2015 by ECE 2035

main.cpp

Committer:
ece2035ta
Date:
2015-07-05
Revision:
3:3856a3dccf6d
Parent:
0:7fe3c940e4b5
Child:
4:3fb1d198e9d6

File content as of revision 3:3856a3dccf6d:

// Include header files for platform
#include "mbed.h"
#include "wave_player.h"
#include "SDFileSystem.h"
#include "Shiftbrite.h"
#include <vector>
#include "MMA8452.h" 

// Include header files for pacman project
#include "globals.h"
#include "map_public.h"
#include "robot.h"

//Platform initialization
DigitalIn left_pb(p24);  // push bottom
DigitalIn right_pb(p21); // push bottom
DigitalIn up_pb(p22);    // push bottom
DigitalIn down_pb(p23);  // push bottom
uLCD_4DGL uLCD(p9,p10,p11); // LCD (serial tx, serial rx, reset pin;)
Serial pc(USBTX,USBRX);     // used by Accelerometer
MMA8452 acc(p28, p27, 100000); // Accelerometer
DigitalOut myled(LED1);

int main()
{
    // Initialize the timer
    /// [Example of time control implementation]
    /// Here is a rough example to implement the timer control <br><br>
    int tick, pre_tick;
    srand (time(NULL));
    Timer timer;
    timer.start();
    tick = timer.read_ms();
    pre_tick = tick;

    // Initialize the buttons
    left_pb.mode(PullUp);  // The variable left_pb will be zero when the pushbutton for moving the player left is pressed
    right_pb.mode(PullUp); // The variable rightt_pb will be zero when the pushbutton for moving the player right is pressed
    up_pb.mode(PullUp);    //the variable fire_pb will be zero when the pushbutton for firing a missile is pressed
    down_pb.mode(PullUp);  //the variable fire_pb will be zero when the pushbutton for firing a missile is pressed


    /// [Example of the game control implementation]
    /// Here is the example to initialize the game <br><br>
    uLCD.cls();
    map_init();
    robot_init(0,8);
    double x_, y_, z_;
    double x=0;
    double y=8;

    /// 1. Begin the game loop
    while(1) {
        tick = timer.read_ms(); // Read current time

        /// 2. Implement the code to get user input and update the Pacman
        /// -[Hint] Implement the code to move Pacman. You could use either push-button or accelerometer. <br>

        // [Some hints for user-input detection]
        acc.readXYZGravity(&x_,&y_,&z_); //read accelerometer
        uLCD.locate(0,1);
        
        uLCD.printf("Score x%4.1f ",1); //You could remove this code if you already make the accelerometer work.
        /// -[Hint] Here is a simple way to utilize the readings of accelerometer:
        ///         If x is larger than certain value (ex:0.3), then make the Pacman move right.
        ///         If x<-0.3, then make it move left. <br>


        if((tick-pre_tick)>500) { // Time step control
            pre_tick = tick; // update the previous tick

            /// 3. Update the Pacman on the screen
            /// -[Hint] You could update the position of Pacman (draw it on the screen) here based on the user-input at step 2. <br>
            


            /// 4. Implement the code to check the end of game.

        }
    }
}