Hallo liebe GM's,
habe wieder mal Probleme mit den Kollisionen in meinem Spiel.
Die Spielfigur (Block), gelangt beim springen nicht ganz an den oberen rand, als hätte sie eine größere Maske, als das Sprite an sich. (Was aber nicht der Fall ist)
Es scheint mir als wäre der Fehler bei der direkten Kollisions-Abfrage. Sprich im "Collision" Event.
Dort ist folgender Code enthalten:
Und im Step Event dieses hier:
Spoiler anzeigen
Alles anzeigen
Kann hier jemand direkt einen Fehler erkennen, dass das verursacht?
EDIT: Kann nicht genau sagen was nicht korrekt war, aber am Code lag es nicht.
Anscheinend habe ich ein Problem mit den Masken des Objektes.
habe wieder mal Probleme mit den Kollisionen in meinem Spiel.
Die Spielfigur (Block), gelangt beim springen nicht ganz an den oberen rand, als hätte sie eine größere Maske, als das Sprite an sich. (Was aber nicht der Fall ist)
Es scheint mir als wäre der Fehler bei der direkten Kollisions-Abfrage. Sprich im "Collision" Event.
Dort ist folgender Code enthalten:
Und im Step Event dieses hier:
GML-Quellcode
- xspeed -= xspeed / 6;
- if (global.run=1) and (gamepad_button_check(gpid,gp_shoulderrb)) {myspeed=2} else {myspeed=1;}
- repeat (abs(xspeed))
- if place_free(x+sign(xspeed),y){
- x += sign(xspeed)
- }else{
- xspeed = 0
- }
- xspeed += gamepad_axis_value(gpid,gp_axislh)*myspeed;
- if (place_meeting(x+hspd,y,obj_solids)) {
- move_outside_solid(180,10);
- gravity = 0;}
- if (place_meeting(x-hspd,y,obj_solids)) {
- move_outside_solid(0,17);
- gravity = 0;}
- if (global.jump=1) {
- if (gamepad_button_check(gpid,gp_face1)) {
- if !place_free(x,y + 1) {
- jumps+=1;
- vspeed = -18;}
- else if (gamepad_button_check_pressed(gpid,gp_face1)) and double_jump = 1
- and (global.Djump=1) {
- double_jump = 0;
- jumps+=1;
- vspeed = -16;}
- }
- }
- if (gamepad_button_check_released(gpid,gp_face1)) {
- if vspeed < 0 {vspeed /= 6;}
- }
- if (place_free(x,y+1)) and vspeed > 0 {
- vib += 0.01;}
- if (vib > 100) {vib = 100;}
- if place_free(x,y + 1) {gravity = 1;}
- else {gravity = 0;}
- if (vspeed > 18) {vspeed=18;}
- if (vspeed < -18) {vspeed=-18;}
- if(jumps > 50) {jumps=0;}
- if(place_meeting(x,y+1,obj_solids)) and (place_free(x,y-4)) {lastposX=x; lastposY=y;}
- if(x > room_width-48) then x=room_width-48;
- if(x < 0) then x=0;
Kann hier jemand direkt einen Fehler erkennen, dass das verursacht?
EDIT: Kann nicht genau sagen was nicht korrekt war, aber am Code lag es nicht.
Anscheinend habe ich ein Problem mit den Masken des Objektes.
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Lunatic447 ()