"Sidescrolling" wie bei Baphomets Fluch
-
- Hobby-Archäologe
- Beiträge: 177
- Registriert: 12.11.2009, 22:20
- Kontaktdaten:
"Sidescrolling" wie bei Baphomets Fluch
Hallo,
Bei Baphomets Fluch1&2 ist es ja so, dass wenn man mit dem Cursor in der Nähe des Bildschirmrandes ist und der Ort(Background) größer ist als der Bildschirm, dass sich der Cursor in eine Hand verwandelt, die diese "Komm zu mir-Bewegung" macht. Wenn man dann mit George in der Nähe des Bildschirmrandes(wo vorher die besagte Hand war), dann ereignet sich dieses "Sidescrolling" und der Bildschirm verschiebt sich zur anderen Seite.
Wie kann man das mit AGS umsetzen? Kann mir jemand helfen? [-o<
Vielen Dank!
Bei Baphomets Fluch1&2 ist es ja so, dass wenn man mit dem Cursor in der Nähe des Bildschirmrandes ist und der Ort(Background) größer ist als der Bildschirm, dass sich der Cursor in eine Hand verwandelt, die diese "Komm zu mir-Bewegung" macht. Wenn man dann mit George in der Nähe des Bildschirmrandes(wo vorher die besagte Hand war), dann ereignet sich dieses "Sidescrolling" und der Bildschirm verschiebt sich zur anderen Seite.
Wie kann man das mit AGS umsetzen? Kann mir jemand helfen? [-o<
Vielen Dank!
- Helme
- Hobby-Archäologe
- Beiträge: 147
- Registriert: 23.01.2009, 10:13
Re: "Sidescrolling" wie bei Baphomets Fluch
Das Scrollen ist automatisch. Dein Raum muß nur größer sein als die Auflösung deines Spiels.
Hier gibt's ein Modul, dass das Scrollen schöner macht (Der Paralax-Effekt ist auch ganz schön):
http://www.bigbluecup.com/yabb/index.php?topic=33142.0
Die 'winkende Hand' à la Baphomets Fluch, dürfte nicht so einfach zu machen sein. Das würde ich einfach lassen. Wenn deine Hintergründe gut konzipiert sind, sieht man auch so, wo es weitergeht und wo nicht.
Hier gibt's ein Modul, dass das Scrollen schöner macht (Der Paralax-Effekt ist auch ganz schön):
http://www.bigbluecup.com/yabb/index.php?topic=33142.0
Die 'winkende Hand' à la Baphomets Fluch, dürfte nicht so einfach zu machen sein. Das würde ich einfach lassen. Wenn deine Hintergründe gut konzipiert sind, sieht man auch so, wo es weitergeht und wo nicht.
-
- Hobby-Archäologe
- Beiträge: 177
- Registriert: 12.11.2009, 22:20
- Kontaktdaten:
Re: "Sidescrolling" wie bei Baphomets Fluch
Danke für den Link, war sehr hilfreich!
-
- Verpackungs-Wegwerfer
- Beiträge: 76
- Registriert: 09.04.2006, 17:51
- Kontaktdaten:
Re: "Sidescrolling" wie bei Baphomets Fluch
da ich baphomets fluch 1&2 nie gespielt habe, bin ich mir nicht sicher ob du das gleiche meinst wie ich...
zumindest hörts sich von der beschreibung her so an.
vielleicht könnte dir dieser Thread hier helfen...
zumindest hörts sich von der beschreibung her so an.
vielleicht könnte dir dieser Thread hier helfen...
- KhrisMUC
- Adventure-Gott
- Beiträge: 4674
- Registriert: 14.03.2005, 00:55
- Wohnort: München
Re: "Sidescrolling" wie bei Baphomets Fluch
Da die Mauskoordinaten immer relativ zum Screen sind, nicht zum Hintergrund, muss man eigentlich nur überprüfen, ob mouse.x == 0 oder == 319/639/... ist und die Maus entsprechend animieren. Da man bei AGS animierte Cursor einstellen kann, muss man nur zwei Cursor hinzufügen und mouse.Mode auf den entsprechenden Cursor setzen.
Zusätzlich könnte man dies in on_mouse_click machen:
Bei Baphomets Fluch lief George nämlich immer weiter, wenn man ganz am Rand geklickt hat (oder wenn man die Maus am Rand gelassen hat).
Code: Alles auswählen
// in rep_ex
if (Room.Width > System.ViewportWidth) {
if (mouse.x == 0) {
if (mouse.Mode != eModeLeftBeckon) mouse.Mode = eModeLeftBeckon;
}
else if (mouse.x == SystemViewportWidth-1) {
if (mouse.Mode != eModeRightBeckon) mouse.Mode = eModeRightBeckon;
}
}
else {
// standard mouseover code
}
Code: Alles auswählen
// left click
if (mouse.Mode == eModeLeftBeckon) player.Walk(0, mouse.y);
else if (mouse.Mode == eModeLeftBeckon) player.Walk(639, mouse.y);
else ProcessClick(mouse.x, mouse.y);
Use gopher repellent on funny little man
-
- Hobby-Archäologe
- Beiträge: 177
- Registriert: 12.11.2009, 22:20
- Kontaktdaten:
Re: "Sidescrolling" wie bei Baphomets Fluch
An KhrisMUC,
Erstmal vielen Dank!
Also es hat alles funktioniert, nur wäre es möglich, dass sich der Mouse-Mode schon in der Nähe des horizontalen Bildschirmrandes ändert. Also im Moment ist es noch so, dass man mit dem Cursor erst ganz ganz nah an den Bildschirmrand gehen muss, bis sich der Mouse-Mode verändert.
Erstmal vielen Dank!
Also es hat alles funktioniert, nur wäre es möglich, dass sich der Mouse-Mode schon in der Nähe des horizontalen Bildschirmrandes ändert. Also im Moment ist es noch so, dass man mit dem Cursor erst ganz ganz nah an den Bildschirmrand gehen muss, bis sich der Mouse-Mode verändert.
- KhrisMUC
- Adventure-Gott
- Beiträge: 4674
- Registriert: 14.03.2005, 00:55
- Wohnort: München
Re: "Sidescrolling" wie bei Baphomets Fluch
Code: Alles auswählen
// in rep_ex
int breite = 5; // hier die Breite des Bereichs eintragen
if (Room.Width > System.ViewportWidth) {
if (mouse.x < breite) {
if (mouse.Mode != eModeLeftBeckon) mouse.Mode = eModeLeftBeckon;
}
else if (mouse.x > System.ViewportWidth-(1+breite)) {
if (mouse.Mode != eModeRightBeckon) mouse.Mode = eModeRightBeckon;
}
}
else {
// standard mouseover code
}
Use gopher repellent on funny little man
-
- Hobby-Archäologe
- Beiträge: 177
- Registriert: 12.11.2009, 22:20
- Kontaktdaten:
Re: "Sidescrolling" wie bei Baphomets Fluch
Super!
Danke dir.
Nur noch eine klitze kleine Sache.
Der Mouse-Mode verändert sich nun immer, wenn ich in der Nähe des Bildschirmrandes bin. Auch, wenn es gar nicht mehr weiter geht. Wie könnte ich es anstellen, dass sich der Cursor nur dann verwandelt, wenn es auch wirklich weitergeht?
Danke dir.
Nur noch eine klitze kleine Sache.
Der Mouse-Mode verändert sich nun immer, wenn ich in der Nähe des Bildschirmrandes bin. Auch, wenn es gar nicht mehr weiter geht. Wie könnte ich es anstellen, dass sich der Cursor nur dann verwandelt, wenn es auch wirklich weitergeht?
- KhrisMUC
- Adventure-Gott
- Beiträge: 4674
- Registriert: 14.03.2005, 00:55
- Wohnort: München
Re: "Sidescrolling" wie bei Baphomets Fluch
Mit GetViewPortX/Y() bekommt man den Raum-Pixel, der sich links oben auf dem Screen befindet.
Probiers mal selbst.
Um in der if-Bedingung zwei Checks zu verknüpfen, benutze && (logisches UND).
Probiers mal selbst.
Um in der if-Bedingung zwei Checks zu verknüpfen, benutze && (logisches UND).
Use gopher repellent on funny little man
-
- Hobby-Archäologe
- Beiträge: 177
- Registriert: 12.11.2009, 22:20
- Kontaktdaten:
Re: "Sidescrolling" wie bei Baphomets Fluch
Also ich habs versucht. Ich habe erreicht, dass der Cursor sich nicht mehr verändert, wenn es im Raum links nicht mehr weitergeht, aber nicht wenns rechts nimmer weitergeht . Bei der rechten Seite hatte ich deswegen meine Probleme, weil die Raumbreite ja nicht immer gleich ist. Ich habs mit "GetViewportX()<Room.Width" versucht, hat aber nicht geklappt .
Code: Alles auswählen
int breite = 10; // hier die Breite des Bereichs eintragen
if (Room.Width > System.ViewportWidth && (GetViewportX()>1)) {
if (mouse.x < breite) {
if (mouse.Mode != eModeLeftGo) mouse.Mode = eModeLeftGo;
}
else if (mouse.x > System.ViewportWidth-(1+breite) && (GetViewportX()<Room.Width)) {
if (mouse.Mode != eModeRightGo) mouse.Mode = eModeRightGo;
}
else {
mouse.Mode = eModeWalkto;
}