adjust settings for ctdo raum 2

This commit is contained in:
interfisch 2018-05-25 01:10:06 +02:00
parent 9033cd8b1a
commit c271982416
2 changed files with 59 additions and 44 deletions

View File

@ -54,33 +54,40 @@ void setup() {
resetHeightmap(); resetHeightmap();
//fixed heightmap //fixed heightmap
heightraw[0]=7; heightraw[0]=199;
heightraw[25]=1; heightraw[38]=198;
heightraw[89]=102; heightraw[45]=192;
heightraw[140]=159; heightraw[60]=180;
heightraw[163]=166; heightraw[78]=168;
heightraw[184]=162; heightraw[117]=167;
heightraw[229]=131; heightraw[160]=115;
heightraw[252]=95; heightraw[178]=100;
heightraw[266]=73; heightraw[194]=96;
heightraw[282]=65; heightraw[215]=105;
heightraw[295]=73; heightraw[239]=128;
heightraw[305]=82; heightraw[250]=139;
heightraw[321]=107; heightraw[266]=127;
heightraw[334]=114; heightraw[276]=122;
heightraw[343]=117; heightraw[287]=128;
heightraw[363]=107; heightraw[299]=117;
heightraw[380]=81; heightraw[358]=28;
heightraw[397]=53; heightraw[379]=5;
heightraw[409]=35; heightraw[388]=1;
heightraw[420]=21; heightraw[401]=1;
heightraw[429]=11; heightraw[409]=6;
heightraw[444]=1; heightraw[425]=20;
heightraw[489]=1; heightraw[492]=120;
heightraw[508]=10; heightraw[500]=124;
heightraw[524]=27; heightraw[531]=120;
heightraw[540]=59; heightraw[561]=122;
heightraw[599]=141; heightraw[571]=126;
heightraw[578]=136;
heightraw[588]=148;
heightraw[599]=151;
@ -213,9 +220,9 @@ void spawnWagon(){
//Wagon tmpr = Wagon(maxid++,NUMPIXELS,&strip, height, 35, 6, 0.5,0); //spawn new wagon //Wagon tmpr = Wagon(maxid++,NUMPIXELS,&strip, height, 35, 6, 0.5,0); //spawn new wagon
// pos, wagonlength, startvel, startacc, trainmass, wagoncolor // pos, wagonlength, startvel, startacc, trainmass, wagoncolor
//Wagon tmpr = Wagon(maxid++,NUMPIXELS,&strip, height, random(0, 20), random(3,20), random(0.2, 50)/10.0, 0 , random(5,100) , Wheel(random(0,256))); //spawn new wagon //Wagon tmpr = Wagon(maxid++,NUMPIXELS,&strip, height, random(0, 20), random(3,20), random(0.2, 50)/10.0, 0 , random(5,100) , Wheel(random(0,256))); //spawn new wagon
int _randomlength=random(3,40); //3-> minimum vel 10, 40 -> minium vel 30 int _randomlength=random(3,40); //Zelt: 3-> minimum vel 10, 40 -> minium vel 30
// pos, wagonlength, startvel , startacc, trainmass, wagoncolor // pos, wagonlength, startvel , startacc, trainmass, wagoncolor
Wagon tmpr = Wagon(maxid++,NUMPIXELS,&strip, height, random(0, 20), _randomlength, random(map(_randomlength,3,40,10,30), map(_randomlength,3,40, 20,60))/10.0 , 0 , 20 , Wheel((uint8_t)random(0,255))); //spawn new wagon Wagon tmpr = Wagon(maxid++,NUMPIXELS,&strip, height, random(0, 20), _randomlength, random(map(_randomlength,3,40,1,1), map(_randomlength,3,40, 13,40))/10.0 , 0 , 5 , Wheel((uint8_t)random(0,255))); //spawn new wagon
wagon_arr.push_back(tmpr); wagon_arr.push_back(tmpr);
Serial.println("Spawned Wagon"); Serial.println("Spawned Wagon");

View File

@ -1,14 +1,14 @@
#include "wagon.h" #include "wagon.h"
#define SLOWVELOCITY 0.1 #define WAGONLENGTH 3
#define WAGONLENGTH 5
#define EDGE_WALL #define EDGE_WALL
//#define EDGE_BOUNCE //#define EDGE_BOUNCE
//#define EDGE_WRAP //#define EDGE_WRAP
#define WRAPLEDPOS _numpixels //standard
//#define WRAPLEDPOS (_numpixels-5) //led index which is also led 0
uint8_t GammaE[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /*uint8_t GammaE[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2,
2, 2, 2, 3, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 2, 2, 2, 3, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5,
6, 6, 6, 7, 7, 7, 8, 8, 8, 9, 9, 9, 10, 10, 11, 11, 6, 6, 6, 7, 7, 7, 8, 8, 8, 9, 9, 9, 10, 10, 11, 11,
@ -23,7 +23,7 @@ uint8_t GammaE[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
135,137,138,140,142,143,145,146,148,150,151,153,155,157,158,160, 135,137,138,140,142,143,145,146,148,150,151,153,155,157,158,160,
162,163,165,167,169,170,172,174,176,178,179,181,183,185,187,189, 162,163,165,167,169,170,172,174,176,178,179,181,183,185,187,189,
191,193,194,196,198,200,202,204,206,208,210,212,214,216,218,220, 191,193,194,196,198,200,202,204,206,208,210,212,214,216,218,220,
222,224,227,229,231,233,235,237,239,241,244,246,248,250,252,255}; 222,224,227,229,231,233,235,237,239,241,244,246,248,250,252,255}; */
Wagon::Wagon(int id,int numpixels, Adafruit_NeoPixel *strip,uint8_t *height,float pos, float trainlength,float startvel,float startacc, float wagonmass, uint32_t wagoncolor) Wagon::Wagon(int id,int numpixels, Adafruit_NeoPixel *strip,uint8_t *height,float pos, float trainlength,float startvel,float startacc, float wagonmass, uint32_t wagoncolor)
{ {
@ -153,9 +153,10 @@ void Wagon::updatePhysics(float updatedelayms)
_lastvel=_vel; _lastvel=_vel;
if (_pos>=_numpixels){
if (_pos>=WRAPLEDPOS){
#ifdef EDGE_WRAP #ifdef EDGE_WRAP
_pos-=_numpixels; //Wrap around edges _pos-=WRAPLEDPOS; //Wrap around edges
#endif #endif
#ifdef EDGE_BOUNCE #ifdef EDGE_BOUNCE
_vel*=-1; //bounce at edges _vel*=-1; //bounce at edges
@ -166,7 +167,7 @@ void Wagon::updatePhysics(float updatedelayms)
} }
if (_pos<0){ if (_pos<0){
#ifdef EDGE_WRAP #ifdef EDGE_WRAP
_pos=_numpixels+_pos; //warp around edges _pos=WRAPLEDPOS+_pos; //warp around edges
#endif #endif
#ifdef EDGE_BOUNCE #ifdef EDGE_BOUNCE
_vel*=-1;; //bounce at edges _vel*=-1;; //bounce at edges
@ -188,14 +189,14 @@ float Wagon::getHeight(int p){
if (p<0){ if (p<0){
#ifdef EDGE_WRAP #ifdef EDGE_WRAP
p=numpixels+p; //wrap edge p=_numpixels+p; //wrap edge
#endif #endif
#ifdef EDGE_WALL #ifdef EDGE_WALL
return _height[0]+p*-100.0; //edges as wall return _height[0]+p*-100.0; //edges as wall
#endif #endif
}else if(p>=_numpixels){ }else if(p>=_numpixels){
#ifdef EDGE_WRAP #ifdef EDGE_WRAP
p=p-numpixels; //wrap edge p=p-_numpixels; //wrap edge
#endif #endif
#ifdef EDGE_WALL #ifdef EDGE_WALL
return _height[_numpixels-1]+(p-_numpixels)*100.0; //edges as wall return _height[_numpixels-1]+(p-_numpixels)*100.0; //edges as wall
@ -244,11 +245,18 @@ void Wagon::updateGraphics()
_g*=featherbrightness; _g*=featherbrightness;
_b*=featherbrightness; _b*=featherbrightness;
_r=GammaE[_r]; /*_r=GammaE[_r];
_g=GammaE[_g]; _g=GammaE[_g];
_b=GammaE[_b]; _b=GammaE[_b];*/
uint32_t _pxcolor=_strip->getPixelColor(i); //get current color of that pixel int iCorrected=i;
#ifdef EDGE_WRAP
if (i<0){
iCorrected=WRAPLEDPOS+i+1; //Wrap around edges
}
#endif
uint32_t _pxcolor=_strip->getPixelColor(iCorrected); //get current color of that pixel
uint8_t _pxr = _pxcolor >> 16; uint8_t _pxr = _pxcolor >> 16;
uint8_t _pxg = _pxcolor >> 8; uint8_t _pxg = _pxcolor >> 8;
uint8_t _pxb = _pxcolor; uint8_t _pxb = _pxcolor;
@ -264,7 +272,7 @@ void Wagon::updateGraphics()
if (_tmpb>255){ if (_tmpb>255){
_tmpb=255; _tmpb=255;
} }
_strip->setPixelColor(i,_tmpr,_tmpg,_tmpb); //draw pixel _strip->setPixelColor(iCorrected,_tmpr,_tmpg,_tmpb); //draw pixel
} }
} }