![]() |
Was wäre die Beste Lösung für ein Inventar
Bastle gerade an einem Rollenspiel mit DelphiX und da darf ein Inventar natürlich nicht fehlen 8) . Das Inventar befindet sich rechts aussen. Hier eine Bild, wie das Inventar aussieht.
![]() Was das Inventar alles zu haben hat: 1. Man soll von der Spielfläche Sachen direkt ins Inventar und natürlich auch umgekehrt schieben können. Also ein Schwert in die Hand bzw wieder ins Spielfeld. 2. Die Gegenstände sollen automatisch einrasten. Falls man einen Stuhl in die Hand schieben will, sollte das nicht gehen, da es ja keine Waffe ist. 3. Geld oder ähnliches soll man als Masse auf einer Fläche lagern können. Also nicht jedes Geldkorn einzelln sonder gleich 321 auf einem Quadrat im Rucksack. 4. Er soll folgendes erkennen: Falls ein Schwert mit Angriff 3 in der Hand ist, dann soll der Angriff um 3 Punkte steigen. Ein Schild und Rüstung bringt natürlich Verdeitigung. Ich glaub das wars. Falls noch irgendetwas wichtigs fehlt, einfach anhängen. :mrgreen: Hoffe auf viele Vorschläge bzw Lösungen :cyclops: |
Re: Was wäre die Beste Lösung für ein Inventar
mit sets/MENGEN oder dynamischen array ..
aso sorry also du überprüfst imemr die gegenstände die in eienr menge sind! so ists einfach dann kannst du ja eine boolische variable haben die du auf false setzt damit es sich frei bewegen lässt und wenn es ein quadrat betritt setzt dus auf true und es lässt sich nur bewegenwenn der cursor es schon wieder über das quadrat gezogen hat! |
Re: Was wäre die Beste Lösung für ein Inventar
Liste der Anhänge anzeigen (Anzahl: 1)
k, habs nun doch mit arrays gemacht. Is meiner Meinung nach sehr umständlich, wenns aber nicht leichter geht. k
Aja, thnx nochmal für die Antwort, Nicodius!!! :wink: Hab nun aber ein Problem. Ich schick hier mal die Datei. Samt Quellcode, da man den Fehler herauslesen muss. Ich find halt keinen Fehler. (Aja, wenn sich jemand fragt, wieso ich das TGegenstand auch mit einem array gemacht habe, dass passt schon so. Da es dann 10000te solcher Gegenstände gibt (Frage nebenbei. Wenn ich nun 10000 solcher Gegenstände habe, kostet das viel Rechenzeit, oder merkt man das gar nicht) (So bei 1 GHz)) PS: Erläuterung is natürlich beim Quellcode auch dabei |
Re: Was wäre die Beste Lösung für ein Inventar
da ich dx jetzt nicht habe +
was mir auffällt Beim onmousedown
Delphi-Quellcode:
schreibs mal so wie ich ohne forschleife und probiers dann
//for k:=0 to 1 do begin
if (X>=Gegenstand[k].X) and (X<=Gegenstand[k].X+32) and (Y>=Gegenstand[k].Y) and (Y<=Gegenstand[k].Y+32) then Gegenstand[k].hant:=true; //end; falls es das nicht ist dann schreib bei
Delphi-Quellcode:
auch nur
for i:=0 to 1 do begin
if (Sack.py[k]=Gegenstand[i].Y-Sack.Y)and(Sack.py[k]=Gegenstand[i].Y-Sack.Y) and (Sack.px[k]=Gegenstand[i].x-Sack.x)and(Sack.px[k]=Gegenstand[i].x-Sack.x) then Sack.platz[k]:=false; end;
Delphi-Quellcode:
if (Sack.py[k]=Gegenstand[i].Y-Sack.Y)and(Sack.py[k]=Gegenstand[i].Y-Sack.Y) and
(Sack.px[k]=Gegenstand[i].x-Sack.x)and(Sack.px[k]=Gegenstand[i].x-Sack.x) then Sack.platz[k]:=false; und sonst beides ;) |
Re: Was wäre die Beste Lösung für ein Inventar
Das Problem bei deiner Lösung ist, dass die beiden Teile, die du herausgenommen hast, ohne FOR-Schleife nicht funktionieren:
Delphi-Quellcode:
Gegenstände[k].... Braucht eine FOR-schleife, da es ja ein array, sonst hätte k keinen Wert und das geht natürlich nicht
for k:=0 to 1 do begin
if (X>=Gegenstand[k].X) and (X<=Gegenstand[k].X+32) and (Y>=Gegenstand[k].Y) and (Y<=Gegenstand[k].Y+32) then Gegenstand[k].hant:=true; end;
Delphi-Quellcode:
Auch hier kann Gegenstände ohne einem array nicht funktionieren.
if (Sack.py[k]=Gegenstand[i].Y-Sack.Y)and(Sack.py[k]=Gegenstand[i].Y-Sack.Y) and
(Sack.px[k]=Gegenstand[i].x-Sack.x)and(Sack.px[k]=Gegenstand[i].x-Sack.x) then Sack.platz[k]:=false; |
Re: Was wäre die Beste Lösung für ein Inventar
nein so meine ich das nicht du musst statt k dann natürlich 1 schreiben bzw 0 ... ist ja Klar
|
Re: Was wäre die Beste Lösung für ein Inventar
Aso, nein, das wäüre dann zu Umständlich. (Das is ja nur ein kleines Programm)
Hab das nun einegbaut und es funktioniert. Weiss aber nicht, warum?? |
Re: Was wäre die Beste Lösung für ein Inventar
was hast du eingebaut?
wenns mein code (ich hab nictht compilieren können da ich dx nicht hab) richtig war dann deshalb eine schleife von 0 bis 1 zählt so k = 0 K = 1 und dann ist erst aus also 2 k werte ;) |
Re: Was wäre die Beste Lösung für ein Inventar
Nein, nein. Ich hab deinen Code nicht eingebaut. Das war ja nur ein Nebenprogramm. Hab das ins Hauptprogramm eingebaut und siehe da, es funktioniert. Keine Ahnung wieso, aber es geht und das ist auch gut so. Häng trotzdem noch ein bisschen am Inventar fest. Hoffe, dass ich das bald löse. Weisst du zufällig, ob, wenn ein Sprite hinter einem anderen ist, das Sprite "inaktiv" wird, geht?
|
Re: Was wäre die Beste Lösung für ein Inventar
du musst das andere nur "einfrieren" ... das dürfte doch kein problem sein(wieder mit dner boolischen variable :mrgreen:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:55 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz