2 Fragen... (2 Probleme - keine leichten) - Und Weiteres
- Timer
- Süßwasserpirat
- Beiträge: 260
- Registriert: 27.02.2007, 17:35
Mittlerweile habe ich es so gelöst:
Nun funktioniert es, wie ich es will.
Frage am Rande: Sind euch auch Probleme mit player.frame = irgendwas; bekannt? Denn bei mir funktioniert das an manchen Stellen überhaupt nicht, obwohl ich weit und breit keinen Fehler erkennen kann...
Code: Alles auswählen
function Kollision (int Zahl) {
ViewFrame *frame = Game.GetViewFrame(player.View, player.Loop, player.frame);
int PlayerBreite = Game.SpriteWidth[frame.Graphic];
int PlayerHoehe = Game.SpriteHeight[frame.Graphic];
int Breite = (player.x + (PlayerBreite/2) - Droops[Zahl].Xpos);
int Hoehe = (player.y - Droops[Zahl].Ypos);
int ZusammenY = PlayerHoehe + 17;
int ZusammenX = PlayerBreite + 14;
if (Hoehe > ZusammenY) return false;
else if (Hoehe < 0) return false;
else if (Breite > ZusammenX) return false;
else if (Breite < 0) return false;
else return true;
}
Frage am Rande: Sind euch auch Probleme mit player.frame = irgendwas; bekannt? Denn bei mir funktioniert das an manchen Stellen überhaupt nicht, obwohl ich weit und breit keinen Fehler erkennen kann...
- Timer
- Süßwasserpirat
- Beiträge: 260
- Registriert: 27.02.2007, 17:35
Schade, hat nichts gebracht. Aber trotzdem danke.
Es muss wohl an etwas anderem liegen... Was dagegen, wenn ich das Script poste, das mir am meisten Probleme bereitet?
... Es geht um einen Loop, in dem 2 Frames sind... Ich will, dass wenn die "Nach unten" Taste gedrückt ist, zuerst das eine Frame und beim nächsten Durchlauf der repeatedly_execute das nächste Frame angezeigt wird und es so bleibt... Aber es wird immer nur das erste Frame angeszeigt. Irgendeine Idee, woran das liegen könnte?
Es muss wohl an etwas anderem liegen... Was dagegen, wenn ich das Script poste, das mir am meisten Probleme bereitet?
Code: Alles auswählen
if ((IsKeyPressed (380) == true) && (Gelandet () == true)) {
links = false;
rechts = false;
ducking = true;
if (player.View != 6) player.ChangeView (6);
if (Duckstatus == 2 && player.Frame < 1){ player.Frame = 1; Display ("%d", player.Frame); }
else if (Duckstatus != 2) Duckstatus = 2;
}
- KhrisMUC
- Adventure-Gott
- Beiträge: 4674
- Registriert: 14.03.2005, 00:55
- Wohnort: München
Erst mal was Nebensächliches:reicht
Hmm, etwas genauer bitte:
Welches Frame wird angezeigt, 0 oder 1?
Was besagt Duckstatus genau?
Code: Alles auswählen
if (IsKeyPressed (380) && Gelandet ())
Hmm, etwas genauer bitte:
Welches Frame wird angezeigt, 0 oder 1?
Was besagt Duckstatus genau?
Use gopher repellent on funny little man
- Timer
- Süßwasserpirat
- Beiträge: 260
- Registriert: 27.02.2007, 17:35
Es wird leider nur Frame 0 angezeigt... Allerdings steht in dem Display, dass ich nach der Änderung des Frames anzeigen lasse, "1". Das ist reichlich verwirrend, weil wirklich nur Frame 0 angezeigt wird....Welches Frame wird angezeigt, 0 oder 1?
Duckstatus ist eine Variable, mit der ich bewirken wollte, dass frame 1 erst beim 2. Durchlauf der repeatedly_execute angezeigt wird.Was besagt Duckstatus genau?
- Timer
- Süßwasserpirat
- Beiträge: 260
- Registriert: 27.02.2007, 17:35
Jetzt ist es GANZ seltsam:
Es scheint sich immer abzuwechseln. Also bei einer Schleife wird Frame 1 angezeigt, bei der nächsten Frame 0, dann wieder Frame 1 - Das sieht so aus, als würde er zittern.
... Problem erledigt. Der Fehler lag an einer Function etwas weiter unten, bei dem eine Bedingung gefehlt hat. Das erklärt nun auch alle anderen Probleme, die ich mit player.Frame hatte.
Danke für die Hilfe!
Es scheint sich immer abzuwechseln. Also bei einer Schleife wird Frame 1 angezeigt, bei der nächsten Frame 0, dann wieder Frame 1 - Das sieht so aus, als würde er zittern.
... Problem erledigt. Der Fehler lag an einer Function etwas weiter unten, bei dem eine Bedingung gefehlt hat. Das erklärt nun auch alle anderen Probleme, die ich mit player.Frame hatte.
Danke für die Hilfe!