Frames

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

Chester

Betreff: Frames

BeitragDo, Dez 09, 2004 17:02
Antworten mit Zitat
Benutzer-Profile anzeigen
Siehe meinen letzten Post in diesem Thread
  • Zuletzt bearbeitet von Chester am Do, Dez 30, 2004 14:17, insgesamt 3-mal bearbeitet

Jan_

Ehemaliger Admin

BeitragDo, Dez 09, 2004 17:05
Antworten mit Zitat
Benutzer-Profile anzeigen
800*10000*3=24000000

24000000/1024/1024=23 MByte
Hm, ich würde Tiles nehmen.
between angels and insects

Firstdeathmaker

BeitragDo, Dez 09, 2004 17:17
Antworten mit Zitat
Benutzer-Profile anzeigen
Falls du mein Beispiel komplett haben möchtest (mit Platzhaltegrafiken zum ausprobieren) schreibe mir mal ne PN mit deiner E-mail.


BlitzBasic: [AUSKLAPPEN]
SCREEN_X=800
SCREEN_Y=600

Graphics SCREEN_X,SCREEN_Y,32,2
SetBuffer BackBuffer()


gleichzeitig=Ceil(SCREEN_Y/100)-1
Dim bg(gleichzeitig,1)


speed#=1



For i=0 To gleichzeitig
bg(i,0)=LoadImage(Rand(1,10)+\".bmp\")
bg(i,1)=i*100
Next


Repeat
Cls

For i=0 To gleichzeitig
bg(i,1)=bg(i,1)+1

If bg(i,1)>SCREEN_Y
FreeImage(bg(i,0))
bg(i,1)=0
bg(i,0)=LoadImage(Rand(1,10)+\".bmp\")
EndIf


DrawImage bg(i,0),0,bg(i,1)-100
Next

Flip

Until KeyHit(1)
End
www.illusion-games.de
Space War 3 | Space Race | Galaxy on Fire | Razoon
Gewinner des BCC #57 User posted image

Chester

BeitragDo, Dez 09, 2004 19:57
Antworten mit Zitat
Benutzer-Profile anzeigen
So habe mich mal selbst drum gekümmert(trotzdem thx)
habe aber immer noch ein problem:

BlitzBasic: [AUSKLAPPEN]

Graphics 800,600,32,1

Dim bg(800,10000)

For a1 = 0 To 10000
Local x1 = Rnd(0,800)
Local y1 = Rnd(0,10000)
bg(x1,y1) = 1
Next

SetBuffer BackBuffer()

viewy# = -50
y2% = 650
y1% = 0

While Not KeyHit(1)
If MilliSecs()>Timer+25 Then
Timer=MilliSecs()


Cls


If viewy# = 10 Then
y2% = y2%+650
EndIf

If viewy# = -660 Then
y1% = y1% +650
EndIf


For x = 0 To 800
For y = y1% To y2%
If bg(x,y) = 1 Then Plot x,y+viewy#
Next
Next


If KeyDown(80) Then viewy# = viewy#-10
If KeyDown(72) Then viewy# = viewy#+10

Flip
EndIf
Wend

EndGraphics
End



so, wenn ich nun auf 10 viewy gehe, dann wird es auf der falschen seite erweitert. also habe ich die minus'se durch plus'se und umgekehrt ersetzt:
BlitzBasic: [AUSKLAPPEN]

If viewy# = 10 Then
y2% = y2%-650
EndIf

If viewy# = 660 Then
y1% = y1% -650
EndIf

dann verschwindet aber einfach alles.... Schaut euchs selbst an^^

Firstdeathmaker

BeitragDo, Dez 09, 2004 20:08
Antworten mit Zitat
Benutzer-Profile anzeigen
Soll das für ein Starfield bei einem Spaceshooter sein?

Ich hätte noch eine andere Möglichkeit: tileimage
www.illusion-games.de
Space War 3 | Space Race | Galaxy on Fire | Razoon
Gewinner des BCC #57 User posted image

Chester

BeitragDo, Dez 09, 2004 20:22
Antworten mit Zitat
Benutzer-Profile anzeigen
nein, es sollte der Hintergrund für SkyWalk sein. Und mit diesem Prinzip wollte ich es auch mit den Stufen machen.(falls du SkyWalk überhaupt noch kennst)

Chester

BeitragFr, Dez 10, 2004 13:17
Antworten mit Zitat
Benutzer-Profile anzeigen
hier mein Lösungsweg:

Ich habe das:
BlitzBasic: [AUSKLAPPEN]

If viewy# = 10 Then
y2% = y2%+650
EndIf


If viewy# = 660 Then
y1% = y1%+650
EndIf


so gelassen wie es war, aber das hier verändert:
BlitzBasic: [AUSKLAPPEN]

For x = 0 To 800
For y = y1% To y2%
If bg(x,y) = 1 Then Plot x,y-y-y+viewy# ;<-------
Next
Next

Chester

BeitragFr, Dez 10, 2004 13:30
Antworten mit Zitat
Benutzer-Profile anzeigen
das Problem ist jetzt auch gelöst.
Hier der Final Code

BlitzBasic: [AUSKLAPPEN]

Graphics 800,600,32,1

Dim bg(800,10000)

For a1 = 0 To 10000
Local x1 = Rnd(0,800)
Local y1 = Rnd(0,10000)
bg(x1,y1) = 1
Next

SetBuffer BackBuffer()

viewy# = -50
y2% = 650
y1% = 0

While Not KeyHit(1)
If MilliSecs()>Timer+25 Then
Timer=MilliSecs()


Cls



For x = 0 To 800
For y = y1% To y2%
If bg(x,y) = 1 Then Plot x,y-y-y+viewy#
Next
Next


viewy# = viewy#+2
y2% = y2% +2 ;;<---
y1% = y1% +2 ;;<---
Flip
EndIf
Wend

EndGraphics
End

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group