Zoom aus Background herraus?

Fragen zu "Adventure Game Studio"? Hier rein!
Antworten
Benutzeravatar
Find dA real
Hobby-Archäologe
Hobby-Archäologe
Beiträge: 233
Registriert: 28.12.2005, 00:16

Zoom aus Background herraus?

Beitrag von Find dA real »

Bißchen schwer zu erklären ich will das aus einem kleinem Bild ein größeres wird.

Ich habe mal ein Bild angehangen um zu zeigen was ich meine.
Gedacht ist das man ein großes bild hat udn wenn man an der stelle steht das bild herrangezoomt wird (siehe pic).

Bild
Sorry für das Große Pic:

Wie setze ich das Scripttechnisch um? Finde keine iroom funktion (ähnlich iframe). oder deratiges.
Benutzeravatar
Mister L
Rätselmeister
Rätselmeister
Beiträge: 1913
Registriert: 21.03.2005, 01:55
Kontaktdaten:

Beitrag von Mister L »

Ich hab zwar keine Patent-Lösung, aber bei dem Bild dürfte das 1. Problem sein, dass dein End-Bild in 320x200 sehr pixelig sein dürfte.
Ich könnte mir vorstellen, dass man diesen Effekt über einige animierte Backgrounds hinbekommen könnte... :-k
My MMM-Episodes: #7 "Right said Fred", #32 "Secret of Maniac Mansion", # 33 "Carry on Smiley", H05 "Escape from Maniac Mansion", #45 "Maniac Monday", #54 "CSI:RONVILLE", #58 "The People's Court", #70 "Maniac Mansion Begins", #74 "The Curse of King RootenTooten", #93 "Murder a.t. Moonshine Mansion"
Benutzeravatar
KhrisMUC
Adventure-Gott
Adventure-Gott
Beiträge: 4674
Registriert: 14.03.2005, 00:55
Wohnort: München

Beitrag von KhrisMUC »

Nimm ein Objekt und animiere es. Vorteil: weicher Zoom möglich / keine verpixelte Großansicht.

Oder benutze die RawDraw-Funktionen: Vorteil: gezoomt wird automatisch, aber verpixelt.

Code: Alles auswählen

function zoom(int x1, int y1, int x2, int y2) {
  DynamicSprite*ds=DynamicSprite.CreateFromBackground(x1, y1, x2, y2);
  int i=101; // Zoomfaktor
  int x; int y; int w; int h;

  while (i<=200) {   // auf doppelte Größe
    w=(ds.Width*i)/100;
    h=(ds.Height*i)/100;
    x=x1-(w-ds.Width)/2;
    y=y1-(h-ds.Height)/2;
    RawDrawImageResized(x, y, ds.Graphic, w, h);
    Wait(1);
    i++;
  }
  ds.Delete();
}
Man kann die Funktion natürlich noch anpassen, z.B. auf einen beliebigen Endfaktor zoomen, gleichzeitiges Verschieben, etc.
Use gopher repellent on funny little man
Benutzeravatar
Find dA real
Hobby-Archäologe
Hobby-Archäologe
Beiträge: 233
Registriert: 28.12.2005, 00:16

Beitrag von Find dA real »

Danke ich werde denke es so machen das ich das Objekt Animiere - ist zwar deutlich mehr arbeit als ich ursprünglich gedacht habe - aber es hat den großen Vorteil das es nicht ganz so verpixelt ist.
Benutzeravatar
Ghost
Frischling
Frischling
Beiträge: 1
Registriert: 21.12.2006, 18:33

Beitrag von Ghost »

Das geht sogar noch einfacher; SSH hat da vor einiger Zeit ein Plugin geschrieben. Hieß ZoomInOut oder so ähnlich- schau auf den Boards einfach mal im Technical Archive nach, da wirst du sicher fündig.
Antworten