Autor Thema: Raum teilweise sichtbar  (Gelesen 4150 mal)

SeltsamMitHut

  • Dott-MMM-Entwickler
  • Teenie Tentakel
  • **
  • Beiträge: 259
  • Geschlecht: Männlich
    • Profil anzeigen
    • E-Mail
Raum teilweise sichtbar
« am: 27. Oktober 2008, 20:29:42 »
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

  • Moderator
  • volljähriger Tentakel
  • *****
  • Beiträge: 988
    • Profil anzeigen
Re: Raum teilweise sichtbar
« Antwort #1 am: 27. Oktober 2008, 23:00:37 »
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

  • Midlife Crisis Tentakel
  • ******
  • Beiträge: 1646
  • Geschlecht: Männlich
  • überzeugter Paint-Nutzer
    • ICQ Messenger - 404385098
    • Profil anzeigen
    • E-Mail
Re: Raum teilweise sichtbar
« Antwort #2 am: 28. Oktober 2008, 15:09:06 »

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

So vllt?
« Letzte Änderung: 28. Oktober 2008, 16:20:39 von edna_mausi »

Edison Interactive

  • kleiner Tentakel
  • ***
  • Beiträge: 103
    • Profil anzeigen
Re: Raum teilweise sichtbar
« Antwort #3 am: 28. Oktober 2008, 16:18:34 »
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

  • Midlife Crisis Tentakel
  • ******
  • Beiträge: 1646
  • Geschlecht: Männlich
  • überzeugter Paint-Nutzer
    • ICQ Messenger - 404385098
    • Profil anzeigen
    • E-Mail
Re: Raum teilweise sichtbar
« Antwort #4 am: 28. Oktober 2008, 16:21:10 »

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

So vllt?
Verdammt,editiert statt zitiert.Mist.

KhrisMUC

  • Moderator
  • volljähriger Tentakel
  • *****
  • Beiträge: 988
    • Profil anzeigen
Re: Raum teilweise sichtbar
« Antwort #5 am: 29. Oktober 2008, 04:44:19 »
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

  • Boss der T.I.A.
  • Globaler Moderator
  • Ehrwürdiger Tentakel
  • *****
  • Beiträge: 3106
  • Geschlecht: Männlich
  • "R.I.P. Clever & Smart † 1958 -2023"
    • Profil anzeigen
    • Maniac Mansion - Night of the Meteor
Re: Raum teilweise sichtbar
« Antwort #6 am: 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?  ???

Edison Interactive

  • kleiner Tentakel
  • ***
  • Beiträge: 103
    • Profil anzeigen
Re: Raum teilweise sichtbar
« Antwort #7 am: 29. Oktober 2008, 11:04:30 »
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.
« Letzte Änderung: 29. Oktober 2008, 11:06:34 von Edison Interactive »

SeltsamMitHut

  • Dott-MMM-Entwickler
  • Teenie Tentakel
  • **
  • Beiträge: 259
  • Geschlecht: Männlich
    • Profil anzeigen
    • E-Mail
Re: Raum teilweise sichtbar
« Antwort #8 am: 29. Oktober 2008, 16:08:32 »
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

  • Moderator
  • volljähriger Tentakel
  • *****
  • Beiträge: 988
    • Profil anzeigen
Re: Raum teilweise sichtbar
« Antwort #9 am: 29. Oktober 2008, 17:09:00 »
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

  • Midlife Crisis Tentakel
  • ******
  • Beiträge: 1243
  • Geschlecht: Männlich
  • Traue niemals einem glatzköpfigen Friseur!
    • ICQ Messenger - 327646596
    • Profil anzeigen
Re: Raum teilweise sichtbar
« Antwort #10 am: 29. Oktober 2008, 22:22:06 »
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

  • Midlife Crisis Tentakel
  • ******
  • Beiträge: 1646
  • Geschlecht: Männlich
  • überzeugter Paint-Nutzer
    • ICQ Messenger - 404385098
    • Profil anzeigen
    • E-Mail
Re: Raum teilweise sichtbar
« Antwort #11 am: 30. Oktober 2008, 16:07:07 »
Warum?Scrolling von oben nach unten funktioniert auch nicht anders wie Scrolling von links nach rechts,nur in andere Richtungen.

1mal_volltanken

  • Midlife Crisis Tentakel
  • ******
  • Beiträge: 1243
  • Geschlecht: Männlich
  • Traue niemals einem glatzköpfigen Friseur!
    • ICQ Messenger - 327646596
    • Profil anzeigen
Re: Raum teilweise sichtbar
« Antwort #12 am: 30. Oktober 2008, 17:56:50 »
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

  • Midlife Crisis Tentakel
  • ******
  • Beiträge: 1646
  • Geschlecht: Männlich
  • überzeugter Paint-Nutzer
    • ICQ Messenger - 404385098
    • Profil anzeigen
    • E-Mail
Re: Raum teilweise sichtbar
« Antwort #13 am: 30. Oktober 2008, 19:10:47 »
Wieso?das einzige,dass man tun muss,ist die schwarzen Balken wieder an den unteren bzw. oberen ´Rand der Hintergründe zu tun.