1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78
|
#include <iostream>
#include <graphics.h>
#include <windows.h>
#include <conio.h>
using namespace std;
bool gameOver;
enum eDirection {STOP = 0, UP, END};
eDirection dir;
int l = 100, t = 250, r = 150, b = 300;
void setup(){
gameOver = false;
dir = STOP;
line(0, 300, 700, 300);
rectangle(l, t, r, b);
}
void draw(){
line(0, 300, 700, 300);
rectangle(l, t, r, b);
}
void imput(){
if(_kbhit()){
switch(_getch()){
case 'w':
dir = UP;
break;
case 'x':
dir = END;
break;
}
}
}
void logic(){
switch(dir){
case UP:
for(int i = 30; i < 120; i += 30){
t -= i;
b -= i;
line(0, 300, 700, 300);
rectangle(l, t, r, b);
Sleep(70);
cleardevice();
}
for(int i = 30; i < 120; i += 30){
t += i;
b += i;
line(0, 300, 700, 300);;
rectangle(l, t, r, b);
Sleep(70);
cleardevice();
}
dir = STOP;
break;
case END:
gameOver = true;
break;
}
}
int main()
{
int gd = DETECT, gm;
initgraph(&gd, &gm, "C:\\tc\\bgi");
setup();
while(!gameOver){
imput();
cout << dir << endl;
logic();
draw();
Sleep(70);
cleardevice();
}
getch();
closegraph();
return 0;
}
| |