Hallo!
zu meinem Spiel:
Ich habe einen Planeten. Ich kann also unendlich lange nach rechts gehen, ich komme irgendwann wieder an meinem Ausgangspunkt an, weil der Planet rund ist.
programmtechnisch ist der Planet bei mir allerdings nicht rund, aber ich möchte den selben Effekt erzeugen.
Ich möchte halt in eine beliebige Richtung auf der x-Achse laufen und wenn ich am Ende des Raumes ankomme,
statt den Rand des Raumes, wieder die andere Seite des Raumes sehen und quasi weiterlaufen können.
Nun fehlt mir die Idee wie ich das in GML umsetzen kann.
Habe nochmal meine Idee mit Paint veranschaulicht
Über jede Hilfe oder Tipps/Ideen in jeder Form würde ich mich sehr freuen.
mfg Midrael
#EditDa ich es hinbekommen habe, hier nochmal die Lösung:
Alles anzeigen
zu meinem Spiel:
Ich habe einen Planeten. Ich kann also unendlich lange nach rechts gehen, ich komme irgendwann wieder an meinem Ausgangspunkt an, weil der Planet rund ist.
programmtechnisch ist der Planet bei mir allerdings nicht rund, aber ich möchte den selben Effekt erzeugen.
Ich möchte halt in eine beliebige Richtung auf der x-Achse laufen und wenn ich am Ende des Raumes ankomme,
statt den Rand des Raumes, wieder die andere Seite des Raumes sehen und quasi weiterlaufen können.
Nun fehlt mir die Idee wie ich das in GML umsetzen kann.
Habe nochmal meine Idee mit Paint veranschaulicht
Über jede Hilfe oder Tipps/Ideen in jeder Form würde ich mich sehr freuen.
mfg Midrael
#EditDa ich es hinbekommen habe, hier nochmal die Lösung:
Quellcode
- view_xview[0]=o_player.x-blickweite_x/2//spieler zentrieren
- // blickweite_x ist hier nichts anderes als view_wview
- if x > room_width-view_xview[0]+blickweite_x/2 //wenn man am rechten raum ende ist
- {
- view_visible[1]=1 //view von dem rechten raum ende wird aktiviert
- view_visible[0]=1 //das ist der standard view und die kamera verfolgung
- view_visible[2]=0 //der view der linken seite wird nicht benötigt
- view_xview[1]=0 //hier sagen wir welchen bereich des raumes der view_port[1] wiedergeben soll
- view_xport[1]=room_width-view_xview[0] //gibt an wo der view_port[1] gezeichnet wird
- view_yport[1]=0
- view_wport[1]=view_xview[0]+blickweite_x-room_width //gibt an wieviel inhalt der view_port[1] hat
- view_wview[1]=blickweite_x*((view_xview[0]+blickweite_x-room_width)/blickweite_x); //bestimmt quasi die auflösung vom view_port[1]
- }
- if x < blickweite_x/2 //wenn man am rechten raum ende ist
- { //hier ist quasi alles wie oben, nur halt analog für die linke seite :)
- view_visible[0]=1
- view_visible[1]=0
- view_visible[2]=1
- view_xport[2]=0 //linke seite
- view_yport[2]=0
- view_wport[2]=view_xview*-1
- view_wview[2]=blickweite_x*(((view_xview*-1)/blickweite_x))
- view_xview[2]=room_width+view_xview[0]
- }
- if x>room_width{x=0} //wenn wir gerade aus dem raum rechts rauslaufen, werden wir an die linke seite des raumes teleportiert.
- if x<0{x=room_width} // der selbe spaß nur umgekehrt
Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von Midrael ()