Thema: Delphi Strichmännchen / Delphi

Einzelnen Beitrag anzeigen

Custom

Registriert seit: 18. Aug 2007
Ort: Mainz
203 Beiträge
 
Delphi 7 Enterprise
 
#9

Re: Strichmännchen / Delphi

  Alt 25. Feb 2009, 21:39
Hallo und willkommen joanne.
Also direkt zum Problem - da die Anatomie eines Strichmännchens ja stark der eines Menschen entspricht (ach ^^), kannst du es ja so angehen: (ich gehe einfach mal ganz unverschämt davon aus, dass du Arrays beherrschst.) Du überlegst dir als erstes mal: Was hat denn so ein Mensch? Kopf,Arme,Beine,Körper,Hände,Füße,Nase... So weit so gut - dann überlegst du was davon dein Strichmännchen benötigt; Arme,Beine,Körper und Kopf. Was sich hier ganz gut trifft ist ja, dass sich arme und beine ziemlich Ähnlich sind. Sie haben beide jeweils Schulter-/Hüft- , Ellenbogen/Knie- und Hand-/Fußgelenk. Das heißt wir haben schon mal vier gleiche.. Dinger . Jetzt überlegst du dir, wie du das ganze abspeichern kannst - und hier kommt das Array ins spiel! Du benutzt am besten ein Doppeltes Array also sowas wie:
Delphi-Quellcode:
var
  Bone: Array[1..5] of Array[1..3] of Point;
Wobei Bone für einen Arm oder ein Bein steht, das erste Array[1..5] angibt um welche der vier Gliedmaßen es sich handelt, Array[1..3] um welches Gelenk und Point, wo sich dieses Befindet. Wie dir sicher auch aufgefallen ist, sind 5 genau ein "Bone" zu viel - das ist deshalb Beabsichtigt, weil der Körper ja auch noch fehlt.

Du kannst also den einzelnen Gelenken eine Position zuteilen, indem du zum Beispiel Bone[1][3].x usw veränderst. Was du zur Hilfe noch machen kannst, ist vorher einige Konstante byte oder Integer Werte anzulegen:
Delphi-Quellcode:
const
  ArmLinks = 1;
  ArmRechts = 2;
  BeinLinks = 3;
  BeinRechts = 4;
  Koerper = 5;
Dann kannst du auch per Bone[ArmLinks][3].x usw. die Werte verändern, ohne dich in Zahlen zu verirren.
von allen Gliedmaßen (also 1 - 4) solltest du außerdem den ersten Punkt an den Körper Kleben, damit deine Arme und Beine nicht sonst wo herum fliegen also:
Delphi-Quellcode:
Bone[ArmLinks ][1] := Bone[Koerper][2];
Bone[ArmRechts ][1] := Bone[Koerper][2];
Bone[BeinLinks ][1] := Bone[Koerper][3];
Bone[BeinRechts][1] := Bone[Koerper][3];
Um deine Figur zu zeichnen, ziehst du einfach immer Linien von Bone[?][1] bis Bone[?][3] und machst bei Bone[Koerper][1] einen Kreis, der deinen Kopf darstellt.
So kannst du Deine Figur immerhin mit Manuell eingegebenen Gelenk-Position-Variablen Darstellen und wenn du das ganze noch ausführst nach bedarf auch animieren etc.

Ich hoffe das bringt dir wenigstens ein wenig anregung.

mfg. Andre
absoft website

Aktuelles Projekt:
2.6D (Spiel)
  Mit Zitat antworten Zitat