moveobj() mit negativen Werten

Das Board für Schwierigkeiten beim Adventure-Machen und zum Melden von Bugs
Post Reply
Novel
PaC-DK Newby
Posts: 16
Joined: 05 Feb 2011, 23:06
Contact:

moveobj() mit negativen Werten

Post: # 77824Post Novel
05 Feb 2011, 23:18

Moin,

ich habe ein Problem mit dem Befehl moveobj(). In meinem Raum sollen zwei schöne Meereswellen (sehen aus wie auf Pappe ausgeschnitten) als Objekte im Vordergrund hin- und herfahren. Der Screen ist 640*480, Das Objekt "Welle1" ist 1040 pixel breit, damit 400 Pixel zum Verschieben da sind. Es befindet sich in der Ausgangsposition 0,286. Mein Code sieht so aus:

on (loop1)
{
moveobj (welle1;-450;286;9)
wait (0,2)
moveobj (welle1;0;286;9)
wait (0,2)
}

Meiner Logik nach müsste jetzt das Objekt aus dem Bildschirm teilweise rausfahren und dann wieder zurück an seine Ausgangsposition. Aber es funktioniert nicht. Es fährt einfach nur *komplett* raus und kommt dann auch nicht wieder... Ich habe die letzen zwei Stunden per Trial and Error alles mögliche versucht und finde absolut kein Muster, wie der moveobj()-Befehl funktioniert. :-( Hilfe.

Edit: Ok, ich habe alle Savegames gelöscht. Jetzt fährt das Objekt nicht mehr komplett raus, aber die Bewegung ist nur etwa 50 Pixel breit, egal, welche X-Werte ich einstelle...
Last edited by Novel on 05 Feb 2011, 23:29, edited 1 time in total.

Zimond
Der Engine Papa
Posts: 3420
Joined: 06 Apr 2003, 19:34
Location: Krefeld
Contact:

Re: moveobj() mit negativen Werten

Post: # 77825Post Zimond
05 Feb 2011, 23:20

das liegt an dem Unterschied zu relativen und absoluten Positionen in der Art wie sie die PACDK Skriptsprache unterscheidet :

Wenn x zuvor 500 wäre :


setnum (x ; -450)
ist x danach 50. Aber bei :

setnum (x; 0-450)
ist x -450 wie gewünscht.

Kurz zum merken : Fängt es mit einem Rechenzeichen an ist es relativ zum aktuellen wert. Beginnt es ohne Zeichen mit Zahlen wird es als absoluter Punkt erkannt, daher der Trick mit der Null.
Image

Novel
PaC-DK Newby
Posts: 16
Joined: 05 Feb 2011, 23:06
Contact:

Re: moveobj() mit negativen Werten

Post: # 77826Post Novel
05 Feb 2011, 23:44

Ok, danke. Das werde ich wahrscheinlich noch brauchen - jetzt habe ich das Problem gerade noch auf andere Art gelöst: Ich musste einfach den Wert bei Wait ausreichend groß setzen, in diesem Fall auf 4 Sekunden. Dann funktioniert der Code und ich hab ne schöne Welleanimation. :-)

Novel
PaC-DK Newby
Posts: 16
Joined: 05 Feb 2011, 23:06
Contact:

Cutscene aus Textscene heraus starten

Post: # 77828Post Novel
06 Feb 2011, 13:51

Mahlzeit die Herren,

nächstes Problem:

Es gelingt mir nicht, meine Cutscene, die im Charakter-Script wunderbar funktioniert, aus einer Textscene heraus zu starten.

Der Code sieht so aus:

Code: Select all

level (1)
 {
  row (1;Are we there yet?;true)
  {
   speech (Kareem;Are we there yet?)
   if_bool (motor_repariert_TGI;true)
   {
   speech (Browallia;Test)
   cutscene (test)
   cutscene (explaingps)
   endscene ()
   }
   speech (Browallia;No.)
   speech (Browallia;Help TGI with the sound engine.)
  }
Cutscene (test) beinhaltet nur einen einzigen Speechbefehl, die andere cutscene ist komplexer. Kommt aber beides nicht.
Witzigerweise wird das endscene() *nach* dem letzten Speechbefehl ausgeführt.

Ersetze ich cutscene() durch function() wird das Skript endlich aufgerufen, aber natürlich passiert dann alles gleichzeitig.

japanhonk
PaC-DK God
Posts: 1716
Joined: 05 Feb 2009, 20:36
Location: NRW
Contact:

Re: moveobj() mit negativen Werten

Post: # 77829Post japanhonk
06 Feb 2011, 16:10

Sehe so auf den ersten Blick keine Fehler in der textscene, benutze sowas aber nur sehr selten und hab daher weniger routine damit...

Hast du schon mal ausprobiert, was passiert, wenn du folgenden Befehl
mal zu testen weglässt ?

cutscene (explaingps)

Evtl versuche mal, die cutscene per dev-mode zu starten.
Vielleicht kannst du die zweite cutscene aus der ersten hersus starten oder
dort einbinden.
Ein break () Befehl könnte darin auch helfen.
Last edited by japanhonk on 06 Feb 2011, 18:44, edited 1 time in total.
Es gibt 10 Arten von Usern :
die, die Binärcode verstehen und die, die es nicht tun....
----------------------------------------------------------
STAR TREK FYNE :
http://www.fynegames.homepage.t-online.de

Novel
PaC-DK Newby
Posts: 16
Joined: 05 Feb 2011, 23:06
Contact:

Re: moveobj() mit negativen Werten

Post: # 77831Post Novel
06 Feb 2011, 18:25

Ich habe den Fehler gefunden! :banana: Der Code muss so aussehen:

Code: Select all

level (1)
 {
  row (1;blabla;true)
   {
     if_bool (x;true) 
     {
     endscene()
     cutscene (namedercutscene)
     break()
     }
     speech (char;blabla)
   }
 }
Also erst die textscene beenden, bevor man eine cutscene startet. Danach kann man ja wieder ins Gespräch zurückspringen. Und der Tipp mit dem break() war richtig. Danke!

japanhonk
PaC-DK God
Posts: 1716
Joined: 05 Feb 2009, 20:36
Location: NRW
Contact:

Re: moveobj() mit negativen Werten

Post: # 77832Post japanhonk
06 Feb 2011, 18:49

Ich habe einen endscene Befehl auch mal direkt in eine der cutscenes geschrieben. Ob das nötig ist, will ich gar nicht mal behaupten, aber
anscheinend war es auch nicht verkehrt... : :lol:
Es gibt 10 Arten von Usern :
die, die Binärcode verstehen und die, die es nicht tun....
----------------------------------------------------------
STAR TREK FYNE :
http://www.fynegames.homepage.t-online.de

Post Reply