Mein allererstes Game-Maker Projekt vor knapp 3 Jahren hat mich damals vor eine gigantische Hürde gestellt. Mit drei Stichwörtern beschrieben:
-Top-Down
-View folgt Spieler , und zwar flüssig (nicht wie die eingebaute View-Funktion)
-"wrap when outside room" , sprich: die Welt ist rund und alles was rechts rausgeht muß links wieder reinkommen.
Das ganze war eine Katastrophe. Am Ende hatte ich eine Lösung (DIE Lösung in meinen Augen), auch bei 64d hochgeladen, aber da waren noch 1-2 wichtige Fehler drin. Jetzt hab ich's nochmal leicht vereinfacht und verbessert. Vielleicht inspiriert es ja doch den einen oder anderen, was in der Art zu machen. Es sieht zwar insgesamt etwas kompliziert aus, besteht aber im Grunde nur aus 1-2 Skripten.
Spoiler anzeigen
Alles anzeigen
-Top-Down
-View folgt Spieler , und zwar flüssig (nicht wie die eingebaute View-Funktion)
-"wrap when outside room" , sprich: die Welt ist rund und alles was rechts rausgeht muß links wieder reinkommen.
Das ganze war eine Katastrophe. Am Ende hatte ich eine Lösung (DIE Lösung in meinen Augen), auch bei 64d hochgeladen, aber da waren noch 1-2 wichtige Fehler drin. Jetzt hab ich's nochmal leicht vereinfacht und verbessert. Vielleicht inspiriert es ja doch den einen oder anderen, was in der Art zu machen. Es sieht zwar insgesamt etwas kompliziert aus, besteht aber im Grunde nur aus 1-2 Skripten.
GML-Quellcode
- with view
- {
- if (x < center_x) {x += shift} else if (x > roomwidth-center_x) {x -= shift}; X=x-center_x; cx = (x > midmap) ;
- if (y < center_x) {y += shift} else if (y > roomwidth-center_x) {y -= shift}; Y=y-center_y; cy = (y > midmap) ;
- }
- with wrapper
- {
- if (x < view.cx*view.width ) {x += view.shift} else if (x > view.shift + view.cx*view.width ) {x -= view.shift}; draw_x=x-view.X ;
- if (y < view.cy*view.width ) {y += view.shift} else if (y > view.shift + view.cy*view.width ) {y -= view.shift}; draw_y=y-view.Y ;
- hide=(draw_x<-view.dist_out || draw_x>view.width+view.dist_out || draw_y<-view.dist_out || draw_y>view.height+view.dist_out)
- }
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Melancor ()