Wie würdet Ihr einen Blitz realisieren
Übersicht

![]() |
SpionAtomBetreff: Wie würdet Ihr einen Blitz realisieren |
![]() Antworten mit Zitat ![]() |
---|---|---|
Angenommen ihr wollt ein 3D-Spiel machen, in denen Blitze vorkommen oder Kettenblitze a là WC3.
Sollte man transparente Sprites verwenden? Gibbets da Ansätze oder Beispiele. Oder sollte man mit Linien arbeiten? Oder sollte man das ganz anders angehen? Was meint Ihr (Beispiele sind willkommen ![]() |
||
![]() |
Justus |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ein Blitz ist ja relativ unförmig und zuckt herum. Ich würde einfach ein paar unterschiedliche Gekritzel-Sprites nehmen. Den Hauptteil des Blitz-Effekts übernimmt meiner Meinung nach der Sound.
Vorausgesetzt, dein Blitz ist nicht Bildschirmfüllend, sodass der Spieler sich nicht nur auf den Blitz kontzentriert. |
||
![]() |
SpionAtom |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hab mal in 2D was probiert. Könnte ein Anfang sein ![]() Code: [AUSKLAPPEN] Const xr = 800, yr = 600 Graphics xr, yr, 16, 2 SetBuffer BackBuffer() toleranz = 10 maxsegmente = 50 segmente = 20 Dim segp#(maxsegmente,2) spx = 50 spy = 150 epx = 700 epy = 500 Repeat ;Eingaben If MouseDown(1) Then spx = MouseX():spy = MouseY() If MouseDown(2) Then epx = MouseX():epy = MouseY() If Not MouseDown(3) Then segmente = segmente + MouseZSpeed() If segmente < 1 Then segmente = 1 If segmente > maxsegmente Then segmente = maxsegmente If MouseDown(3) Then toleranz = toleranz + MouseZSpeed() If toleranz < 0 Then toleranz = 0 ;Berechnungen xdif# = epx-spx ydif# = epy-spy For i = 1 To segmente segp(i,0) = spx + (i-1)*(xdif#/segmente) segp(i,1) = spy + (i-1)*(ydif#/segmente) Next Cls ;Hilfetext Color 0,150,0:Oval spx-10,spy-10,20,20,1 Color 0,0,150:Oval epx-10,epy-10,20,20,1 Color 255, 255, 255 Text spx-30, spy-25,"Startpunkt" Text epx-30, epy-25,"Endpunkt" Text 0,0,"Startpunkt setzen = Linksklick" Text 0,20, "Endpunkt setzen = Rechtsklick" Text 0,40, "segmente = Mausrad ("+segmente+" Segmente vorhanden) mehr Segmente machen den Blitz kleinschrittiger" Text 0,60, "Toleranz = gedrücktes Mausrad (Toleranz "+toleranz+") eine größere Toleranz macht den Blitz breiter" Color 255,0,0 For i = 1 To segmente Oval segp(i,0)-1, segp(i,1)-1,2,2,1 Next ;Blitzen px1 = spx py1 = spy For i = 1 To segmente px2 = segp(i,0)+ toleranz - Rand(2*toleranz) py2 = segp(i,1)+ toleranz - Rand(2*toleranz) Color 255, 255, 0 Line px1, py1, px2, py2 px1 = px2 py1 = py2 Next Line px1, py1, epx, epy Flip() Until KeyDown(1) |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group