![]() |
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:
|
Re: Was wäre die Beste Lösung für ein Inventar
Ja, das Problem is das: Liegt das Sprite vor dem anderen, ist es verschiebbar, liegt es hinterhalb, dann nicht
(Fahr morgen nach Rom, also wird sich der Thread für kurze Zeit "einfrieren") |
Re: Was wäre die Beste Lösung für ein Inventar
Hab das Inventar nun so, wie ich es haben will. Eins bereitet mir dennoch "Schwierigkeiten":
Münzen sollte man doch auf einem Feld stappeln lassen. Ich hab das nun umständlich gemacht, nämlich so: (Nur ein Beispiel) TMünze hat einen Integer und zwar Anzahl. Anzahl gibt an, wieviele Münzen das TMünze besitz. zB: Münze[i].Anzahl:=3 -> dann hat Münze[i] 3 Münzen. Ich kann nun Münzen stappeln. Wenn man 1 Münze auf eine andere zieht, dann gibt es nur noch "1 Münze" mit Anzahl 2. Die 2 bekommt die Koordinaten, wo man sowieso nicht hinkommt. Die 2 Münze ist sozusagen nutzlos und kostet nur rechenzeit. Ich hoffe, dass das jemand verstanden hat. Wenn nicht, dann schreib ich nochmal her, was ich will: Es gibt 2 Münzen. Man soll diese Münzen zu einer machen können, sodass sie miteinander verschmelzen, aber auch wieder auseinanderzubringen sind. Man kann bis zu 100 Münzen verschmelzen, aber wieder auseinanderbringen. So. Das wäre eigentlich mein einziges Problem, bevor das Grundgerüst des Spiels fertig ist. Was dann noch kommt sind nur Spielereien, wie zB. mehr Gegenstände oder Gegegner etc. |
Re: Was wäre die Beste Lösung für ein Inventar
Hab mal so eine kleine Frage zum 'freien' Rollenspiel an sich. Du hast gesagt, einen Stuhl soll man nicht als Waffe verwenden können. Aber in jedem Bud Spencer und Terence Hill-Film seh ich wie einer mit nem Stuhl verdroschen wird. Und auch in Pen'n'Paper-Rollenspielen finde ich den Stuhl oder das Stuhlbein als improvisierte Waffe :)
Ansonsten finde ich das Projekt sehr interessant, ich melde mich schon mal zum Testen an *g* |
Re: Was wäre die Beste Lösung für ein Inventar
Was du gesagt hast, stimmt natürlich schon, aber.. (Trommelwirbel)
...aber kann man auch in Rollenspielen, die es auf dem Markt gibt, auch einen Sessel als Waffe nehmen. Es wäre natürlich nicht schwer, den Sessel nun als Waffe machen, aber da es bei mir auch skills gibt, müsste ich für jeden Gegenstand einen Extraskill machen. Dann würde es bei mir Sword, Axe, Club, Fists, Distance, Sessel, Tisch, Vase, Brett, Flasche..... skills geben. PS: Aja, freu mich, dass es schon einen Tester gibt. Leider gibt es da ein Problem. Wann das Spiel fertig ist, weiss ich noch nicht. Hab zwar nun viel Zeit (ENDLICH SOMMERFERIEN), aber es kommen sicher viele Probleme auf mich zu. Bin grad dabei, das Problem mit dem Geld stappeln zu lösen und habe es auch schon fast. Aber ich kann versichern, dass ich das Spiel vor Ende der Ferien fertig habe, da ja noch Level, Story und Quests fehlen, was eigentlich nur Spielerei ist, aber am meisten Zeit in Anspruch nimmt. PPS: Wenn es fertig ist, dann geb ich das Spiel natürlich sofort zum Downloaden frei, um anzugeben, aber auch Fehler auszubessern. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:40 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