PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Auswahl von Charakteren ?



BlueScope
08.08.2003, 08:32
Morgen ! :D

Also ich habe folgendes Problem:
Ich habe versucht, ein Game ähnlich wie Schach zu erstellen. Jedoch bin ich ziehmlich früh gescheitern, nämlich bei dem Versuch, die Figuren auszuwählen.

Ich habe zuerst probiert, das über Choices zu machen, aber man hat ja höchstens vier Möglichkeiten ... wenn ich also ein Schachspiel erstellen wöllte, müsste ich eine Art Auswahl-"Baum" machen, also ...

Set 1
- Bauer 1
- Bauer 2
...

Set 2
- Turm 1
- Springer 1
...

Und so weiter ... das ist aber nicht gerade förderlich für den Spielspass, wenn man sich erst durch so ein Menügewirr wühlen muss, wie man sich vielleicht denken kann ... :rolleyes:

Dann habe ich versucht, es mit einem Cursor zu lösen. Aber sowohl als man in den Cursor-Modus gewechselt ist als auch als man in den Figuren-Modus gewechselt ist, kamen die Teleporter-Übergänge, mit denen ich mich gar nicht anfreunden kann ...


Jetzt die Frage an die Pro's unter euch: Wie könnte ich das, am besten mit einem Cursor, machen ? Ich hoffe, ihr wisst eine Lösung ...

Ynnus
08.08.2003, 09:50
yo, also mit einem Cursor machst du das einfach so:

DU fängst am besten an der oberen Linken Ecke des Schachfeldes an dir ein gedachtes Koordinatennetz zu bilden.

Das erste Kästen von oben links ist dann 1,1, das links daneben 2,1... Das unter dem 1,1 wäre dann 1,2.

Du musst den Cursor also in X und Y Koordinaten unterteilen, also benötigst du 2 Variablen.
Diese werden dann per enter password verändert.

Das ganze sollte in etwa so aussehen:

LABEL 1:
Enter Passwort (in eine beliebige Variable)
Fork Variable = 2;
Dann per 2te Fork abragen ob Cursor X = kleiner oder gleich 1 ist. ist das so, dann ist der zeiger schon ganz links und kann nicht weiter da hin, also einfach ein "goto Label 1" und fertig. Dann im "Else Case" einfach Cursor-X minus 1, schon kann sich nachher dere Cursor bewegen... nach links. Das ganze noch mit rechts, da musst du dann aber abfragen ob der Wert der Variable = 3 ist, also rechts gedrückt wurde, und dann ob die Cursor-X Position größer oder gleich dem Spielfeld ist, sodass du da dann nicht weiter gehen kannst. Also einfach wieder "goto Label 1".
Ist es aber noch nicht am Rand, dann einfach Cursor-X + 1, schon kann sich der Zeiger nach rechts bis zum Anschlag bewegen. (das ganze erst in Variablen, später musst du anhand der Positionen die Grafik für den Zeiger anzeigen lassen.)

Das ganze musst du nun noch mit der Y Postion machen, dass sich der Zeiger auch nach oben und unten bewegen kann.

Bist du damit fertig, kommt dann ein Common event dran, indem abgefragt wird, ob der Cursor X und der Cursor Y = 1 sind, dann die Grafik für den Zeiger ganz oben im Eck anzeigen lassen. Und immer so weiter, alle Möglichkeiten Abfragen lassen, es sind logischerweise so viele wie Felder auf dem Schachfeld.

Dann muss in das Event noch die Möglichkeit Enter zu drücken um die Figur auszuwählen. Dazu also in der Reihe mit den Forks = 2 und 3 noch die Abfrage ob die Variable = 5 ist, also Enter. Ist dies so, dann ein anderes Common event aufrufen welches abfragt an welcher Stelle der Cursor ist und ob diese Koordinate sich mit der einer Spielfigur deckt. Diese musst du vorher natürlich noch festlegen, das aber gehört ja nun nur ungefähr zum Auswahlmenü, deshalb erleutere ich es nicht extra.

Puh, so das ist die schwere Variante. Alternativ kannst du die Figuren auch auswählen, indem der Held unsichtbar ist und über den Felder langläuft, und per simples "below hero" und "push key" event auswählbar machst.

Bei beiden Varianten fehlt dann aber natürlich noch das Script zum bewegen der Figur, das aber musst du mal alleine probieren oder bei Problemen erneut hier fragen! ;)

Jedi Knight
08.08.2003, 19:36
Vielleicht könnte mans einfacher machen.
Dein Char ist der Cursor,wernn du mit ihm über eine figur läufst und Lerrtaste drückst, ändert sich die grafik und du steuerst die Schachfigur,nun ein Esc druck und du steuerst wieda den Cursor und das Event wird an den ausgewählten Standort verlegt.
Ich weiß ist ziemlich grob beschrieben

TheBiber
08.08.2003, 19:49
Die Version von Sunny finde ich eigentlich am optimalsten von allen, da so generell alle Cursor-Systeme funktionieren. Lediglich ein "kleines" Detail finde ich etwas unpraktisch:


Original geschrieben von Sunny
Bist du damit fertig, kommt dann ein Common event dran, indem abgefragt wird, ob der Cursor X und der Cursor Y = 1 sind, dann die Grafik für den Zeiger ganz oben im Eck anzeigen lassen. Und immer so weiter, alle Möglichkeiten Abfragen lassen, es sind logischerweise so viele wie Felder auf dem Schachfeld.

Alle Möglichkeiten abfragen zu lassen ist zu viel Aufwand. Das geht einfacher: Man multipliziert die Cursor X und die Cursor Y Variablen mit der Pixelbreite bzw. -höhe eines Schachfeldes (wenn es sich gleich um diese "RPG-Maker"-Rechtecke handelt, sind die Werte jeweils 16), dann addierst du noch zur X-Variable den Abstand vom linken bzw. zur Y-Variable den Abstand zum oberen Bildschirmrand in Pixeln dazu. Anschliessend benutzt du diese zwei Variablen, um das Picture für den Cursor anzuzeigen. Dies ist um einiges konventioneller, als mit 64 Forks hintereinander die Variablen abzufragen und danach den Cursor mit festen Werten zu setzen.

Ynnus
08.08.2003, 22:59
Ich hab garnicht vor 64 Forks zu machen, lediglich so:

beim Drücken von 2 wird geprüft, ob der Curosr X kleiner oder gleich 1 ist, dann kann er nicht weiter nach links. Beim drücken von 3 das gleiche nur mit der Maximalen Größe des Feldes.
Tja, und eben bei jeder Bewegung wird "1" zur position hinzu gezählt, entspricht aber immer einem Kästchen.

So sähe das Koordinatennetz bei 3x3 also 9 Kästchen aus. Die erste Zahl ist der X Wert, der 2te der Y Wert!



_______________
1,2 | 2,1 | 3,1|
____| ____|____|
2,1 | 2,2 | 3,2|
____|_____|____|
1,3 | 2,3 | 3,3|
____|_____|____|

BlueScope
08.08.2003, 23:29
Das mit dem Below Hero und Push Key hab ich völlig vergessen ... da gibts dann natürlich keine Teleports mehr ... :D Aber warscheinlich werde ich Sunnys Version verwenden müssen, nämlich deshalb:

Wie Sunny ja schon gesagt hat, dehlt mir das Script für die Figuren ... ich denke, wenn man es mit Forks und Varis macht (was natürlich 32 Variablen brauchen würde, jeweils zwei Pro Figur ... :( ), dürfte es funktionieren. Aber gibts nicht auch ne einfachere Version, mit dem ich das nicht alles machen müsste ? Das gäbe dann ja ein riesiges CommonEvent und ich wäre in drei Jahren noch nicht damit fertig ;)

TheBiber
09.08.2003, 00:32
Original geschrieben von BlueScope
Wie Sunny ja schon gesagt hat, dehlt mir das Script für die Figuren ... ich denke, wenn man es mit Forks und Varis macht (was natürlich 32 Variablen brauchen würde, jeweils zwei Pro Figur ... :( ), dürfte es funktionieren. Aber gibts nicht auch ne einfachere Version, mit dem ich das nicht alles machen müsste ? Das gäbe dann ja ein riesiges CommonEvent und ich wäre in drei Jahren noch nicht damit fertig ;)

Tja, so ist es nunmal, wenn man etwas selber scripten/programmieren will. ;)
Und ein Schachspiel verlangt bereits relativ viel Script/Code.

Übrigens, ich gehe davon aus, du legst es für 2 Spieler aus. Denn eine KI zu erstellen ist dann wirklich eine Extrem-Herausforderung, gerade mit dem Maker. :rolleyes:

BlueScope
09.08.2003, 00:46
Jo, klar soll es ein zweispieler-Spiel werden ! Das mit der KI hab ich schonmal probiert, das einzige, was dabei herausgekommen ist, ist, das ein Charakter permanent nach oben gelaufen ist ... :eek: Naja ...

Für 2P ist aber auch einfach, da kann man ja den gleichen Befehl verwenden. Oder einfach so, das man in jedem Zug jede Figur steuern kann, wenn man zu zweit vorm Screen sitzt wird wohl kaum einer die Figuren des Anderen umstellen :D

bloody
10.08.2003, 04:10
wie wilst du den ein 2player schachspiel amchen????:confused: :confused: :confused: