Hallo, ich mal wieder mit einer Frage
ich hab leider nicht so viel Ahnung von Platform-Games allgemein (bzw. eigne sie mir mit der Zeit an), hab also folgenden Code geschrieben:
[ Step Event ]
Alles anzeigen
(Btw: Der Script on_ground() ist nichts anderes als place_meeting(x,y+vspeed+0.8,objBlock);)
Ich bin eigentlich sehr zufrieden mit dem Ganzen, nur wenn man mit Geschick seitlich von oben an einen Block geht, hängt man fest und kann sich nur noch befreien, indem man springt. Hier ist ein Bildchen, wo man es gut erkennen kann:
Kennt jemand eine bessere Methode oder findet jemand den Fehler in meinem Code?
Danke im Voraus,
Gruß, euer kopierjunge
ich hab leider nicht so viel Ahnung von Platform-Games allgemein (bzw. eigne sie mir mit der Zeit an), hab also folgenden Code geschrieben:
[ Step Event ]
GML-Quellcode
- if (!keyboard_check(vk_up) and vspeed<0) {vspeed *= 0.9;}
- if (keyboard_check(vk_left)) {hspeed -= 0.2;}
- if (keyboard_check(vk_right)) {hspeed += 0.2;}
- if !(keyboard_check(vk_left) xor keyboard_check(vk_right))
- {hspeed *= 0.9;} else {
- if (keyboard_check(vk_left) and hspeed>0) {hspeed *= 0.9;}
- if (keyboard_check(vk_right) and hspeed<0) {hspeed *= 0.9;}
- }
- hspeed = max(-4,min(4,hspeed));
- if (on_ground() and keyboard_check_pressed(vk_up)) {vspeed = -5.5;}
- if (on_ground()) {
- gravity = 0;
- if (vspeed > 0) {
- move_contact_solid(270,vspeed);
- vspeed = 0;
- }
- } else {gravity = 0.2;}
- if (place_meeting(x+hspeed,y+vspeed,objBlock) and hspeed!=0) {
- if (hspeed > 0) {dir = 0;} else {dir = 180;}
- move_contact_solid(dir,abs(hspeed));
- hspeed = 0;
- }
- if (place_meeting(x+hspeed,y+vspeed-1,objBlock) and vspeed<0) {
- move_contact_solid(90,min(0,-vspeed));
- vspeed = max(0,vspeed);
- }
Ich bin eigentlich sehr zufrieden mit dem Ganzen, nur wenn man mit Geschick seitlich von oben an einen Block geht, hängt man fest und kann sich nur noch befreien, indem man springt. Hier ist ein Bildchen, wo man es gut erkennen kann:
Kennt jemand eine bessere Methode oder findet jemand den Fehler in meinem Code?
Danke im Voraus,
Gruß, euer kopierjunge