Seite 3 von 6

Verfasst: 06.06.2008 19:05
von RSBasic

Verfasst: 06.06.2008 19:40
von Kaisky007
Hab es jetzt so:
Level1 = Weapon1, Normaler Gegner
Level2 = Weapon2, LangsamSchnellGegner
Level3 = Weapon3, LangsamSchnellGegner, LinksRechstsGegner
http://web56.login-1.loginserver.ch/eas ... 2125104111
Danke RSBASIC für die Sounds =)

Verfasst: 06.06.2008 20:10
von Kaisky007

Verfasst: 06.06.2008 20:16
von Kaeru Gaman
so kann man einfach hintergrundsprites erstellen:

Code: Alles auswählen

InitSprite()
InitKeyboard()
OpenScreen(1024,768,32,"StarDemo")

For n=0 To 8  ; 9 sprites erzeugen
  CreateSprite(n, 512, 384 )
  StartDrawing(SpriteOutput(n))
    Box(0,0,512,384,$201008)  ; Hintergrundfarbe nicht ganz schwarz
    For t=0 To 499  ; 500 Sterne drauf
      Plot( Random(511), Random(383), RGB( Random(155)+100, Random(155)+100, Random(155)+100 ) )
      ; zufallspositionen, zufallsfarben
    Next
  StopDrawing()
Next
stellt 9 sprites her, die man als 3x3 matrix bildfüllend durch den 1024x768 screen scrollen kann.

Verfasst: 06.06.2008 20:44
von Kaisky007
@Kaeru, Funzt bei mir irgendwie nicht

Jetzt gibt es ein Level mehr und eine Waffe mehr, und ne Punkte Liste. jeder abgeschossene Gegner bringt 5, jeder durchgekommene - 100

http://web56.login-1.loginserver.ch/eas ... 2125104111

Verfasst: 06.06.2008 20:51
von Kaeru Gaman
> @Kaeru, Funzt bei mir irgendwie nicht
doch, wird nur nicht dargestellt.
das ist nur der code zum erzeugen.
steht aber auch in meinem posting und sieht man auch.

Verfasst: 06.06.2008 21:01
von Kaisky007
ich habe ja auch ein repeat und until gesetzt, aber dann ist nur schwarzer bildschirm

Verfasst: 06.06.2008 21:12
von Kaeru Gaman
ja du musst auch die sprites 0 bis 8 display, in einer 3x3 anordnung.

Verfasst: 06.06.2008 22:04
von Kaisky007
Egal....
Ich habe ein anderes Problem mit der Explosion:

Code: Alles auswählen

ForEach Schuss() 
  Schuss()\SchussY - 16 
  Schuss()\SchussX + Schuss()\SchussS 
  DisplayTransparentSprite(2,Schuss()\SchussX ,Schuss()\SchussY) 
  ForEach Ufo1() 
    If Schuss()\SchussY + 16 > Ufo1()\Ufo1Y And Schuss()\SchussY < Ufo1()\Ufo1Y + 16 
      If Schuss()\SchussX + 8 > Ufo1()\Ufo1X And Schuss()\SchussX < Ufo1()\Ufo1X + 16
        DeleteElement(Schuss()) 
        Ufo1()\Ufo1L - 20
        If Ufo1()\Ufo1L < 0
          AddElement(Explosion())
          Explosion()\ExplosionX = Ufo1()\Ufo1X
          Explosion()\ExplosionY = Ufo1()\Ufo1Y
          Explosion()\ExplosionW = 30
          DeleteElement(Ufo1())
          Score + 5
          PlayMovie(2,0)
          Break
        EndIf
      EndIf 
    EndIf 
  Next 
Next

ForEach Explosion()
  Explosion()\ExplosionW - 1
  If Explosion()\ExplosionW < 0
    DeleteElement(Explosion())
    Break
  EndIf
  DisplayTransparentSprite(4,Explosion()\ExplosionX,Explosion()\ExplosionY) 
Next
Ich hatte schonmal nen tema aufgemacht mit den schießen.
Hier ähnliches problem, aber ich weiß nicht was falsch ist... wahrscheinlich habe ich das immer noch nicht verstanden.

Verfasst: 07.06.2008 03:19
von Kaeru Gaman
ich würde es erst anzeigen und dann runterzählen,
sonst versuchst du ja am ende etwas anzuzeigen, was schon gelöscht ist.

Code: Alles auswählen

ForEach Explosion()
  DisplayTransparentSprite(4,Explosion()\ExplosionX,Explosion()\ExplosionY)
  Explosion()\ExplosionW - 1
  If Explosion()\ExplosionW < 0
    DeleteElement(Explosion())
    Break
  EndIf
Next
außerdem würde ich bei 30 frames anzeigezeit eine animierte explosion anzeigen.
dazu müsstest du nur z.b. die sprites 4-9 für sechs explosionsphasen einrichten,
dann kannst du die spritenummer 4 in deinem beispiel durch 4 + Explosion()\ExplosionW / 6 ersetzen,
da kommt dann für die werte 0-30 eben 4-9 bei raus.