Space ( Hintergrund )

Übersicht BlitzMax, BlitzMax NG Allgemein

Neue Antwort erstellen

Mathias-Kwiatkowski

Betreff: Space ( Hintergrund )

BeitragSa, Nov 17, 2007 18:55
Antworten mit Zitat
Benutzer-Profile anzeigen
hi ich bräuchte hilfe bei meinem hintergrund,

also das game soll in einem Weltraum spielen, mein hintergrund sollen Sterne sein die von der mite zu den äusseren rändern ziehen, dabei sollte es 3 ebenen geben, 1. ebene die langsammen sterne, 2. ebene die etwas schnelleren , 3. ebene ganz schnelle sterne.

ich habe nun keine ahnung wie ich das anstellen soll. da ich soetwas noch nicht programmiert habe.

es wäre cool, wenn es möglich ist ein codschnipsel zu posten THX im vorraus.
ich weiss nun nicht wie compliziert das ist. daher ein GROSSES DANKE für jede hilfreiche antwort

MFG : Mathias
 

klepto2

BeitragSa, Nov 17, 2007 19:33
Antworten mit Zitat
Benutzer-Profile anzeigen
Wie wäre es mit sowas?

Code: [AUSKLAPPEN]

Type TStarField
   Field CenterX:Float
   Field CenterY:Float
   
   Field Rate:Int
   Field Particle_List:TList = New TList
   
   Function Create:TStarField(X# , Y# , Rate:Int)
      Local S:TStarField = New TStarField
      S.CenterX = X
      S.CenterY = Y
      S.Rate = Rate
      Return S
   End Function
   
   Method Update()
      For Local I:Int = 0 To Rate - 1
         Local Speed#
         Select Rand(1 , 3)
            Case 1
               Speed = Rnd(0.5,1.5)
            Case 2
               Speed = Rnd(1.5,2.5)
            Case 3
               Speed = Rnd(2.5,3.5)
         End Select
         Particle_List.AddLast(TParticle.Create(CenterX , CenterY , Speed , Rand(0 , 360) , Rnd(0.0 , 0.003) ) )
      Next
      
      For Local P:TParticle = EachIn Particle_List
         If P.Update() = False Then
            Particle_List.Remove(P)
            'Print "Remove"
         EndIf
      Next
   End Method
End Type

Type TParticle
   Field X:Float
   Field Y:Float
   
   Field Speed:Float
   Field Angle:Float
   Field Scale:Float
   Field Cur_Scale:Float = 0.1
   
   Function Create:TParticle(x# , y# , s# , a:Int , sc#)
      Local P:TParticle = New TParticle
      P.X = X
      P.Y = Y
      P.Speed = S
      P.Angle = A
      P.Scale = sc
      Return P
   End Function
   
   Method Update:Byte()
      X = X + Cos(Angle) * Speed
      Y = Y + Sin(angle) * Speed
      Cur_Scale:+ Scale
      
      SetScale cur_Scale , Cur_Scale
      DrawOval X , Y , 5 , 5
      SetScale 1.0 , 1.0
      
      If X < 0 Or X > GraphicsWidth() Or Y < 0 Or Y > GraphicsHeight() Then
            Return False
      EndIf
      
      Return True
   End Method
End Type

Graphics 800 , 600 , 0 , 60

Local S:TStarField = TStarField.Create(400,300,3)

While Not KeyHit(KEY_ESCAPE)
   Cls
   S.Update()
   
   DrawText "Count : " + S.Particle_List.Count(),20,20
   Flip
Wend


Ist jetzt nur schnell dahingeschustert und ist mit Sicherheit noch erweiterbar, aber es sollte dir einen Einblick geben.
Matrix Screensaver
Console Modul für BlitzMax
KLPacker Modul für BlitzMax

HomePage : http://www.brsoftware.de.vu

Mathias-Kwiatkowski

BeitragDo, Nov 22, 2007 0:23
Antworten mit Zitat
Benutzer-Profile anzeigen
genau das was ich suchte , THX

Neue Antwort erstellen


Übersicht BlitzMax, BlitzMax NG Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group