scrollen

Das Board für Schwierigkeiten beim Adventure-Machen und zum Melden von Bugs
Post Reply
Motteck
Tutorial Reader
Posts: 50
Joined: 29 Apr 2009, 21:22

scrollen

Post: # 74766Post Motteck
02 Dec 2009, 22:23

Tach auch,

mal ne frage zum scrollen. möcht in meiner map hoch und runter scrollen,kein char. Solbald die mouse am unteren bildschirmrand ist solls scrollen und sobald die mouse am rand weg ist solls aber auf höhren zuscollen. und nicht weiter scrollen!

wollte so vorgehen;

2 dummys erstellt ( oben und unten)

in einem dummy dann;


on (mouse)
{
setpos ( Raum;0 ;0 )
scrollspeed (4)
}

on (mouseout)

....?



nur wie bring ich den beim verlassen des dummys zum stoppen?
jemand n tipp oder alternative?

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

Post: # 74767Post Zimond
03 Dec 2009, 00:05

setpos (deinraum ; [roomx:deinraum] ; [roomy:deinraum] ; true)

sollte funktionieren

Motteck
Tutorial Reader
Posts: 50
Joined: 29 Apr 2009, 21:22

Post: # 74769Post Motteck
03 Dec 2009, 00:51

hmm der scrollt beim moveout "sofort" wieder nachoben...

hier nochmal mein "dummy unten" script:

on (mouse)

{
setpos ( Zentrale;0 ;786 ;false)
scrollspeed (4)
}

on (mouseout)
{
setpos (zentrale ; [roomx:zentrale] ; [roomy:zentrale] ; true)
}

oder hab ich was falsch verstanden?

Baelavay
PaC-DK God
Posts: 1168
Joined: 04 Jun 2006, 19:24
Contact:

Post: # 74771Post Baelavay
03 Dec 2009, 09:28

Merkwürdig, das schaut ja aus, als wenn beim on(mouseout) für die Variablen [roomx:zentrale] und [roomy:zentrale] nicht die aktuellen Werte abgelesen werden, sondern wie sie vor dem setpos() im on(mouse) waren.

Woran das liegen mag weiß ich nicht, aber da es sich ja nur um eine rein vertikale Bewegung handelt (es wird nur der Y-Wert beim setpos() verändert), könntest du dir vielleicht mit folgendem Workaround behelfen:

Function "scroll zentrale":

Code: Select all

if_num(roomy:zentrale;786)
  stopfunction(scroll zentrale)
setpos(Zentrale;0;+1;true)
"dummy unten" Skript:

Code: Select all

on(mouse)
  function(scroll zentrale)

on(mouseout)
  stopfunction(scroll zentrale)
Btw: Gab es nicht mal on(mouseover)? Wurde das entfernt? Ich habe es nämlich im Handbuch nicht mehr gefunden...

Schiman
PaC-DK God
Posts: 1177
Joined: 20 Dec 2006, 21:48
Contact:

Post: # 74772Post Schiman
03 Dec 2009, 10:33

Welchen Sinn würde on(mouseover) denn machen? on(mouse) erfüllt doch genau diese Funktion.

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

Post: # 74773Post Zimond
03 Dec 2009, 11:53

Merkwürdig, das schaut ja aus, als wenn beim on(mouseout) für die Variablen [roomx:zentrale] und [roomy:zentrale] nicht die aktuellen Werte abgelesen werden, sondern wie sie vor dem setpos() im on(mouse) waren.
ich war mir dessen auch nicht mehr ganz sicher aber die variante immer +1 vorwärts zu gehen hätte ich auch als zweites angeboten

Motteck
Tutorial Reader
Posts: 50
Joined: 29 Apr 2009, 21:22

Post: # 74774Post Motteck
03 Dec 2009, 11:59

das hatte ich auch schon probiert.. will aber nicht, der bildschirm fängt nur an zu flakern sobald ich über den dummy geh...

Edit: flakern hat sich erledigt hatte nen tipp fehler...
passiert aber nun folgendes bei on mouse:

die map geht einmal +1 (schonmal gut ) aber dann passiert nix
geh ich noch mal on mouse scrollt der dann ganz nach unten..

if_num(roomy:zentrale;768)
stopfunction(down)

setpos(Zentrale;0;+1;true)

Baelavay
PaC-DK God
Posts: 1168
Joined: 04 Jun 2006, 19:24
Contact:

Post: # 74778Post Baelavay
03 Dec 2009, 13:59

Schiman wrote:Welchen Sinn würde on(mouseover) denn machen? on(mouse) erfüllt doch genau diese Funktion.
Wahrscheinlich habe ich das on(mouseover) einfach verwechselt, aber ich hatte gedacht, dass es das mal gegeben hätte und bewirkt hätte, dass die ausgelösten Ereignisse nach Wegbewegen des Cursors wieder zurückgesetzt würden.
Motteck wrote:die map geht einmal +1 (schonmal gut ) aber dann passiert nix
Ich glaube ich weiß wieso... ich hatte dir folgendes Skript für "dummy unten" gegeben:

Code: Select all

on(mouse)
  function(scroll zentrale)

on(mouseout)
  stopfunction(scroll zentrale)
Es ist aber von großer Bedeutung, dass die Function nicht nur einmal abläuft. Du musst sie daher infinite starten, also musst du schreiben function(scroll zentrale;*). Dieses Detail hatte ich übersehen, macht aber im Skript einen großen Unterschied. Programmieren ist schon so eine Haarspalterei ;)

Motteck
Tutorial Reader
Posts: 50
Joined: 29 Apr 2009, 21:22

Post: # 74783Post Motteck
03 Dec 2009, 15:43

klappt leider immernoch nicht....

werd das mit dem scrollen erstmal umgehen...

ein "stopscrollen" befehl wär super :-)

Post Reply