Sterne die sich bewegen! HILFE
Übersicht

Blitzkrieg BopBetreff: Sterne die sich bewegen! HILFE |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Wie mache ich Sterne, die sich so nach vorne beweegn? am besten ein code beispiel, danke 8) | ||
~ Hey Ho Let's Go ~ |
INpac |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
cool!
sterne die sich nach vorne bewegen! cool! wenn du so ne art camera haben willst, die durch unmengen an sternen fliegt, gibts da einige samples ... > hier im code archiv, oder auf bb.com. cos&sin ist da wichtig |
||
![]() |
General Alex |
![]() Antworten mit Zitat ![]() |
---|---|---|
Am einfachsten ist es, du machst dir ein kleines Bildchen (ca. 80x80) mit Sternchen drauf. Danach benutzt du den "TileImage" oder "TileBlock"-Befehl und füllst den Hintergrund damit. Ihn zu bewegen müsste kein Problem sein: Baue einen Zähler in einer Schleife ein. | ||
![]() |
Travis |
![]() Antworten mit Zitat ![]() |
---|---|---|
Du meinst so ähnlich, wie dieser Windowsbilschirmschoner Starfield? Wenn ja, dann habe ich da was für dich. Das hatte ich for einiger Zeit mal entwickelt.
Code: [AUSKLAPPEN] ; Sternenfeld v3.0 ; Speedoptimiert (thx to junky) ; Copyright (C) Dez 2003, Daniel Nobis AppTitle "Sternenfeld 3" Global StartX, StartY, MaxSpeed# ResX = 1024 ; Horizontale Auflösung ResY = 768 ; Vertikale Auflösung StartX = 512 ; Startpunkt X der Sterne StartY = 384 ; Startpunkt Y der Sterne Maus = 0 ; Maussteuerung 1/0 Statistik = 1 ; Statistik anzeigen 1/0 FrameRate = 90 ; maximale FPS MaxSpeed# = 1 ; Maximale Geschwindigkeit n = 500 ; Anzahl der Sterne Dim x#(n) Dim y#(n) Dim Winkel#(n) Dim Speed#(n), AktuellSpeed#(n) Dim AbstandWert#(n) Dim Farbe(n) Graphics ResX, ResY, GraphicsDepth, 1 SetBuffer BackBuffer() ; Allen Sternen Werte zuweisen SeedRnd MilliSecs() For i = 1 To n CreateStern(i) Next Bremse = CreateTimer(FrameRate) Repeat WaitTimer(Bremse) ; ==== FPS-Counter ====>> syszeit=MilliSecs() If syszeit>fpszeit+1000 fps=fpsct : fpszeit=syszeit : fpsct=0 Else fpsct=fpsct+1 EndIf ; ==== FPS-Counter ====>> Cls If Maus = 1 Then StartX = MouseX(): StartY = MouseY() LockBuffer(BackBuffer()) For i = 1 To n AbstandWert#(i) = Abstand(x#(i), y#(i), StartX, StartY) Farbe(i) = AbstandWert#(i) * .9 If Farbe(i) > 255 Then Farbe(i) = 255 Pixelfarbe=Farbe(i)*$1000000 + Farbe(i)*$10000 + Farbe(i)*$100 + Farbe(i) WritePixelFast(x(i),y(i),Pixelfarbe,BackBuffer) x#(i) = x#(i) + Cos(Winkel#(i)) * AktuellSpeed#(i) y#(i) = y#(i) + Sin(Winkel#(i)) * AktuellSpeed#(i) AktuellSpeed#(i) = AbstandWert#(i) / 30 * Speed#(i) + .4 If x#(i) > ResX Or x#(i) < 0 Then CreateStern(i) ; Sterne außerhalb des Bildschirmes zurücksetzen If y#(i) > ResY Or y#(i) < 0 Then CreateStern(i) Next UnlockBuffer(BackBuffer()) If Statistik = 1 Then Color 255,255,255 Text 0,0, "FPS: " + fps + "fps" EndIf Flip 0 Until KeyHit(1) Or MouseHit(1) Or MouseXSpeed() > 0 Or MouseYSpeed() > 0 End Function Abstand#(x1#,y1#,x2#,y2#) xhypo# = x1# - x2# yhypo# = y1# - y2# Abstand# = Abs(Sqr((xhypo# ^ 2) + (yhypo# ^2))) Return Abstand# End Function Function CreateStern(i) x#(i) = StartX: y#(i) = StartY: Winkel#(i) = Rnd(0, 360) Speed#(i) = Rnd(0, MaxSpeed#) End Function |
||
www.funforge.org
Ich hasse WASD-Steuerung. Man kann alles sagen, man muss es nur vernünftig begründen können. |
Blitzkrieg BopBetreff: DAAAAAANNNNNKEEEE |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hey Travis, dasrf ich dnen dein Feld auch frei benutzen? | ||
~ Hey Ho Let's Go ~ |
![]() |
sbrog |
![]() Antworten mit Zitat ![]() |
---|---|---|
hab hier auch was gefunden,das ist ein teil von einem kurs von dieser Seite
; Rob´s BB-Kurs 2 ; Robert Gerlach 12.2001 ; ; Sterne ; ---------------------------------------------- ; Ein Sternenfeld. Realistischere Version. ; Original von Matty B, verbessert (WritePixel etc.) und kommentiert von mir. Global anzahl=5000 ; Anzahl der Sterne Global speed=2 ; Geschwindigkeit Global x_screen=640 ; Auflösung Global y_screen=480 ; Dim stern_x(anzahl),stern_y(anzahl),stern_z(anzahl) Graphics x_screen,y_screen, 16, 1 SetBuffer BackBuffer() star_init() Repeat Cls star_update() Flip Until KeyHit(1) End ; Den Sternen eine Position zuweisen Function star_init() ; Alle Sterne durchgehn For i=0 To anzahl stern_x(i) = Rnd( -(x_screen/2), (x_screen/2)) Shl 8 stern_y(i) = Rnd( -(y_screen/2), (y_screen/2)) Shl 8 stern_z(i) = Rnd(speed,255) Next End Function ;############################################################## ; Die Sterne bewegen Function star_update() ; Buffer für WritePixel locken LockBuffer BackBuffer() ; Alle Sterne durchgehn For i = 0 To anzahl stern_z(i) = stern_z(i) - speed If stern_z(i) <= speed Then stern_z(i) = 255 ; Position ausrechnen. Zum Rand hin werden die Sterne schneller. s_x = (stern_x(i) / stern_z(i)) + (x_screen / 2) s_y = (stern_y(i) / stern_z(i)) + (y_screen / 2) farbe = 255 - stern_z(i) ; Pixel schnell und zum Rand hin heller zeichnen. WritePixel s_x, s_y, farbe Or (farbe Shl 8) Or (farbe Shl 16) Next UnlockBuffer BackBuffer() End Function |
||
![]() |
Travis |
![]() Antworten mit Zitat ![]() |
---|---|---|
@ Blitzkrieg Bop
'türlich darfst du, warum nicht 8) |
||
www.funforge.org
Ich hasse WASD-Steuerung. Man kann alles sagen, man muss es nur vernünftig begründen können. |
Blitzkrieg Bop |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hi leute...
also, es geht ja im wesentlichen darum, das ich das auch in mein prog einbinden will und da wären ein paar zeieln weniger viel besser.....ich hab das mal mit travis code (thx nohcmal) versucht, aber ich krieg es net hin....also ähm, gibt es das net auch mit weniger? ![]() |
||
~ Hey Ho Let's Go ~ |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group