Intro Raum soll von links nach rechts scrollen

Fragen zu "Adventure Game Studio"? Hier rein!
Antworten
Benutzeravatar
DernetteEddy
Süßwasserpirat
Süßwasserpirat
Beiträge: 298
Registriert: 30.06.2004, 00:31

Intro Raum soll von links nach rechts scrollen

Beitrag von DernetteEddy »

Hi,

also folgendes Problem. Ich hab im meinem Intro einen Raum der sehr sehr breit ist.
Wenn man einen normalen Raum hat ist es ja kein Problem wenn der Playercharacter von links nach rechts (bzw. umgekehrt) läuft, dass der Raum automatisch mitscrollt.
Wie mach ich das jedoch im Intro, in dem ich keinen Playercharacter habe der sich bewegt? Gibt es da einen Befehl den ich noch nicht kenne?
Benutzeravatar
DernetteEddy
Süßwasserpirat
Süßwasserpirat
Beiträge: 298
Registriert: 30.06.2004, 00:31

Beitrag von DernetteEddy »

Also ich hab das jetzt so gemacht, dass ich n neuen Character erstellt habe der einen transparenten View hat. Wenn der Raum aufgerufen wird ,wird dieser Character zum Player und läuft von links nach rechts langsam los.
Das klappt auch wohl, aber elegant find ich die Lösung nicht.
Weiß denn keiner wie ichs sonst machen kann?
Benutzeravatar
Rocco
Adventure-Treff
Adventure-Treff
Beiträge: 1019
Registriert: 25.11.2003, 16:20
Wohnort: Ronville
Kontaktdaten:

Beitrag von Rocco »

So hätt ichs auch gemacht, aus dem bauch heraus.
aber soweit ich weiss hat a-v-o sogar ein plugin fürs
scrollen programmiert, irgendwo hab ich den link.
ah.. hier ist er, gar nicht so leicht zu finden:

http://a-v-o.privat.t-online.de/ags/

details dazu fragst du ihn besser selber.
Benutzeravatar
DernetteEddy
Süßwasserpirat
Süßwasserpirat
Beiträge: 298
Registriert: 30.06.2004, 00:31

Beitrag von DernetteEddy »

Den werd ich mal ausprobieren. Mit dem unsichtbaren Character stößt man doch sehr schnell an die Grenzen von wegen Geschwindigkeit und so.
Danke
[ZENSIERT]
Adventure-Gott
Adventure-Gott
Beiträge: 4575
Registriert: 13.07.2004, 14:04
Wohnort: Da wo muss
Kontaktdaten:

Beitrag von [ZENSIERT] »

Schaut mal in die Hilfe
Wenn du mir sagst in welche RICHTUNG du scrollen willst, kann ich dir ein Script generieren. Ich brauche die Höhe und Breite des Raumes und den endgültigen Punkt. Ich versuch mal in meinem Editor ein "function"-Script ´zu machen

Nein, keine Ahnung...
Das muss man immer gleich machen

Ich schicke dir mal ein Beispiel zu...

Code: Alles auswählen

 int mue = 800; // Aktueller Viewport
  int moe = 60; // Endgültiger Viewport
  while(mue > 62) {
    SetViewport(mue, 75);
    Wait(1);
    mue = mue - 3;
    }
  DisplaySpeech(ERZ, "Einige Stünden später"); // Copyright by Spongebob  :-)
    while(moe < 800) {
    SetViewport(moe, 75);
    Wait(1);
    moe = moe + 3;
    }
  ReleaseViewport(); // Damit auch später wieder scrollt
Es heißt, Leute mit den originellsten Nicknames schreiben die besten Beiträge

Ausnahmen bestätigen die Regel
_________________
<Problem> Weil du denken kannst.

Zuletzt bearbeitet von [ZENSIERT] am 16.07.1759, 16:19, insgesamt 54743869-mal bearbeitet
a-v-o
Süßwasserpirat
Süßwasserpirat
Beiträge: 258
Registriert: 22.09.2002, 21:28
Kontaktdaten:

Beitrag von a-v-o »

Scrollen ohne Character geht mit SetViewport. Entweder in einer while-Schleife, dann blockiert das Scrolling das Script, es können also keine Aktionen nebenher ablaufen. Oder im repeatedly execute.

Ein Plugin habe ich nicht gemacht, aber ein SmartScrolling-Script geschrieben. Das ist dafür gedacht, das normale Scrolling, bei dem der Charakter immer in der Mitte durch ein Lucasarts-ähnliches (glaube ich) Scrolling abzulösen, bei dem der Raum erst scrollt, wenn der Character nahe dem Rand ist und dann auch so weit, dass der Character erst wieder ein ganzes Stück über den stehenden Hintergrund laufen kann, bis das nächste Scrolling einsetzt.

Nun zur Variante 1 (blocking)

int x = GetViewportX ();
while (x < ZIEL_X_KOORDINATE)
{
SetViewport (x, GetViewportY ());
x++;
}

Natürlich kann man in die Schleife auch noch Befehle für Hintergrundaktionen einbauen, wenn man das braucht.

Variante 2 (non-blocking):

in das room script:

int target_x = -1;

in die interaction-function, die das Scrolling startet:

target_x = ZIEL_X_KOORDINATE;

in repeatedly_execute:

int x = GetViewportX ();
if (x < target_x)
{
x++;
SetViewport (x, GetViewportY ());
}

Für ZIEL_X_KOORDINATE den entsprechenden Wert einsetzen. Soll das normale Scrolling wieder aktiviert werden, dann ReleaseViewport () verwenden.

Ich hoffe, dass dir das weiterhilft, ansonsten konreter fragen.
Benutzeravatar
DernetteEddy
Süßwasserpirat
Süßwasserpirat
Beiträge: 298
Registriert: 30.06.2004, 00:31

Beitrag von DernetteEddy »

Wow danke,

ich werd es mal ausprobieren. Leider hab ich momentan kein Internet weil die Telekom schlampt. Kann deswegen nur sporadisch beim arbeiten nachschauen.
Ich komm aber darauf zurück.

Vielen Dank schonmal
Antworten