Hallo Leute.
Hab mal wieder eine Frage zu einem Plattformer. Und zwar spielt man einen Player (einen Kreis) der sich recht schnell nach rechts bzw. nach links bewegen kann. Jetzt sollte man sich aber auch an schräge plattfomren bewegen können. Die Blöcke sehen ca. so aus: (siehe Anhang)
Zurzeit habe ich das ca. so gelöst:
Alles anzeigen
Aber das klappt leider auch nicht ganz. jemand eine Idee wie ich das anders lösen könnte?
MfG Rodrog
Edit: Gut hab es zurzeit so gelöst
Alles anzeigen
Sieht schon um einiges besser aus, jedoch denk ich mir gibt es noch bessere Möglichkeiten. Ich stelle diesen Thread trotz noch auf ungelöst.
Hab mal wieder eine Frage zu einem Plattformer. Und zwar spielt man einen Player (einen Kreis) der sich recht schnell nach rechts bzw. nach links bewegen kann. Jetzt sollte man sich aber auch an schräge plattfomren bewegen können. Die Blöcke sehen ca. so aus: (siehe Anhang)
Zurzeit habe ich das ca. so gelöst:
GML-Quellcode
- if(place_free(x+move_speed,y)) {
- x += move_speed;
- } else if (place_free(x + move_speed, y - 1)){
- x += move_speed;
- y -= 1;
- } else if (place_free(x + move_speed, y - 2)){
- x += move_speed;
- y -= 2;
- } else if (place_free(x + move_speed, y - 3)){
- x += move_speed;
- y -= 3;
- } else if (place_free(x + move_speed, y - 4)){
- x += move_speed;
- y -= 4;
- } else if (place_free(x + move_speed, y - 5)){
- x += move_speed;
- y -= 5;
- } else if (place_free(x + move_speed, y - 6)){
- x += move_speed;
- y -= 6;
- } else if (place_free(x + move_speed, y - 7)){
- x += move_speed;
- y -= 7;
- } else if (place_free(x + move_speed, y - 8)){
- x += move_speed;
- y -= 8;
- } else if (place_free(x + move_speed, y - 9)){
- x += move_speed;
- y -= 9;
- } else if (place_free(x + move_speed, y - 10)){
- x += move_speed;
- y -= 10;
- } else if(place_free(x+1*sign(move_speed),y)) {
- x += 1*sign(move_speed);
- } else {
- move_speed = 0;
- }
Aber das klappt leider auch nicht ganz. jemand eine Idee wie ich das anders lösen könnte?
MfG Rodrog
Edit: Gut hab es zurzeit so gelöst
GML-Quellcode
- x += move_speed;
- if(move_direction == +1) {
- if(place_meeting(x,y,obj_block_solid_slope_right)) {
- move_outside_solid(090,move_speed);
- }
- if(place_meeting(x,y+8,obj_block_solid_slope_left)) {
- move_contact_solid(270,move_speed);
- move_outside_solid(090,move_speed);
- }
- if(place_meeting(x,y,obj_block_solid_normal)) {
- x = xprevious;
- }
- } else if(move_direction == -1) {
- if(place_meeting(x,y,obj_block_solid_slope_left)) {
- move_outside_solid(090,move_speed);
- }
- if(place_meeting(x,y+8,obj_block_solid_slope_right)) {
- move_contact_solid(270,move_speed);
- move_outside_solid(090,move_speed);
- }
- if(place_meeting(x,y,obj_block_solid_normal)) {
- x = xprevious;
- }
- }
Sieht schon um einiges besser aus, jedoch denk ich mir gibt es noch bessere Möglichkeiten. Ich stelle diesen Thread trotz noch auf ungelöst.
Je mehr Käse, desto mehr Löcher.
Je mehr Löcher, desto weniger Käse.
Ergo: Je mehr Käse, desto weniger Käse.
Je mehr Löcher, desto weniger Käse.
Ergo: Je mehr Käse, desto weniger Käse.
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Rodrog ()