Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

Abbadon

Frischling

  • »Abbadon« ist der Autor dieses Themas

Beiträge: 12

Wohnort: Völs (bei Innsbruck)

Beruf: -- Hobby - Programmierer --

  • Private Nachricht senden

1

22.12.2004, 22:23

Konsolenanwendung (Bewegung)

Ich habe folgendes Problem: Dies hier ist eine Funktion, mit der man mit der LinkspfeilTaste die 2D-Koordinatenposition des Cursors nach links wandern lassen kann.

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
if(GetAsyncKeyState(VK_LEFT))
{

if(SpielerPosition[0]<3)
continue;

gotoxy(SpielerPosition[0],SpielerPosition[1]);
cout << char(SF[SpielerPosition[0]] [SpielerPosition[1]]);
SpielerPosition[0]--;
gotoxy(SpielerPosition[0],SpielerPosition[1]);
cout << char(002);
Sleep(100);
}


Soweit, sogut.. Ich möchte ganz am linken Ende des Bildschirms eine Wand einbauen, bei dem der Cursor gestoppt wird (nicht mehr weiter nach links kann).
Das Spielfeld habe ich mit einem Doppelarray deklariert. (sp[x][x] Alles klappt.. Doch ich möchte nun einen rechteckigen Bereich im Spielfeld deklarieren, der für den Cursor ebenfalls gesperrt ist.

Muss ich dazu wieder extra jede Wand einzeln deklarieren oder funktioniert es irgendwie, wenn ich den gesamten Bereich unter einmal ausschließe?

Für jede Hilfe wäre ich sehr dankbar...
Alex[/cpp]

Nox

Supermoderator

Beiträge: 5 272

Beruf: Student

  • Private Nachricht senden

2

23.12.2004, 11:43

Die If-ANweisunge sähe so aus:

if(PosX>FeldX && PosX< (FeldX+FeldWidth))
if(PosY>FeldY && PosY< (FeldY+FeldHeigth))

3

23.12.2004, 15:45

Könnte man so machen....allerdings denke ich mal das ein Level doch beliebig im Aufbau sein sollte. Derartige "Spezial-Objekte" mit speziellen Algorithmen für die Kollision sind daher nicht so gut. Es ist daher einfacher und schneller wenn man die Basisfunktionalität nimmt.

Sprich, wenn man ein Feld nach links geht, dann muss geprüft werden ob das Linke Feld begehbar ist.
So sind dann alle Formen drin und man muss nicht mit einer If-Anweisung prüfen um welches Objekt es sich handelt um dann die passenden Algorithmen auszuführen.
Wichtig! Ich übernehme keinerlei Verantwortung für eventl. Datenverlust oder Schäden am Rechner ;D

Abbadon

Frischling

  • »Abbadon« ist der Autor dieses Themas

Beiträge: 12

Wohnort: Völs (bei Innsbruck)

Beruf: -- Hobby - Programmierer --

  • Private Nachricht senden

4

23.12.2004, 23:06

Danke euch!
Geh das mal testen... bin erst ein amateur-programmierer, aber fleißig am lernen... kann noch eine weile dauern, bis es klappt, weil ich derzeit voll und ganz in Heiko's Buch vertieft bin..
Cya
Alex

Werbeanzeige