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
C-/C++-Quelltext |
|
1 |
int xPosArray = MausPosX / 50; |
C-/C++-Quelltext |
|
1 |
int yPosArray = MausPosY / 50; |
Am besten machst du dir, wie du schon gesagt hast ein 2D Array, welches mit Strukturen gefüllt sein könnte. In deiner Struktur könnte z.B. stehen, welchem Spieler (bzw. KI) das Feld gehört (falls es besetzt ist) und natürlich, von welchem Schifftyp, bzw. ob es Wasser ist etc, was du halt brauchst. Wenn dann die Maustaste gedrückt wurde, dann kannst du ganz einfach berechnen, welchem feld das entspricht.
Bsp: ein feld ist 50x50pixel groß. Wenn dann die maus an position 356|567 gedrückt wurde, dann rechnest du einfachbzw.
C-/C++-Quelltext
1 int xPosArray = MausPosX / 50;In diesem Fall also 356/50 = 7 und 567/50 = 11. Also wurde das Feld [7][11] im Array gedrückt.
C-/C++-Quelltext
1 int yPosArray = MausPosY / 50;
Beim Schiffe setzen könntest du es so machen: Du fragst die StartPosition des Schiffes ab (also praktisch einfach Anfang/Ende des Schiffes) und ob es vertikal oder horizontal angelegt werden soll. Dann setzt du eben je nach Schiff die entsprechenden Array Felder auf den entsprechenden Wert.
Bsp: StarPos = 3|4; Anordnung: horizontal; Schiff belegt 3 Felder; Dann setzt du einfach die ArrayFelder [3][4] + [4][4] + [5][4] auf den entsprechenden Wert.
Allerdings solltest du dabei immer erst prüfen ob es an dieser Stelle überhaupt möglich ist, ein Schiff zu platzieren.
Bsp: Dein Spielfeld ist nur 10 Felder breit, aber der Spieler will sein Schiff horizontal an Position 8/irgendwas setzen. Wenn das Schiff jetzt aber zu breit ist, würdest du die Array Grenzen nicht einhalten und darüber hinaus schreiben -> Absturz
Wenn ein Spieler bzw. die KI einen Schuss abgegeben hat, prüfst du einfach an der entsprechenden Stelle, ob denn dort ein Schiff des Gegners ist oder nicht.
So, ich hoffe du kannst damit was anfangen
PS: Was benutzt du eigentlich für die Grafikausgabe?
lg chaia
Naja, wir sollten aber können auch alles andere benutzen. Nur hilft uns dann der Lehrer nicht bei anderem ZeugSollt ihr Qt benutzen oder könnt ihr euch das aussuchen?
Werbeanzeige