männchen läuft einfach falsch^^
-
hallo, hab heut mit c++ angefangen udn wollte mal zum einstieg einen typen in der konsole bewegen. allerdings läuft er überall hin nur nicht dorthin wo man will. finde den fehler leider nicht:
#include <iostream> #include <windows.h> #include <conio.h> #include <stdlib.h> using namespace std; void gotoxy(int x,int y) { COORD cur={x,y}; SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),cur); } int main() { int spielerx=12; int spielery=12; char eingabe; do { system("cls"); gotoxy(spielerx,spielery); cout<<" _________"; gotoxy(spielerx,spielery+1); cout<<" |te pwnzr|"; gotoxy(spielerx,spielery+2); cout<<" |________|"; gotoxy(spielerx,spielery+3); cout<<"__|__"; gotoxy(spielerx,spielery+4); cout<<"(-.-)"; gotoxy(spielerx,spielery+5); cout<<" | | "; gotoxy(spielerx,spielery+6); cout<<"-| |-"; gotoxy(spielerx,spielery+7); cout<<".|'|."; gotoxy(spielerx,spielery+8); eingabe=getch(); switch(eingabe) { //oben case 72: if(spielery>0) {spielery=spielery-1;} else {spielery=spielery;} //unten case 80: if(spielery+8 <50) {spielery=spielery+1;} else {spielery=spielery;} //rechts case 77: if(spielerx+12 <100) {spielerx=spielerx+1;} else {spielerx=spielery;} //links case 75: if(spielerx>0) {spielery=spielerx-1;} else {spielerx=spielerx;} } } while(eingabe!=27); }mfg
-
break vergessen

bei switch muss immer ein break nach jedem case kommen, sonst macht dre einfach weiterswitch(c) { case 1: // das und das machen break; // nicht vergessen case 2: //.. break; };
-
aha!
ok.. das kannte ich eigtl schon.. peilo^^
dank dir
-
Es könnte auch helfen, wenn man nicht x und y mixt:
case 75: if(spielerx>0) {spielery=spielerx-1;} else {spielerx=spielerx;}besser ist:
case 75: if(spielerx>0) {spielerx=spielerx-1;} else {spielerx=spielerx;}