Hi,liebe community,ich habe mal wieder ne frage und zwar will ich bei meinen derzeitigem projekt,einem top_downshooter bei jedem schuss eine linie zwischen dem obj_player und dem obj_bullet zeichnen.die linie soll jedoch nicht mit dem obj_plyer mit gehen,wenn er sich bewegt,sondern sie soll an dem punkt bleiben,wo der schuss,also obj_bullet erzeugt wurde und nach kurzer zeit wieder verblassen,wenn möchlich mit image_alpha.es sollte so wie bei diesem spiel aussehen: http://ssjskipp.deviantart.com/art/Top-Down-Shooter-Engine-88167238
linie zw. player und bullet,die dann verschwindet
-
-
-
Ich würde sagen, dass du das LineAlpha was er benutzt senkst und nicht steigerst
Ausserdem würd ich das Alpha (draw_set_alpha) am Ende wieder auf 1 setzen... aber das ist Geschmackssache.
So vergisst du es wenigstens nichtmehr es auf 1 zu setzen, wenn du es brauchst.
Alternativ kannst du, PRO-Version vorrausgesetzt, auch einen gewissen Sprite nehmen (falls es nicht nur eine Linie sein soll)
Dann würdest das Sprite mit dem Ende zur Kugel nach rechts auf dem Bild malen und dann das schreiben:
Create-Event:
Draw-Event:
Alpha ist für die Tranzparenz, dabei ist 1 = Sichtbar und 0 = unsichtbar. Alles dazwischen ist teilweise durchsichtig.
Die Argumente von draw_sprite_ext() sind:
>Sprite Index
>Image Index (Subimage)
>X-Position
>Y-Position
>X-Scale (faktor mit dem es in die Breite gezogen wird)
>Y-Scale (siehe oben, aber in die Höhe gezogen)
>Rotation (Die Gradzahl um die es gedreht ist. 0 bzw. 360 ist rechts, aufsteigend GEGEN den Uhrzeigersinn)
>Farbe (c_white behält die Standardfarben. Für andere Farben benutze make_color_hsv/rgb)
>Alpha (Tranzparenz)
Das X-Scale hab ich auf die Distanz, geteilt durch die Sprite Breite gesetzt.
Wenn das Sprite nun 20 Pixel breit ist, und die Kugel 100 Pixel weit weg ist, so haben wie ein X-Scale von 100/20=5.
Wenn wir ein X-Scale von 5 haben, heisst das, dass das Bild 5 mal so breit ist.
5 Mal so breit heisst dann auch gleich, dass es 100Pixel breit ist, und nun wird es gedreht.
Die Direction der Kugel (wo sie lang fliegt) ist genau das, was du brauchst.
Wenn die Kugel direction=90; hat, so ist das Sprite von rechts (0 bzw. 360) um 90° gegen den Uhrzeigersinn gedreht. Das entspricht einem Weg nach oben.
Wenn das Sprite nun auf der Startposition startx und starty gemalt wird, und 100 Pixel breit ist und in die Richtung der Kugel zeigt, trifft die Spitze genau die Kugel
!!!Wichtig!!!
Wenn du diese Methode benutzt, denk daran, dass du die Origin im Sprite auf x=0 setzt. y sollte mittig sein.So far, Schattenphoenix~
_____________________________________________________________________________
"Who needs a stairway to heaven...
If there is an elevator to hell... ?"
- Vergessen
"Auch ein perfektes Chaos ist etwas vollkommenes."
- Jean Genet
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Schattenphoenix ()
-
ja,nur leider habe ich nur die lite version,aber gibt es vielleicht auch noch andere methoden ,dass es so aussieht wie in dem beispiel,das oben im ersten beitrag steht?vielleicht die dicke der öinie ändern aber wie geht das,weil ne einfache linie siht nicht besonders gut aus.
noch eine frage und zwar habe ich bei meiner linie noch die farbe rot eingestellt,aber jetzt wird die schriftfarbe meiner variablen(munition usw.) auch rot und bei denen ist dann auch das mit image_alpha,also dass die variablen auch "verblassen".wie lässt sich das ändern?
-
Benutzer online 1
1 Besucher