view folgt fadenkreuz

  • RE: view folgt fadenkreuz

    ich habe vergessen zu erwähnen das mein spiel ein topdown shooter ist.
    ich hätte eher gedacht das es irgendwie so geht: also erst einmal folgt die view dem fadenkreuz und dann

    GML-Quellcode

    1. if point distance(x,y,player.x,y)>1000
    2. x=player.x+lengthdir_x(1000,player.direction)
    3. if point distance(x,player.y,x,y)>700
    4. y=player.y+lengthdir_y(700,player.direction)

    aber irgendwie funktioniert das nicht richtig. weiß sonst jemand wie das möglich wäre?z.b. beim spiel soldat folgt die view auch dem fadenkreuz.
  • ich weiß jetzt nicht, was du genau meinst, aber im room editor, bei den views ist eine auswahl box, in der du ein objekt auswählen kannst. Dann folgt der view dem objekt.
    du kannst auch noch Sachen einstellen, wie wie schnell der view maximal dem objekt hinterherjagt (z.B. wenn dein objekt speed 8 hat, und dein view hat nur max 5 oder so, kommt er dem objekt nicht schnell genug hinterher, und, wenn dein Raum groß genug ist, verschwindet das Objekt ganz aus dem view)
    und dann kannst du die Abstände einstellen, wie weit weg vom Rand der view sich mitbewegt.

    wenn du mir vielleicht mehr informationen gibst (ne kurze paint zeichnung, ... ) oder deine gm6, könnte ich dir bestimmt besser helfen (wenns schwieriger wird)
  • Falls das Problem immer noch besteht könntest du diesen Code einfach ins Step Event des Spielers kopieren:

    GML-Quellcode

    1. var k,d;
    2. k=2.5; //Abstandsfaktor k>=2
    3. //Blickrichtung
    4. d=point_direction(x,y,mouse_x,mouse_y)
    5. //View neu setzen
    6. view_xview[0]=x+lengthdir_x(view_wview[0]/k,d)-view_wview[0]/2;
    7. view_yview[0]=y+lengthdir_y(view_hview[0]/k,d)-view_hview[0]/2;


    Dragoon

    EDIT: Der oben geschriebene Code funktioniert nicht richtig, so wäre er besser:

    GML-Quellcode

    1. d=point_direction(x,y,mouse_x,mouse_y);
    2. r=min(point_distance(x,y,mouse_x,mouse_y),view_hview[0]-128);
    3. view_xview[0]=x+lengthdir_x(r/2,d)-view_wview[0]/2;
    4. view_yview[0]=y+lengthdir_y(r/2,d)-view_hview[0]/2;
    5. //Damit die View nicht aus dem Room geht
    6. view_xview[0]=min(view_xview[0],room_width-view_wview[0]);
    7. view_yview[0]=min(view_yview[0],room_height-view_hview[0]);
    8. view_xview[0]=max(view_xview[0],0);
    9. view_yview[0]=max(view_yview[0],0);
    int (*x(*x(int))[5])(int*);
    Confused? Yes, it's C!
  • Das funktioniert schon fast,nur wird der room dann größer als er ist!
    ich meine damit,... nehmen wir mal an dass der room 1024*768 groß ist. wenn du dann ganz rechts(1024)stehst kannst du weiter nach rechts sehen,als ob der room 2048*1526 groß wäre, doch man kann nicht weitergehen!.okay, das war blöd erklärt.ich schicke dir(dragoon) gleich eine e-mail mit dem spiel,und bitte dich das problem zu lösen.
    edit: e-mail geschickt
    edit2: okay,kann mir irgendwer helfen?hier ist die gm6:World.gm6

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von Gregor ()

  • Benutzer online 1

    1 Besucher