Problem with game and cout
Nov 4, 2012 at 1:43pm UTC
Hello.
I am trying to write a game where a dot represents players position and X represent a pickup. For now, the object is static and can be changed only in code. The player moves with arrow keys.
The problem is that when the player and the dot get on the same line, you cant really move the player in X cordinates as he is locked in one position. I cant understand why is that. Here is the code I have done.
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 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139
#include <cstdlib>
#include <iostream>
#include <conio.h>
#include <windows.h>
using namespace std;
int main(int argc, char *argv[])
{
int x=40,y=13;
int objectx=2,objecty=10;
bool pickup=true ;
bool running=true ;
while (running)
{
if (pickup)
{
if (objecty<y) // if pickup is above the user
{
for (int i=0;i<objecty;i++)
{
cout << endl;
}
for (int i=1;i<objectx;i++)
{
cout << " " ;
}
cout << "X" ;
for (int i=0;i<y-objecty;i++)
{
cout << endl;
}
for (int i=1;i<x;i++)
{
cout << " " ;
}
cout << "." ;
}
if (objecty>y) // if pickup is under the user
{
for (int i=0;i<y;i++)
{
cout << endl;
}
for (int i=1;i<x;i++)
{
cout << " " ;
}
cout << "." ;
for (int i=0;i<objecty-y;i++)
{
cout << endl;
}
for (int i=1;i<objectx;i++)
{
cout << " " ;
}
cout << "X" ;
}
if (objecty==y) // pickup and user are on the same line
{
for (int i=0;i<y;i++)
{
cout << endl;
}
if (objectx<x) // if object is before player
{
for (int i=1;i<objectx;i++)
{
cout << " " ;
}
cout << "X" ;
for (int i=2;i<x-objectx;i++);
{
cout << " " ;
}
cout << "." ;
}
if (objectx>x) // if object is after player
{
for (int i=1;i<x;i++)
{
cout << " " ;
}
cout << "." ;
for (int i=2;i<objectx-x;i++)
{
cout << " " ;
}
cout << "X" ;
}
if (objectx==x)
{
cout << "You won!!!\n" ;
system("pause" );
exit(0);
}
}
}
if (GetAsyncKeyState(VK_LEFT))
{
Sleep(100);
x--;
}
if (GetAsyncKeyState(VK_RIGHT))
{
Sleep(100);
x++;
}
if (GetAsyncKeyState(VK_UP))
{
Sleep(100);
y--;
}
if (GetAsyncKeyState(VK_DOWN))
{
Sleep(100);
y++;
}
if (x>80)
{
x=0;
}
if (x<0)
{
x=80;
}
if (y>26)
{
y=0;
}
if (y<0)
{
y=26;
}
system("cls" );
}
}
Thank you in advance :)
EDIT: I had ; on if statement.
Last edited on Nov 4, 2012 at 1:55pm UTC
Topic archived. No new replies allowed.