PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Itemmenü



Squashy
06.12.2004, 19:13
Howdeliho!

Also ich plane derzeit an einem SPiel rum, soll eine Art "Click and Point" Adventure werden. Allerdings habe ich derzeit ein Problem mit meinem Item-Menü. Ich möchte ein kleines Fenster erscheinen lassen in dem man über 2 Pfeile zwischen den einzelnen Items hin und her wechseln kann. Soweit ganz einfach, nun mein Problem;

Wie ordne ich die Items so an, das keine Lücken entstehen und auch nur die Items angezeigt werden, die man bereits eingesackt hat?

Ich würde es ja mit einem Array programmieren, wenn das beim Maker gehen würde.

Danke für die Hilfe schon einmal im Voraus.


Tüdelidü
Squashy

Aretures
06.12.2004, 19:20
hmm mit ner Item begrentzung würde mdas mit Schwitches gehen aber ohne ist das sehr kompli...IHMO du müsstest abfragen ob z.B. der Schwitch 2 Stelle on wenn ja abfargen on 3 Stelle on , wenn aber nicht wird das Item darauf gesetzt und der Schwitch auf on gestellt...weisst wie ichs mein^^so gehs bis 20 onder so ^^

Squashy
06.12.2004, 19:26
WIll gerade keine Begrazung wie z.B. in Vortex weil man die Items das ganze Spiel über benutzen soll

Freak
06.12.2004, 19:39
Is doch easy, mach ne Variable für jedes Item.
Dann stell n Parallel Process an, damit er dauernd überprüft wie oft du das einzelne Item besitzt(kannste ja alles in einem PP machen, für jedes Itm eine Fork) und lass es dann jeweils in die dafür vorgesehene Variable eintragen.
Und dann wenn die Variable auf dem Höchstwert is, dann lässte immer wenn die Anzahl das Limit überschritten hat eine abziehen(das kannste ja auch mit nem PP machen), und das Geld dafür gibste dem Helden halt dann wieder.
Oder wie meinste das?

D+one
06.12.2004, 20:00
Also das habe ich gerade auch gehabt, dieses Problem...
Ich fange am besten mal von vorne an:

In meinem Spiel kann man in den Laden gehen, und sich ein Handy kaufen. Natürlich habe ich ein eigenes Menü, und ich wollte es so hinkriegen, dass der Menüpunkt "Handy" mit Bild erst dann erscheint, wenn ich es gekauft habe.

Warscheinlich hast du dein Item.Menü genauso aufgebaut, deshalb pass auf:

Ich habe das Event Menü in den Allgemeinen Ereignissen. Dort habe ich diese Punkte:
-Speichern
-Sidequests
-Beenden
-Items
-Erscheint erst, wenn man's hat: Handy

Pass auf:
1. Du machst ein ganz normales Menüscript.
2. Wenn du bei "Speichern nach oben drückst, erscheint noch "Items", bei "Items nach unten, dann erscheint "Speichern"
3. Nun kannst du dich entscheiden, ob du für den Befehl, dass das Handy angezeigt werden soll, oder nicht, was du nimmst:
-Wenn er das Handy hat, rüstest du ihn damit aus, und fragst das im Menü ab
-Du nimmst einen Tab, und fragst ab, ob der an oder aus ist..
-Oder du verschwendest eine Variable, und fragst die Zahl ab, die den Punkt "Handy" aufruft.
4.
Ich nehme jetzt mal den Tab:

-Bei "Speichern" machst du ne Bedingung, dass:
Wenn der Schalter an ist, er das "Handy" aufrufen soll. Wenn er aus ist, immer noch "Beenden"

-Bei "Beenden" machst du genau das Gleiche, nur dass er wenn der Schalter an ist "Handy" aufruft, wenn er aus ist immer noch "Speichern"

Bei den Befehlen für "Handy" machst du einfach die Befehle, als wäre "Handy"
gleichzeitig "Beenden" und "Speichern". Dass heisst:

Der Schalter ist an. Du bist auf dem Punkt "Speichern" und drückst nach oben. Es erscheint "Handy". Wenn du nun wieder zurück willst, drückst du einfach nach unten, wenn du zu "Beenden" willst, nochmal nach oben.

Andersrum machst du das genau so.

So hast du nun einen Menüpunkt, der erst erscheint, wenn der Schalter an ist, sonst wird er einfach immer übersprungen.
So kannst du immer mehr Punkte einbauen, es wird nachher bloss ein bischen unübersichtlich. Eine andere Lösung fällt mir aber nicht ein...

Ich hoffe, ich konnte dir damit ein bischen weiterhelfen..

Dein D+one

EDIT: Übrigens, ich bin in Bremen geboren und komm aus dieser wunderschönen Stadt!

Squashy
06.12.2004, 23:01
SOrry, aber dien Problem löst meines Überhaupt nicht.

Freak soweit war ich auch, allerdings wie soll ich bitte überprüfen inwelcher Reihenfolge die Items angezeigt werden solle bzw. sie überhaupt erstmal in eine Reihenfolge bringen.... den hinteren Teil deines Posts versteh ich nicht.

:(

Kelven
07.12.2004, 09:07
Ich mache das immer so ...

- Zunächst habe ich eine Variable die das aktuelle Item angibt

- will ich jetzt den Nachfolger haben erhöhe ich diese Variable um 1 ( beim Vorgänger entsprechend um 1 verringern )

- dann schaue ich nach ob man dieses Item besitzt. Falls ja wird es angezeigt, falls nein wird die Variable weiter erhöht bzw. verringert

Bei der Methode muß man aufpassen wenn der Wert 0 erreicht oder über die Höchstzahl gelangt. Ausführen läßt sich das mit einen normalen Call-Event ( also kein PP oder so ). Am besten ich schreibe das mal in Pseudo-Code auf.

Variablen sind ITEM_POINTER als aktuelles Item, SUCH_RICHTUNG ( ob nach links oder rechts gesucht werden soll ) und jeweils die Variablen für die Items.



#Label1
if SUCH_RICHTUNG = 1
ITEM_POINTER + 1
else
ITEM_POINTER - 1
end if

if ITEM_POINTER = 0
ITEM_POINTER = Maximalzahl der Items dies es gibt + 1
goto Label 1
end if
if ITEM_POINTER = 1
If ITEM1 > 1 ( also wenn es da ist )
... ( einfach aus Event raus )
else
goto Label1
end if
end if
if ITEM_POINTER = 2
If ITEM2 > 1 ( also wenn es da ist )
... ( einfach aus Event raus )
else
goto Label1
end if
end if

usw. für alle Items bis ...

if ITEM_POINTER = Maximalzahl der Items die es gibt + 1
ITEM_POINTER = 0
goto Label 1
end if


Wenn du dann im Menü auf links oder rechts drückst mußt du einfach Suchrichtung = 2 bzw. 1 setzen und dieses Event oben aufrufen. Ich hoffe es wird einigermassen klar was ich meine ^^

Squashy
07.12.2004, 15:09
Ich versteh dien Prinzip nicht ganz.....

Kelven
07.12.2004, 18:32
Das Prinzip basiert darauf daß Lücken im Inventar einfach übersprungen werden. Soweit ich es verstanden habe wird bei dir ja nur ein Item zur Zeit angezeigt. Bei mir habe ich die Items zwar alle als Variablen angeordnet aber mit den Standarditems sollte es auch gehen da man die ja abfragen kann.

Deathball
07.12.2004, 18:38
Hm, also jedem deiner Gegnestände ist ein Wert zugeordnet. Gegenstand 1 hat den Wert 1, Gegenstand 2 den Wert 2, usw.
So, wenn dein Inventar jetzt immer nur 1 Gegenstand anzeigen kann und man Pfeil links oder rechts drücken muss um weiter zu kommen (und man tut dies) wird gecheckt welchen Gegenstand gerade aktiv ist. Wenn es Gegenstand 1 ist erhält die (von Kelven Item_Pointer) genannte Variable den Wert 1, bei Gegenstand 2 den Wert 2, usw. Dann erhöht bzw. verringert man den Wert(je nachdem ob man links oder rechts gedrückt hat) um 1. Somit erhält die Variable Item_Pointer den Wert 2(wenn vorher Gegenstand 1 aktiv war). Dann checkt man ob der Held diesen Gegenstand überhaupt besitzt. Falls ja wird das entsprechende Bild angezeigt, falls nicht wird die Variable wieder um 1 erhöht/verringert und wieder ausprobiert ob der Held diesen Gegenstand besitzt(Also wenn du ganz am Anfang Gegenstand 1 ausgewählt hast und nach rechts drückst, Gegenstand 2 nicht hast, aber Gegenstand 3 wird Gegenstand 3 angezeigt).

So, so viel zu Kelvens System(ich fand Kelvens Erklärungen zwar leichter, aber vielleicht verstehst du es ja jetzt was er meint)
wobei es jetzt natürlich peinlich wär wenn ich das ganze auch nicht richtig verstanden hätte ;)

Falls du ein Inventar machen willst wo mehrere Bilder gleichzeitig angezeigt werden und einfach keine "Löcher", also leere Plätze im Inventar enstehen sollen kannst du es so machen:
Jeder Platz deines Inventars hat einen Wert gespeichert in einer Variable. Platz 1 hat den Wert 1, Platz 2 den Wert 2, usw. Wenn der Held das Inventar aufruft fragst du also zuerst einmal ab welche Gegenstände der Held besitzt. Wenn der Held Gegenstand 1 hat wird der Gegenstand Platz 1 im Inventar zugeordnet(das Bild wird an der entsprechenden Stelle angezeigt) und der Die Variable in der der Inventarplatz gespeichert ist wird um 1 eröht, also auf 2 Und du fragst wieder ab ob der Held Gegenstand 2 hat, usw.
Wenn der Held einen Gegenstand mal nicht hat gehst du eben nicht im Inventarplatz weiter(Beispiel: Der Held hat Gegenstand 1 nicht, also fragst du ab ob er Gegenstand 2 besitzt. Wenn ja wird Gegenstand 2 Inventarplatz 1 zugeordnet, wenn nicht fragst du ab ob er Gegenstand 3 besitzt, usw.)

Ok, ich geb zu die Erklärung ist schwer verständlich, da sie aus'm stehgreif formuliert wurde und ich bin nicht sonderlich gut im Erklären, aber ich hoffe es hat dir geholfen. wenigstens ein bisschen ;) ! Im übrigen wäre ich dafür noch ein paar kleinere Schirftgrößen einzuführen...

cya
Deathball

Squashy
07.12.2004, 20:01
natürlich versteh ich das System ich hab nur kjeinen schiommer wie ich das mit dme Maker mache

Deathball
08.12.2004, 18:23
natürlich versteh ich das System ich hab nur kjeinen schiommer wie ich das mit dme Maker mache

Hm, fragen wir mal so: Welche Befehle die Kelven benutzt kennst du denn nicht?

cya
Deathball

PS: Benutzt du eigentlich die deutsche oder die englische Version des Makers?