Hauptmenü

Neuigkeiten:

Bitte unterstützt uns und bestellt über diese Links bei Amazon  oder HumbleBumble!

Raum teilweise sichtbar

Begonnen von SeltsamMitHut, 27. Oktober 2008, 20:29:42

Vorheriges Thema - Nächstes Thema

SeltsamMitHut

Hiho!

Hier mein (hoffentlich) kleines AGS-Problem:
Ein Raum soll anfänglich nur zu einem gewissen Teil sichtbar sein (z.B. die ersten 400 Pixel von 500 gesamt). Das heißt, dass die Kamera dem Charakter nur bis zu einer gewissen X-Koordinate nachscrollt, dann aber stoppen. Der Rest des Raumes soll später zu sehen sein (die Kamera scrollt dann weiter, die ganzen 500 Pixel).

Frage: Gibt es einen Befehl, der die Kamera in einem Raum nur bis zu einem gewissen Punkt scrollen lässt?
Meine Idee wäre, das Scrollen in dem Raum einfach ganz zu deaktivieren und immer die Viewport auf die Koordinaten des Charakters zu setzen, sodass man immer nur überprüfen muss, ob seine X-Koordinate unter 400 liegt. Aber vielleicht gibt es ja eine komfortablere Möglichkeit. ;)

Schon mal vielen Dank für eure Hilfe! :)
"komm her, süßer, willst du was essen?"

KhrisMUC

bool alles_scrollen;   // ist anfangs false

function set_camera() {
  int x = player.x - 160;
  if (x < 0) x = 0;
  if (!alles_scrollen) if (x > 80) x = 80;
  else if (x > 180) x = 180;
  SetViewport(x, 0);
}

// room's before fade_in
  set_camera();

// room's rep_ex event function
  set_camera();


Nicht getestet!

NsMn

#2

if(alles_scrollen){
if(GetViewPortX >= 400){
SetViewport(400,GetViewPortY)
}
else ReleaseViewPort();
}


So vllt?

Edison Interactive

Zitat von: edna_mausi in 28. Oktober 2008, 15:09:06
Würde nicht einfach

if(alles_scrollen){
if(GetViewPortX >= 400){
SetViewport(400,GetViewPortY)
}
}


bei rep_execute reichen?

Danach würde er gar nicht mehr zurück nach links scrollen.

NsMn

Zitat von: edna_mausi in 28. Oktober 2008, 15:09:06

if(alles_scrollen){
if(GetViewPortX >= 400){
SetViewport(400,GetViewPortY)
}
else ReleaseViewPort();
}


So vllt?
Verdammt,editiert statt zitiert.Mist.

KhrisMUC

edna_mausi, warum postest du 16 Stunden später Code, der weder von der Syntax noch von der Funktion passt, obwohl SeltsamMitHut noch nichts geantwortet hat...?

Mister L

Vielleicht ist es keine elegante Lösung, aber könnte man nicht einfach die Walkable-Area kürzen, so dass die Figur nur bis zum gewünschten Bildausschnitt gehen kann?  ???

Edison Interactive

#7
Zitat von: Mister L in 29. Oktober 2008, 08:19:46
Vielleicht ist es keine elegante Lösung, aber könnte man nicht einfach die Walkable-Area kürzen, so dass die Figur nur bis zum gewünschten Bildausschnitt gehen kann?  ???

Die betreffende Walkable Area müsste 120 Pixel vor dem gewünschten Rand enden. Dann könnte man ja noch eine andere machen. Und nur wenn der Spieler auf der ersten Area ist, dann wird gescrollt. Das müsste auch gehen.

@edna_mausi: Auch dann scrollt er nicht zurück, weil der Viewport auf x=400 gesetzt wurde. Danach ist die Abfrage immer wahr.

SeltsamMitHut

Viele Dank für eure Hilfe. :)
Der Code von KrisMUC funktioniert super. Es gibt nur ein kleines Problem: Wenn die Kamera mit dem gehenden Charakter mitscrollt und man ihn dann mit "Gehe zu" woanders hinschickt, "zuckt" das Bild. Es sieht aus als würde der Charakter leicht nach hinten zucken, obwohl das wohl eher an dem Setzen der Kamera liegt. Sobald nicht gescrollt wird taucht der Fehler auch nicht auf. :-\
"komm her, süßer, willst du was essen?"

KhrisMUC

Bei solchen Fehlern empfiehlt es sich oft, das Spiel mal mit einer neueren AGS-Version zu testen. Oft sind solche Kleinigkeiten bereits behoben.
Falls Du also noch mit 2.72 arbeitest, probiers einfach mal aus.

1mal_volltanken

Hallo!

Über "Regions" müsste sowas ja theoretisch auch umsetzbar sein, oder?

Mir ist da noch insbesondere bei der Episode "Helden des Tages" aufgefallen, wo sogar ein Scrolling von oben nach unten und umgekehrt eingebaut ist.
Da hätte ich allerdings jetzt keine Idee, wie das funktionieren könnte.  ;)

BG der Volltanker
"Tage sind eigentlich wie Nächte...nur nicht ganz so spät!"...hörte ich einmal einen sehr klugen, alten Mann beim Erdnüsse sortieren in der Kneipe sagen, kurz bevor er vom Hocker rutschte.


"Nicht jeder, der aus dem Rahmen fällt, war vorher im Bilde!"

NsMn

Warum?Scrolling von oben nach unten funktioniert auch nicht anders wie Scrolling von links nach rechts,nur in andere Richtungen.

1mal_volltanken

Von oben nach unten bzw. umgekehrt tauchen aber andere Probleme auf, wegen der Bildschirmaufteilung (Interface), etc. ;)

BG
der Volltanker
"Tage sind eigentlich wie Nächte...nur nicht ganz so spät!"...hörte ich einmal einen sehr klugen, alten Mann beim Erdnüsse sortieren in der Kneipe sagen, kurz bevor er vom Hocker rutschte.


"Nicht jeder, der aus dem Rahmen fällt, war vorher im Bilde!"

NsMn

Wieso?das einzige,dass man tun muss,ist die schwarzen Balken wieder an den unteren bzw. oberen ´Rand der Hintergründe zu tun.