void Explosion::newExplosion (float pos_x,float pos_y) { this->pos_x=pos_x; this->pos_y=pos_y; int i; for (i = 0; i < NUM_PARTICLES; i++) { particles[i]->position[0] = 0.0; particles[i]->position[1] = 0.0; particles[i]->position[2] = 0.0; particles[i]->color[0] = 0.5; particles[i]->color[1] = 0.5; particles[i]->color[2] = 1.0; newSpeed (particles[i]->speed); } for (i = 0; i < NUM_DEBRIS; i++) { this->debris[i]->position[0] = 0.0; this->debris[i]->position[1] = 0.0; this->debris[i]->position[2] = 0.0; this->debris[i]->orientation[0] = 0.0; this->debris[i]->orientation[1] = 0.0; this->debris[i]->orientation[2] = 0.0; this->debris[i]->color[0] = 0.7; this->debris[i]->color[1] = 0.7; this->debris[i]->color[2] = 0.7; this->debris[i]->scale[0] = (20.0 * ((GLfloat) rand ()) / ((GLfloat) RAND_MAX)) - 1.0; this->debris[i]->scale[1] = (20.0 * ((GLfloat) rand ()) / ((GLfloat) RAND_MAX)) - 1.0; this->debris[i]->scale[2] = (20.0 * ((GLfloat) rand ()) / ((GLfloat) RAND_MAX)) - 1.0; newSpeed (this->debris[i]->speed); newSpeed (this->debris[i]->orientationSpeed); } fuel = 100; }
void generate_init_values(int number_of_stars, struct star* star_array) { time_t t; srand((unsigned) time(&t)); for(int i = 0; i < number_of_stars; ++i){ star_array[i] = makeStar(); prec angle = 360 * newRand(); prec radius = 100 * newRand(); newPos(&star_array[i], radius * cos(angle) + 350, 0.5 * radius * sin(angle) + 350); newSpeed(&star_array[i], 0.4*(star_array[i].ypos - 350), (-0.4)*(star_array[i].xpos - 350)); newMass(&star_array[i], 2*newRand() + 2); } }
static void update_position(struct star* str, prec time_unit) { prec xacc = readXForce(str) / readMass(str); prec xSpeedIncrease = xacc * time_unit; prec yacc = readYForce(str) / readMass(str); prec ySpeedIncrease = yacc * time_unit; prec newXSpeed = readXSpeed(str) + xSpeedIncrease; prec newYSpeed = readYSpeed(str) + ySpeedIncrease; newSpeed(str, newXSpeed, newYSpeed); prec xPosIncrease = readXSpeed(str) * time_unit + yacc * pow(time_unit, 2.0)/2; prec yPosIncrease = readYSpeed(str) * time_unit + yacc * pow(time_unit, 2.0)/2; prec newXPos = readXPos(str) + xPosIncrease; prec newYPos = readYPos(str) + yPosIncrease; newPos(str, newXPos, newYPos); }
void MCWorld::random() { rides.clear(); QTime midnight(0, 0, 0); //pd the rand function does not work on Windows, look on this later #ifdef Q_OS_WIN32 //bla something here #else srand(midnight.secsTo(QTime::currentTime())); for(int i = 0; i < allObjects.size(); i++) { allObjects[i]->unsetDestination(); Speed newSpeed(rand() % 600 - 300, rand() % 600 - 300, 0); allObjects[i]->setSpeed(newSpeed); } #endif }
int nextMove(char ** arr,int row,int col,char * dir) { int y,speed; int i=0,j=0; searchPosition(arr,row,col,&i,&j); arr[i][j]='-'; if(strcmp(dir,"right")==0) { if(j+2>=col) j=col-1; else j=j+2; speed =newSpeed(arr[i][j]); while(speed!=4) { arr[i][j]='-'; if(speed==0) moveLeft(&i,&j,row,col); else if(speed==1) moveRight(&i,&j,row,col); else if(speed==2) moveUp(&i,&j,row,col); else if(speed==3) moveDown(&i,&j,row,col); speed=newSpeed(arr[i][j]); } arr[i][j]='G'; return speed; } else if(strcmp(dir,"left")==0) { y=-2; if(j+y<0) j=0; else j=j+y; speed =newSpeed(arr[i][j]); while(speed!=4) { arr[i][j]='-'; if(speed==0) moveLeft(&i,&j,row,col); else if(speed==1) moveRight(&i,&j,row,col); else if(speed==2) moveUp(&i,&j,row,col); else if(speed==3) moveDown(&i,&j,row,col); arr[i][j]='-'; speed=newSpeed(arr[i][j]); } arr[i][j]='G'; return speed; } else if(strcmp(dir,"up")==0) { y=-1; if(i+y<0) i=0; else i=i+y; speed =newSpeed(arr[i][j]); while(speed!=4) { arr[i][j]='-'; if(speed==0) moveLeft(&i,&j,row,col); else if(speed==1) moveRight(&i,&j,row,col); else if(speed==2) moveUp(&i,&j,row,col); else if(speed==3) moveDown(&i,&j,row,col); arr[i][j]='-'; speed=newSpeed(arr[i][j]); } arr[i][j]='G'; return speed; } else { if(i+1>=row) i=row-1; else i=i+1; speed =newSpeed(arr[i][j]); while(speed!=4) { arr[i][j]='-'; if(speed==0) moveLeft(&i,&j,row,col); else if(speed==1) moveRight(&i,&j,row,col); else if(speed==2) moveUp(&i,&j,row,col); else if(speed==3) moveDown(&i,&j,row,col); arr[i][j]='-'; speed=newSpeed(arr[i][j]); } arr[i][j]='G'; return speed; } }