AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Was wäre die Beste Lösung für ein Inventar
Thema durchsuchen
Ansicht
Themen-Optionen

Was wäre die Beste Lösung für ein Inventar

Ein Thema von ISAS · begonnen am 25. Jun 2004 · letzter Beitrag vom 9. Jul 2004
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von ISAS
ISAS

Registriert seit: 24. Sep 2003
Ort: Vietnam
205 Beiträge
 
Delphi 4 Standard
 
#1

Was wäre die Beste Lösung für ein Inventar

  Alt 25. Jun 2004, 19:58
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. Bild(Das Bild ist aus einem anderen Spiel)

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.
Hoffe auf viele Vorschläge bzw Lösungen
Signatur wurde auf Wunsch geändert. Deswegen einfach hier drauf klicken-> www.geggi.at.gg
  Mit Zitat antworten Zitat
Nicodius

Registriert seit: 25. Apr 2003
Ort: Graz
2.234 Beiträge
 
Delphi 2006 Architect
 
#2

Re: Was wäre die Beste Lösung für ein Inventar

  Alt 25. Jun 2004, 19:59
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!
Nico Müller
  Mit Zitat antworten Zitat
Benutzerbild von ISAS
ISAS

Registriert seit: 24. Sep 2003
Ort: Vietnam
205 Beiträge
 
Delphi 4 Standard
 
#3

Re: Was wäre die Beste Lösung für ein Inventar

  Alt 26. Jun 2004, 15:11
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!!!


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
Angehängte Dateien
Dateityp: zip inventar.zip (237,2 KB, 14x aufgerufen)
Signatur wurde auf Wunsch geändert. Deswegen einfach hier drauf klicken-> www.geggi.at.gg
  Mit Zitat antworten Zitat
Nicodius

Registriert seit: 25. Apr 2003
Ort: Graz
2.234 Beiträge
 
Delphi 2006 Architect
 
#4

Re: Was wäre die Beste Lösung für ein Inventar

  Alt 26. Jun 2004, 15:22
da ich dx jetzt nicht habe +


was mir auffällt

Beim onmousedown


Delphi-Quellcode:
//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;
schreibs mal so wie ich ohne forschleife und probiers dann


falls es das nicht ist dann schreib

bei

Delphi-Quellcode:
  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;
auch nur
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
Nico Müller
  Mit Zitat antworten Zitat
Benutzerbild von ISAS
ISAS

Registriert seit: 24. Sep 2003
Ort: Vietnam
205 Beiträge
 
Delphi 4 Standard
 
#5

Re: Was wäre die Beste Lösung für ein Inventar

  Alt 26. Jun 2004, 15:52
Das Problem bei deiner Lösung ist, dass die beiden Teile, die du herausgenommen hast, ohne FOR-Schleife nicht funktionieren:

Delphi-Quellcode:
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;
Gegenstände[k].... Braucht eine FOR-schleife, da es ja ein array, sonst hätte k keinen Wert und das geht natürlich nicht

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;
Auch hier kann Gegenstände ohne einem array nicht funktionieren.
Signatur wurde auf Wunsch geändert. Deswegen einfach hier drauf klicken-> www.geggi.at.gg
  Mit Zitat antworten Zitat
Nicodius

Registriert seit: 25. Apr 2003
Ort: Graz
2.234 Beiträge
 
Delphi 2006 Architect
 
#6

Re: Was wäre die Beste Lösung für ein Inventar

  Alt 26. Jun 2004, 16:42
nein so meine ich das nicht du musst statt k dann natürlich 1 schreiben bzw 0 ... ist ja Klar
Nico Müller
  Mit Zitat antworten Zitat
Benutzerbild von ISAS
ISAS

Registriert seit: 24. Sep 2003
Ort: Vietnam
205 Beiträge
 
Delphi 4 Standard
 
#7

Re: Was wäre die Beste Lösung für ein Inventar

  Alt 26. Jun 2004, 17:04
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??
Signatur wurde auf Wunsch geändert. Deswegen einfach hier drauf klicken-> www.geggi.at.gg
  Mit Zitat antworten Zitat
Nicodius

Registriert seit: 25. Apr 2003
Ort: Graz
2.234 Beiträge
 
Delphi 2006 Architect
 
#8

Re: Was wäre die Beste Lösung für ein Inventar

  Alt 26. Jun 2004, 17:27
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
Nico Müller
  Mit Zitat antworten Zitat
Benutzerbild von ISAS
ISAS

Registriert seit: 24. Sep 2003
Ort: Vietnam
205 Beiträge
 
Delphi 4 Standard
 
#9

Re: Was wäre die Beste Lösung für ein Inventar

  Alt 26. Jun 2004, 20:07
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?
Signatur wurde auf Wunsch geändert. Deswegen einfach hier drauf klicken-> www.geggi.at.gg
  Mit Zitat antworten Zitat
Nicodius

Registriert seit: 25. Apr 2003
Ort: Graz
2.234 Beiträge
 
Delphi 2006 Architect
 
#10

Re: Was wäre die Beste Lösung für ein Inventar

  Alt 26. Jun 2004, 20:20
du musst das andere nur "einfrieren" ... das dürfte doch kein problem sein(wieder mit dner boolischen variable
Nico Müller
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:27 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz