vertikale ebene bug entdeckt o.O...

  • GM 8
  • vertikale ebene bug entdeckt o.O...

    hi leute ich habe ne ebene die sich vertikal bewegt, wenn sie sich hoch bewegt, hab ich keine probleme, aber wenn sie sich runterbewegt, dann passt sich der vspeed des obj_players nicht an o.O....

    geschrieben habe ich folgendes

    im obj_player
    step event

    GML-Quellcode

    1. if(place_meeting(x,y+2,obj_bewegliche_ebene_v))and!(sprite_index=spr_im_tor){
    2. vspeed=obj_bewegliche_ebene_v.vspeed;
    3. }


    das hier ist die ebene (wobei ich nicht glaube das das problem hier liegt :))

    ebene
    step event

    GML-Quellcode

    1. if!(hspeed=0){
    2. hspeed=0;
    3. }
    4. if(place_meeting(x,y+vspeed,obj_unsichtbare_wand)){
    5. vspeed=-4;
    6. }
    7. if(place_meeting(x,y+vspeed,obj_unsichtbare_wand)){
    8. vspeed=4;
    9. }


    bin bisher nur hochgefahren mit den dingern, ich hab die noch nie runterfahren lassen, desshalb ist mir das problem erst auch nicht aufgefallen...
    ich hab mich den ganzen tag daran versucht, aber iwie klappt heut nix...


    gruß gruen


  • Und? soll das nicht so sein? ich meine wenn man von der Plattform zum Beispiel abspringt wird der vspeed neu gesetzt und dann kollidiert man auch nicht mehr mit der Plattform.

    Willst du auf diese Drachen und -eier klicken?
    Sie werden sich freuen ;)

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von DragonGamer ()

  • hab den Bug gelöst, mach das plattform-script zu dem hier:

    GML-Quellcode

    1. if(place_meeting(x,y+2,obj_bewegliche_ebene_v))
    2. and!(keyboard_check(vk_up)){colides_with_platform_v = 1;
    3. vspeed=instance_nearest(x,y,obj_bewegliche_ebene_v).vspeed
    4. } else colides_with_platform_v = 0;


    und dann ins step-event der Platform:

    GML-Quellcode

    1. if!(hspeed=0){
    2. hspeed=0;
    3. }
    4. if(place_meeting(x,y+vspeed,obj_unsichtbare_wand)){
    5. vspeed=-4;
    6. if obj_player.colides_with_platform_v
    7. obj_player.vspeed = -4;
    8. }
    9. if(place_meeting(x,y+vspeed,obj_unsichtbare_wand)){
    10. vspeed=4;
    11. if obj_player.colides_with_platform_v
    12. obj_player.vspeed = 4;
    13. }
    Alles anzeigen

    Willst du auf diese Drachen und -eier klicken?
    Sie werden sich freuen ;)
  • danke das hat funktioniert...

    ich gehe davon aus das des vorher nicht funktioniert hat, weil der code zeitverzögert ausgeführt wird... also wenn die plattform auf vspeed=4 umsteigt, dass dann
    der code vom player gegf. schon ausgeführt war, und im nächsten step ist keine collision mehr gewesen...