Ich hatte das Problem schon in vielen Jump & Run-Engines, dass ich für die definierung des Sprites des Player-Objektes immer viel code aufwenden musste.
Ich habe das Proble dann soweit eingedämmt, dass ich dafür 3 Variablen benutzt habe, in denen Strings gespeichert werden.
leftright (wird entweder l für links oder r für rechts zugewiesen)
airground (wird entweder a für air - also: in der Luft - oder g für ground - also: auf dem Boden - zugewiesen)
standwalk (wird entweder s für stand oder w für walk - also: gehend - zugewiesen)
Der darauffolgende Code zur Berechnung des Sprites fiel (für meinen Geschmack) etwas zu umständlich aus.
Alles anzeigen
Und ich hatte mir überlegt, ob ich die Strings nicht einfach direkt einfügen könnte.
Daraufhin habe ich meine Sprites umbenannt in:
spr_chara_lsa
spr_chara_lsg
spr_chara_lwa
spr_chara_lwg
spr_chara_rsa
spr_chara_rsg
spr_chara_rwa
spr_chara_rwg
und folgenden Code verwendet:
Und dieser Code funktioniert nicht.
Anstatt der Sprites wird ein schwarzer Kreis angezeigt (und ich kann versichern, dass sich unter den Sprites kein schwarzer Kreis befindet).
Ich habe das Proble dann soweit eingedämmt, dass ich dafür 3 Variablen benutzt habe, in denen Strings gespeichert werden.
leftright (wird entweder l für links oder r für rechts zugewiesen)
airground (wird entweder a für air - also: in der Luft - oder g für ground - also: auf dem Boden - zugewiesen)
standwalk (wird entweder s für stand oder w für walk - also: gehend - zugewiesen)
Der darauffolgende Code zur Berechnung des Sprites fiel (für meinen Geschmack) etwas zu umständlich aus.
GML-Quellcode
- if airfloor = "a" // Wenn sich Chara in der Luft befindet
- {
- if leftright = "l"
- sprite_index = spr_chara_sprung_l // springt nach links
- if leftright = "r"
- sprite_index = spr_chara_sprung_r // springt nach rechts
- }
- if airfloor = "f" // wenn sich Chara am Boden befindet
- {
- if standwalk = "s" // wenn Chara steht
- {
- if leftright = "l"
- sprite_index = spr_chara_stand_l // guckt nach links
- if leftright = "r"
- sprite_index = spr_chara_stand_r // guckt nach rechts
- }
- if standwalk = "w" // wenn Chara läuft
- {
- if leftright = "l"
- sprite_index = spr_chara_walk_l // läuft nach links
- if leftright = "r"
- sprite_index = spr_chara_walk_r // läuft nach rechts
- }
- }
Daraufhin habe ich meine Sprites umbenannt in:
spr_chara_lsa
spr_chara_lsg
spr_chara_lwa
spr_chara_lwg
spr_chara_rsa
spr_chara_rsg
spr_chara_rwa
spr_chara_rwg
und folgenden Code verwendet:
Und dieser Code funktioniert nicht.
Anstatt der Sprites wird ein schwarzer Kreis angezeigt (und ich kann versichern, dass sich unter den Sprites kein schwarzer Kreis befindet).
Hier werden sie geholfen:
[Regeln] [GML] [Hilfe] [Suche] [Posten] [Duden.de]
[Wenn das alles nicht mehr hilft] [Dunning-Kruger]
"Die Vernunft sollte Autorität definieren; nicht umgekehrt!"
"Selber denken regt das Gehirn an." - Niffel f.k.a. Kilik
[Regeln] [GML] [Hilfe] [Suche] [Posten] [Duden.de]
[Wenn das alles nicht mehr hilft] [Dunning-Kruger]
"Die Vernunft sollte Autorität definieren; nicht umgekehrt!"
"Selber denken regt das Gehirn an." - Niffel f.k.a. Kilik