Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "iGraphics.h"
- #include "gl.h"
- #include<windows.h>
- #include<iostream>
- #include<commdlg.h>
- using namespace std;
- int singleplayer=0;
- double pi=acos(-1)/180;
- double angle=90;//Car
- double v,acc=0,iv;
- double rx,ry;//Road
- double carx[5]={650,700,750,0,0},cary[5]={400,400,400,0,0};
- double indx[3],indy[3];
- double smangle=180;//speedometer
- int mycarloop=0;//for tracking
- double vx,vy;//system velocity==car velocity
- bool play1=false,play2=false;//car start & speed sound
- //first Car
- double op1x[5]={rx+450,rx+500,rx+550,0,0},op1y[5]={ry+400,ry+400,ry+400,0,0};
- double op1v,angleop1=90,l=0;
- double op1vx,op1vy,t=0;
- int newmatch=0,menu=1,carselect=0;
- int menukey[5]={1,0,0,0,0};
- int yellow=1,red=0,black=0;//Car
- int summer=1,rain=1,snow=0;
- char name[100];
- char speed[10]="0.00 KMH";
- int win=0,lose=0,enter=0,pause=0,setting=0;//enter actually denote space :( :(
- int mouse=0;
- char mo[100];
- #include"mainmenu.h"
- #include"sound.h"
- #include"opp1car.h"
- #include"mycar.h"
- #include"firsttrack.h"
- #include"theme.h"
- void iDraw(){
- iClear();
- if(menu)
- iDrawMain();
- if(pause)
- iDrawPause();
- if(singleplayer){
- iRotate(carx[1],cary[1],90-angle);
- iDrawRoad();
- iDrawEndLine();
- iDrawGallery();
- iDrawCar();
- iDrawOpponent1();
- iUnRotate();
- iDrawSpedometer();
- if(rain)iDrawRain();
- if(snow)iDrawSnow();
- // AUX_RGBImageRec *TextureImage;
- // TextureImage = auxDIBImageLoad("BMP//mycar//car1_90.bmp");
- // int i,j,k;
- // int realwidth = TextureImage->sizeX;
- // int realheight = TextureImage->sizeY;
- // int width,height;
- // int imgOriginal[600][600][3];
- // realwidth>600?width=600:width=realwidth;
- // realheight>600?height=600:height=realheight;
- // int oriX=410-width/2;
- // int oriY=310-height/2;
- // for(i=0;i<height;i++){
- // for(j=0;j<width;j++){
- // for(k=2;k>=0;k--){
- // imgOriginal[i][j][k]=TextureImage->data[3*i*realwidth+3*j+k];
- // }
- // }
- // }
- // for(int i=0;i<width;i++){
- // for(int j=0;j<height;j++){
- // iSetColor(imgOriginal[j][i][0],imgOriginal[j][i][1],imgOriginal[j][i][2]);
- // iPoint(oriX+i,oriY+j,1);
- // }
- // }
- // free(TextureImage->data);
- // free(TextureImage);
- }
- if(carselect)iCarSelect();
- if(setting)iDrawSetting();
- if(win==1)iWin();
- if(lose==1)iLose();
- iText(100,100,name);
- iText(100,200,mo);
- }
- void newmatchfunc(){
- win=0;
- lose=0;
- rx=0;
- ry=0;
- op1x[0]=rx+450;
- op1x[1]=rx+500;
- op1x[2]=rx+550;
- op1y[0]=ry+400;
- op1y[1]=ry+400;
- op1y[2]=ry+400;
- v=0;
- smangle=180;
- angle=90;
- carx[0]=650;
- carx[1]=700;
- carx[2]=750;
- cary[0]=400;
- cary[1]=400;
- cary[2]=400;
- angleop1=90;
- op1v=0;
- enter=1;
- l=0;
- mycarloop=0;
- }
- void normalrace(){
- mouse=1;
- carselect=1;
- menu=0;
- menumusic();
- v=0;
- op1v=0;
- rx=0;
- ry=0;
- }
- void iKeyboard(unsigned char key){
- if(key=='w')
- {
- }
- if(key==' '){
- if(win || lose){
- menu=1;
- menumusic();
- newmatch=0;
- singleplayer=0;
- win=0;
- lose=0;
- enter=0;
- iPauseTimer(0);
- iPauseTimer(1);
- iPauseTimer(2);
- }
- else
- enter++;
- }
- if(key==13){
- if(win || lose){
- menu=1;
- newmatch=0;
- menumusic();
- singleplayer=0;
- win=0;
- lose=0;
- enter=0;
- iPauseTimer(0);
- iPauseTimer(1);
- iPauseTimer(2);
- }
- if(carselect){
- carselect=0;
- newmatchfunc();
- singleplayer=1;
- }
- if(menu){
- if(menukey[0])normalrace();
- else if(menukey[2]){setting=1;menu=0;mouse=1;}
- }
- }
- if(newmatch==1){
- newmatchfunc();
- newmatch=0;
- win=0;
- lose=0;
- }
- if(enter==1 && singleplayer==1){
- iResumeTimer(0);
- iResumeTimer(1);
- iResumeTimer(2);
- enter++;
- }
- if(key == 27){
- if(singleplayer || pause){
- pause=!pause;
- pausemusic();
- singleplayer=!singleplayer;
- if(pause==1){
- iPauseTimer(0);
- iPauseTimer(1);
- iResumeTimer(2);
- }
- else{
- iResumeTimer(0);
- iResumeTimer(1);
- iResumeTimer(2);
- }
- }
- if(setting){
- setting=0;
- menu=1;
- }
- if(carselect){
- carselect=0;
- yellow=1;
- red=0;
- black=0;
- menu=1;
- menumusic();
- }
- }
- }
- void upkey(){
- if(singleplayer){
- if(v<25){
- if(v<5)v+=.25;
- else if(v>20)v+=0.0015;
- else v+=0.8;
- }
- }
- if(menu){
- int i;
- for(i=0;i<5;i++){
- if(menukey[i]==1){
- menukey[(i+4)%5]=1;
- menukey[i]=0;
- break;
- }
- }
- }
- }
- void downkey(){
- if(menu){
- int j;
- for(j=0;j<5;j++){
- if(menukey[j]==1){
- menukey[(j+1)%5]=1;
- menukey[j]=0;
- break;
- }
- }
- }
- if(singleplayer){
- if(v>0){
- v--;
- }
- }
- }
- void rightkey(){
- if(singleplayer){
- angle-=5;
- if(angle<-180)angle+=360;
- carx[0]=carx[1]-50*cos(pi*(90-angle));
- cary[0]=cary[1]+50*sin(pi*(90-angle));
- carx[2]=carx[1]+50*cos(pi*(90-angle));
- cary[2]=cary[1]-50*sin(pi*(90-angle));
- if(v>=15)v-=.7;
- }
- if(carselect){
- if(yellow){
- yellow=0;
- red=1;
- }
- else if(red){
- black=1;
- red=0;
- }
- else if(black){
- black=0;
- yellow=1;
- }
- }
- }
- void leftkey(){
- if(singleplayer){
- angle+=5;
- if(angle>=180)angle-=360;
- carx[0]=carx[1]-50*cos(pi*(90-angle));
- cary[0]=cary[1]+50*sin(pi*(90-angle));
- carx[2]=carx[1]+50*cos(pi*(90-angle));
- cary[2]=cary[1]-50*sin(pi*(90-angle));
- // carx[0]=carx[1]-50*cos(pi*(90+angle));
- // cary[0]=cary[1]-50*sin(pi*(90+angle));
- // carx[2]=carx[1]+50*cos(pi*(90+angle));
- // cary[2]=cary[1]+50*sin(pi*(90+angle));
- if(v>=15)v-=.7;
- }
- if(carselect){
- if(yellow){
- yellow=0;
- black=1;
- }
- else if(red){
- yellow=1;
- red=0;
- }
- else if(black){
- black=0;
- red=1;
- }
- }
- }
- void iSpecialKeyboard(unsigned char key){
- if(singleplayer){
- if(key == GLUT_KEY_UP || GLUT_UP){
- upkey();
- }
- }
- else{
- if(key == GLUT_KEY_UP){
- upkey();
- }
- }
- if(key == GLUT_KEY_DOWN ){
- downkey();
- }
- if(key == GLUT_KEY_RIGHT){
- rightkey();
- }
- if(key == GLUT_KEY_LEFT){
- leftkey();
- }
- }
- void iMouseMenu(double mx,double my){
- if(mx>520 && mx<780){
- if(my>685 && my<735){
- normalrace();
- }
- }
- if(mx>520 && mx<780){
- if(my>635 && my<685){
- mouse=1;
- }
- }
- if(mx>520 && mx<780){
- if(my>585 && my<635){
- setting=1;
- menu=0;
- mouse=1;
- }
- }
- }
- void iMouseSetting(double mx,double my){
- if(mx>520 && mx<780){
- if(my>535 && my<585){
- setting=0;
- menu=1;
- mouse=1;
- }
- }
- }
- void iMousePause(double mx,double my){
- if(mx>520 && mx<780){
- if(my>685 && my<735){
- iResumeTimer(0);
- iResumeTimer(1);
- singleplayer=1;
- pause=0;
- }
- }
- if(mx>520 && mx<780){
- if(my>635 && my<685){
- newmatchfunc();
- newmatch=1;
- carselect=1;
- enter=1;
- pause=0;
- iPauseTimer(0);
- iPauseTimer(1);
- iPauseTimer(2);
- }
- }
- if(mx>520 && mx<780){
- if(my>585 && my<635){
- menu=1;
- menumusic();
- newmatchfunc();
- pause=0;
- }
- }
- }
- void iMouse(int button,int state,int mx,int my){
- if(button ==GLUT_LEFT_BUTTON && state==GLUT_UP){
- sprintf(mo,"%d %d",mx,my);
- if(menu)iMouseMenu(mx,my);
- else if(setting)iMouseSetting(mx,my);
- else if(pause)iMousePause(mx,my);
- }
- }
- void iMouseMove(int mx,int my){
- }
- int main(){
- iSetTimer(75,velocity);
- iSetTimer(75,opp1velocity);
- iSetTimer(3000,sound);
- iPauseTimer(1);
- iPauseTimer(0);
- iPauseTimer(2);
- menumusic();
- iInitialize(1600,900,"Need For Speed - bROKEN cAR1");
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement