Objekt Bewegungseffekt

Das Board für Schwierigkeiten beim Adventure-Machen und zum Melden von Bugs
Post Reply
Icebaer3
An Adventure Creator
Posts: 408
Joined: 19 Dec 2012, 20:15
Location: Koblenz

Objekt Bewegungseffekt

Post: # 83440Post Icebaer3
05 Oct 2016, 08:45

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?

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

Re: Objekt Bewegungseffekt

Post: # 83441Post japanhonk
05 Oct 2016, 11:16

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
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

Icebaer3
An Adventure Creator
Posts: 408
Joined: 19 Dec 2012, 20:15
Location: Koblenz

Re: Objekt Bewegungseffekt

Post: # 83442Post Icebaer3
05 Oct 2016, 12:13

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... :omg:

Icebaer3
An Adventure Creator
Posts: 408
Joined: 19 Dec 2012, 20:15
Location: Koblenz

Re: Objekt Bewegungseffekt

Post: # 83443Post Icebaer3
05 Oct 2016, 15:17

OK, ich taste mich langsam ran, habe aber wohl eine Denkblockade.

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)
  }
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?

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

Re: Objekt Bewegungseffekt

Post: # 83444Post Zimond
05 Oct 2016, 15:23

ein screenshot würde helfen
Image

Icebaer3
An Adventure Creator
Posts: 408
Joined: 19 Dec 2012, 20:15
Location: Koblenz

Re: Objekt Bewegungseffekt

Post: # 83445Post Icebaer3
05 Oct 2016, 17:22

Ich habe zwar keine Ahnung, was dir ein Screenshot dabei helfen kann, aber bitte...

Image

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

Re: Objekt Bewegungseffekt

Post: # 83446Post Zimond
05 Oct 2016, 17:39

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.
Image

DeinTroll
Experienced PaC-DK User
Posts: 561
Joined: 07 Sep 2011, 21:33
Location: In der Ortenau
Contact:

Re: Objekt Bewegungseffekt

Post: # 83447Post DeinTroll
06 Oct 2016, 00:47

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 ?
Image

Mcrip28
Tutorial Reader
Posts: 80
Joined: 17 Feb 2016, 22:08

Re: Objekt Bewegungseffekt

Post: # 83448Post Mcrip28
06 Oct 2016, 12:48

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.

Icebaer3
An Adventure Creator
Posts: 408
Joined: 19 Dec 2012, 20:15
Location: Koblenz

Re: Objekt Bewegungseffekt

Post: # 83450Post Icebaer3
06 Oct 2016, 14:28

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... :mmh:

@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. :pcprob:

Mcrip28
Tutorial Reader
Posts: 80
Joined: 17 Feb 2016, 22:08

Re: Objekt Bewegungseffekt

Post: # 83451Post Mcrip28
06 Oct 2016, 18:50

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.

Icebaer3
An Adventure Creator
Posts: 408
Joined: 19 Dec 2012, 20:15
Location: Koblenz

Re: Objekt Bewegungseffekt

Post: # 83452Post Icebaer3
06 Oct 2016, 20:24

Sau geil, hab es ausprobiert und es klappt im Grunde so wie ich wollte. Habe dein Skript etwas angepasst:

Code: Select all

on (loop1)
  {
 setnum (hilfsvariable;[mousex]+672)
 setnum (Faktor;20)
 setnum (Geschwindigkeit;6)
 setnum(zielposition;[hilfsvariable]/[Faktor])
 moveobj (Schiff; [zielposition]; 150; [geschwindigkeit])
  }
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?

Mcrip28
Tutorial Reader
Posts: 80
Joined: 17 Feb 2016, 22:08

Re: Objekt Bewegungseffekt

Post: # 83453Post Mcrip28
06 Oct 2016, 21:56

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 ^^

Icebaer3
An Adventure Creator
Posts: 408
Joined: 19 Dec 2012, 20:15
Location: Koblenz

Re: Objekt Bewegungseffekt

Post: # 83457Post Icebaer3
07 Oct 2016, 08:50

Ich konnte es nun auf dieses Minimum-Skript reduzieren:

Code: Select all

0n (loop1)
  {
  setnum (zielposition;[mousex]/20)
  moveobj (Schiff; [zielposition]; 150; 6)
  }
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!). :rant:

Post Reply