Objekt Bewegungseffekt
Objekt Bewegungseffekt
Hallo Leute,
ich bastel an einem Game rum (was auch sonst?!) und habe einen Hänger was diesen Effekt angeht.
Ich will einen Planeten im unteren Bereich habe und darüber ein großes Raumschiff als Objekt, das sich hin und her bewegt, wenn ich die Maus bewege. Aber nicht an den Mauszeiger verknüpft, das bekomme ich hin, es soll sich nur um einige Punkte bewegen, so als würde es schweben.
Jemand ne Idee wie ich das mit moveobj und xmouse umsetzen könnte?
Oder gibt es im Tutorial Game so eine Option, da habe ich noch nicht reingeschaut?
ich bastel an einem Game rum (was auch sonst?!) und habe einen Hänger was diesen Effekt angeht.
Ich will einen Planeten im unteren Bereich habe und darüber ein großes Raumschiff als Objekt, das sich hin und her bewegt, wenn ich die Maus bewege. Aber nicht an den Mauszeiger verknüpft, das bekomme ich hin, es soll sich nur um einige Punkte bewegen, so als würde es schweben.
Jemand ne Idee wie ich das mit moveobj und xmouse umsetzen könnte?
Oder gibt es im Tutorial Game so eine Option, da habe ich noch nicht reingeschaut?
Re: Objekt Bewegungseffekt
Hi,
- Mauszeigerposition abfragen ( mousex/mousey) in Zwischenvariable speichern ( zum Vergleichen )
-Objektposition abfragen ( x_obj/y_obj)
-Bei Änderung der Mauszeigerposition die Objektkoordinaten per setnum verändern und dann per moveobj bewegen.
ggf in einer loopenden Funktion, die das Schiff zu Koordinate A schickt, auf deren Erreichen prüft und dann wieder zurück.
Oder :
Bei Änderung der Mauszeigerposition : Änderung in 2. Objektzustand, in der das Raumschiff in den 30 Frames etwas versetzt angezeigt wird, sich also bewegt und am Ende per Frameskritpt wieder auf 1 gesetzt wird
Ich würde Variante 2 bevorzugen. Ist einfacher, wenn es nur ein paar Pixel bewegt werden soll.
ifnot_num (mousex;[mousex1])
setobj ( Raumschiff;2)
Gruß
Manni
- Mauszeigerposition abfragen ( mousex/mousey) in Zwischenvariable speichern ( zum Vergleichen )
-Objektposition abfragen ( x_obj/y_obj)
-Bei Änderung der Mauszeigerposition die Objektkoordinaten per setnum verändern und dann per moveobj bewegen.
ggf in einer loopenden Funktion, die das Schiff zu Koordinate A schickt, auf deren Erreichen prüft und dann wieder zurück.
Oder :
Bei Änderung der Mauszeigerposition : Änderung in 2. Objektzustand, in der das Raumschiff in den 30 Frames etwas versetzt angezeigt wird, sich also bewegt und am Ende per Frameskritpt wieder auf 1 gesetzt wird
Ich würde Variante 2 bevorzugen. Ist einfacher, wenn es nur ein paar Pixel bewegt werden soll.
ifnot_num (mousex;[mousex1])
setobj ( Raumschiff;2)
Gruß
Manni
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
die, die Binärcode verstehen und die, die es nicht tun....
----------------------------------------------------------
STAR TREK FYNE :
http://www.fynegames.homepage.t-online.de
Re: Objekt Bewegungseffekt
Super, danke!
Versuche ich nachher mal und gebe Info. Na vielleicht werde ich auch qualvoll jammern, weil ich es nicht hin bekomme.
Ach, machen wir uns nichts vor, es wird Geheule und Gejammer geben...
Versuche ich nachher mal und gebe Info. Na vielleicht werde ich auch qualvoll jammern, weil ich es nicht hin bekomme.
Ach, machen wir uns nichts vor, es wird Geheule und Gejammer geben...
Re: Objekt Bewegungseffekt
OK, ich taste mich langsam ran, habe aber wohl eine Denkblockade.
Folgendes Skript macht schon mal das, was ich will:
Allerdings ist das natürlich an den Mittelpunkt des Bildschirms gebunden. Es soll ja so sein, als würde das Schiff dem Mauszeiger folgen (nach links und rechts). Habe zwar versucht Manni´s Anregung (Option 1) umzusetzen, komm aber damit nicht weiter. Ideen?
Folgendes Skript macht schon mal das, was ich will:
Code: Select all
on (loop1)
{
setnum (Maus; [mousex])
if_num (Maus; <672)
moveobj (Schiff; 100; 150; 8; wait)
if_num (Maus; >672)
moveobj (Schiff; 300; 150; 8; wait)
}
Re: Objekt Bewegungseffekt
Ich habe zwar keine Ahnung, was dir ein Screenshot dabei helfen kann, aber bitte...
Re: Objekt Bewegungseffekt
ok, ich hatte jetzt was kleineres gedacht, aber egal.
Ich verstehs aber leider trotzdem nicht ganz. Wenns nur so aussehen soll als ob es schebt, also eine leichte Bewegung, warum dann überhaupt die Maus einbeziehen und nicht einfach so eine geloopte Bewegung scripten? Wenn das Raumschiff verschiedenen Punkten auf dem Planeten folgen soll würde es doch reichen diese Punkte mit einem on(mouse) auszustatten, dass dann das Raumschiff dort hin schickt.
Ich verstehs aber leider trotzdem nicht ganz. Wenns nur so aussehen soll als ob es schebt, also eine leichte Bewegung, warum dann überhaupt die Maus einbeziehen und nicht einfach so eine geloopte Bewegung scripten? Wenn das Raumschiff verschiedenen Punkten auf dem Planeten folgen soll würde es doch reichen diese Punkte mit einem on(mouse) auszustatten, dass dann das Raumschiff dort hin schickt.
-
- Experienced PaC-DK User
- Posts: 561
- Joined: 07 Sep 2011, 21:33
- Location: In der Ortenau
- Contact:
Re: Objekt Bewegungseffekt
Ich verstehs auch net so ganz xD Wenn dus an die Maus koppeln willst, dann ist dein gepostete skript doch gar net schlecht? fliegt das Raumschiff nach links, wenn die Maus links ist und nach rechts, wenn die Maus rechts ist. Was gefällt dir daran nicht ?
Re: Objekt Bewegungseffekt
Ersetz den x-wert von den beiden "moveobj" mit deiner variablen"[maus]".
Wenn dir die beschleunigung fehlt, damit es besser aussieht, kannst du eine infinit funktion erstellen, die einfach das raumschiff um zb 50% der entfernung des raumschiffes zur mausx position bewegt. Mit einem "wait" befehl zu beginn dieser funktion kannst du das ganze feintunen.
(asymptoten erreichen deine mausxpos nie, aber du möchtest ja anscheinend nur einen guten effekt haben)
Wenn das dem entspricht was du möchtest, kannst du zusätzlich die y variable benutzen, damit das raumschiff nicht nur horizontal fliegt. Dazu entweder eine objektanimation mit verschiedenen höhen erstellen (BSDad) oder per (sinus-)Funktion arbeiten.
Wenn dir die beschleunigung fehlt, damit es besser aussieht, kannst du eine infinit funktion erstellen, die einfach das raumschiff um zb 50% der entfernung des raumschiffes zur mausx position bewegt. Mit einem "wait" befehl zu beginn dieser funktion kannst du das ganze feintunen.
(asymptoten erreichen deine mausxpos nie, aber du möchtest ja anscheinend nur einen guten effekt haben)
Wenn das dem entspricht was du möchtest, kannst du zusätzlich die y variable benutzen, damit das raumschiff nicht nur horizontal fliegt. Dazu entweder eine objektanimation mit verschiedenen höhen erstellen (BSDad) oder per (sinus-)Funktion arbeiten.
Re: Objekt Bewegungseffekt
Ahhh!!! Jetzt hab ich erst kapiert, das ihr gar nicht verstanden habt, was ich wollte. Ok...
Das Raumschiff soll über dem Planeten schweben, wie gerade im Bild dargestellt, nur das der Planet noch fehlt.
Auf den Planeten kommen dann Button (als Objekte) die man anklicken kann. Dadurch kommt vom Raumschiff ein Strahl, mittels "Effect Lightning", um das Abbauen einer Ressource auf dem Planeten zu simulieren. Soweit ist das auch kein Problem.
Ich will der Szene etwas "Pepp" geben, indem sich das Raumschiff entweder selber ein wenig hin und her bewegt, oder eben dann um einige Walkmappunkte nach links oder rechts bewegt, wenn ich die Maus bewege. Bei der jetzigen Umsetzung bin ich an den Mittelpunkt gebunden (sprich X-Achse 672), also ist die Maus kleiner als 672 gehts nach links, ist sie größer als 671 gehts nach rechts.
Da hätte ich gerne etwas mehr Dynamik drin, also das er bei 672 20 Punkte geht, und bei 600 nochmal 20 und so weiter. Das bekäme ich auch mit dem kopieren der Formel sicher hin, aber es sieht doof aus. Da muss es doch was eleganteres geben. Bin zudem gerade am Testadventure am klauen, hilft aber noch nicht so. Es fällt mir selber gerade schwer das zu erklären...
@Mcrip28: danke für die Anregungen, aber offen gesagt, ich kenne zwar die Worte, aber habe nur die Hälfte verstanden. Dazu bin ich doch noch zu viel Noob im Skripten.
Das Raumschiff soll über dem Planeten schweben, wie gerade im Bild dargestellt, nur das der Planet noch fehlt.
Auf den Planeten kommen dann Button (als Objekte) die man anklicken kann. Dadurch kommt vom Raumschiff ein Strahl, mittels "Effect Lightning", um das Abbauen einer Ressource auf dem Planeten zu simulieren. Soweit ist das auch kein Problem.
Ich will der Szene etwas "Pepp" geben, indem sich das Raumschiff entweder selber ein wenig hin und her bewegt, oder eben dann um einige Walkmappunkte nach links oder rechts bewegt, wenn ich die Maus bewege. Bei der jetzigen Umsetzung bin ich an den Mittelpunkt gebunden (sprich X-Achse 672), also ist die Maus kleiner als 672 gehts nach links, ist sie größer als 671 gehts nach rechts.
Da hätte ich gerne etwas mehr Dynamik drin, also das er bei 672 20 Punkte geht, und bei 600 nochmal 20 und so weiter. Das bekäme ich auch mit dem kopieren der Formel sicher hin, aber es sieht doof aus. Da muss es doch was eleganteres geben. Bin zudem gerade am Testadventure am klauen, hilft aber noch nicht so. Es fällt mir selber gerade schwer das zu erklären...
@Mcrip28: danke für die Anregungen, aber offen gesagt, ich kenne zwar die Worte, aber habe nur die Hälfte verstanden. Dazu bin ich doch noch zu viel Noob im Skripten.
Re: Objekt Bewegungseffekt
on (loop1)
{
Setnum (hilfsvariable;[mousex]+672)
setnum (Faktor;2)
setnum (Geschwindigkeit;8)
setnum(zielposition;[hilfsvariable]/[Faktor])
moveobj (Schiff; [zielposition]; 150; [geschwindigkeit]; wait)
}
Öh so oder immer noch nicht? Den wert "Faktor" kannst du von "2" dann auf wunsch anpassen, ebenso die geschwindigkeit.
Edit: Sieht vielleicht noch besser aus wenn du das "wait" löschst.
{
Setnum (hilfsvariable;[mousex]+672)
setnum (Faktor;2)
setnum (Geschwindigkeit;8)
setnum(zielposition;[hilfsvariable]/[Faktor])
moveobj (Schiff; [zielposition]; 150; [geschwindigkeit]; wait)
}
Öh so oder immer noch nicht? Den wert "Faktor" kannst du von "2" dann auf wunsch anpassen, ebenso die geschwindigkeit.
Edit: Sieht vielleicht noch besser aus wenn du das "wait" löschst.
Re: Objekt Bewegungseffekt
Sau geil, hab es ausprobiert und es klappt im Grunde so wie ich wollte. Habe dein Skript etwas angepasst:
Allerdings fährt das Schiff beim laden des Raumes direkt an den linken Rand und erst dann bewegt es sich so wie ich will. Habe mit den Variablen gespielt, bekomm es aber noch nicht hin. Ne Idee wie ich das verhindern kann? Evtl. das Schiff an eine andere Position zu Beginn setzen?
Code: Select all
on (loop1)
{
setnum (hilfsvariable;[mousex]+672)
setnum (Faktor;20)
setnum (Geschwindigkeit;6)
setnum(zielposition;[hilfsvariable]/[Faktor])
moveobj (Schiff; [zielposition]; 150; [geschwindigkeit])
}
Re: Objekt Bewegungseffekt
1. Möglichkeit (einfachste):
Einfach -->VOR<-- dem "on(loop1)" folgendes schreiben:
Setnum(mousex;672)
2. Möglichkeit:
Du setzt vor das "on(loop1)" ein "wait(2)"
3. Möglichkeit:
Du startest deine loop-schleife erst, wenn der spieler mit der Maus die mitte überquert.
-------
Aber die 1. Variante ist wohl in ordnung fürs erste ^^
Einfach -->VOR<-- dem "on(loop1)" folgendes schreiben:
Setnum(mousex;672)
2. Möglichkeit:
Du setzt vor das "on(loop1)" ein "wait(2)"
3. Möglichkeit:
Du startest deine loop-schleife erst, wenn der spieler mit der Maus die mitte überquert.
-------
Aber die 1. Variante ist wohl in ordnung fürs erste ^^
Re: Objekt Bewegungseffekt
Ich konnte es nun auf dieses Minimum-Skript reduzieren:
Dadurch macht er das was er soll.
Dann habe ich das Raumschiff auf Position 0/150 gesetzt und damit die anfängliche Bewegung ausgeschaltet. Aber damit ist das Problem ja nicht gelöst. Alle Ansätze vor dir (Mcrip28) haben leider nicht geholfen.
Jetzt mal ohne Mist, es kotzt mich an, dass ich so eine einfache Sache einfach nicht einfach gelöst bekomme (Wahnsinns Satz!).
Code: Select all
0n (loop1)
{
setnum (zielposition;[mousex]/20)
moveobj (Schiff; [zielposition]; 150; 6)
}
Dann habe ich das Raumschiff auf Position 0/150 gesetzt und damit die anfängliche Bewegung ausgeschaltet. Aber damit ist das Problem ja nicht gelöst. Alle Ansätze vor dir (Mcrip28) haben leider nicht geholfen.
Jetzt mal ohne Mist, es kotzt mich an, dass ich so eine einfache Sache einfach nicht einfach gelöst bekomme (Wahnsinns Satz!).