Effect of ramp and box configurable with the controls after switching on

This commit is contained in:
Angel Maldonado 2019-10-13 10:12:44 +02:00
parent ce4ae3d0ee
commit 3372cade52
5 changed files with 28 additions and 6 deletions

View file

@ -13,8 +13,8 @@ extern "C"{
#define DIG_CONTROL_1 A0 // switch player 1 to PIN and GND
#define DIG_CONTROL_2 A2 // switch player 2 to PIN and GND
#define DIG_CONTROL_1 A2 // switch player 1 to PIN and GND
#define DIG_CONTROL_2 A0 // switch player 2 to PIN and GND
#define DIG_CONTROL_3 A1 // switch player 3 to PIN and GND
#define DIG_CONTROL_4 A3 // switch player 4 to PIN and GND

View file

@ -82,7 +82,7 @@ void init_ramp( track_t* tck ) {
}
void set_ramp( track_t* tck ) {
struct cfgramp const* r = &tck->cfg.ramp;
struct cfgramp* r = &tck->cfg.ramp;
for( int i=0; i<(r->center - r->init); i++ )
tck->gmap[r->init+i] = 127-i*((float)r->high/(r->center - r->init));
@ -90,6 +90,12 @@ void set_ramp( track_t* tck ) {
for( int i=0; i<(r->end - r->center); i++ )
tck->gmap[r->center+i+1] = 127+r->high-i*((float)r->high/(r->end-r->center));
r->enabled = true;
}
bool ramp_isactive( track_t* tck ) {
return tck->cfg.ramp.enabled;
}

View file

@ -65,6 +65,8 @@ void init_ramp( track_t* tck );
void set_ramp( track_t* tck );
bool ramp_isactive( track_t* tck );
void init_car( car_t* car, controller_t* ct, uint32_t color );
void update_track( track_t* tck, car_t* car );

View file

@ -35,6 +35,7 @@ struct cfgramp {
int center;
int end;
int high;
bool enabled;
};
struct brdinfo {

View file

@ -32,14 +32,14 @@
#define EOL '\n'
#define COLOR1 track.Color(0,255,0)
#define COLOR2 track.Color(255,0,0)
#define COLOR1 track.Color(255,0,0)
#define COLOR2 track.Color(0,255,0)
#define COLOR3 track.Color(255,255,255)
#define COLOR4 track.Color(0,0,255)
enum{
MAX_CARS = 4,
MAX_CARS = 2,
};
@ -176,6 +176,16 @@ void setup() {
track.begin();
if ( digitalRead( DIG_CONTROL_1 ) == 0 ) { //push switch 1 on reset for activate physic
set_ramp( &tck );
draw_ramp( &tck );
track.show();
}
if ( digitalRead( DIG_CONTROL_2 ) == 0 ) { //push switch 2 on reset for activate box
track_configure( &tck, 240 );
}
race.cfg.startline = true;
race.cfg.nlap = 5;
race.cfg.nrepeat = 1;
@ -225,6 +235,9 @@ void loop() {
tck.ledtime = millis() + random(2000,7000);
}
if( ramp_isactive( &tck ) )
draw_ramp( &tck );
if( tck.ledcoin > 0 )
draw_coin( &tck );
else if( millis() > tck.ledtime )