Bleibender, Fortlaufender Strich

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

relentless92

Betreff: Bleibender, Fortlaufender Strich

BeitragDi, Sep 22, 2009 14:23
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo ihrs,
Ich sitze grade an etwas, was mir keine Ruhe lässt und brauche mal euren Rat. Ich denke, jeder von euch kennt Snake - die sich bewegende 2D Schlange. Ich allerdings möchte eine unendlich fortlaufende Linie zeichnen - nur kommen bisher nur Plots bei rum. Code:

Code: [AUSKLAPPEN]

Graphics 800,600,32,1
SetBuffer BackBuffer()
timer=CreateTimer(60)
SeedRnd MilliSecs()

;Globals -----------------------


;CONST -------------------------



;Laden -------------------------



;Maskimage ---------------------



;Sonstiges ---------------------

Type Player
   Field x,y
   ;Field da
   Field speedx,speedy
End Type



Repeat

If MouseHit(1)=True Then

p1.player=New player

   p1\x=Rnd(0,100)
   p1\y=Rnd(0,100)
   ;p1\da=1
   
   Plot p1\x,p1\y
   
   p1\speedx=2
   p1\speedy=2
   
EndIf

For p1.player=Each player

   ;If da=1 Then
   p1\x=p1\x+p1\speedx
   p1\y=p1\y+p1\speedy

   Plot p1\x,p1\y
   ;Else
   ;da=0
   ;EndIf
   
Next


Flip
Cls
WaitTimer timer
Until KeyHit(1)


Erst hatte ich "da" drinn, da mir eingefallen ist, das es eventuell mit einem Zustand klappen könnte, aber Fehlanzeige.

MfG

Nicdel

BeitragDi, Sep 22, 2009 14:29
Antworten mit Zitat
Benutzer-Profile anzeigen
Am besten du machst noch einen Type für die einzelnen Plots. Und es ist besser, wenn du WritePixel bzw. WritePixelFast verwendest.
Desktop: Intel Pentium 4 2650 Mhz, 2 GB RAM, ATI Radeon HD 3850 512 MB, Windows XP
Notebook: Intel Core i7 720 QM 1.6 Ghz, 4 GB DDR3 RAM, nVidia 230M GT, Windows 7

relentless92

BeitragDi, Sep 22, 2009 14:53
Antworten mit Zitat
Benutzer-Profile anzeigen
Du meinst zusätzlich zu den Playern?
Wieso und inwiefern sollte ich die miteinander nutzen?

Plot wird später sowieso durch Rect oder sogar einem Image ersetzt. Das war nur weils Schneller zu schreiben war ;D

Tankbuster

BeitragDi, Sep 22, 2009 14:53
Antworten mit Zitat
Benutzer-Profile anzeigen
Sowas?

Code: [AUSKLAPPEN]

Graphics 800,600,32,1
SetBuffer BackBuffer()
timer=CreateTimer(60)
SeedRnd MilliSecs()

;Globals -----------------------


;CONST -------------------------



;Laden -------------------------



;Maskimage ---------------------



;Sonstiges ---------------------

Type Player
   Field x,y
   Field nx,ny
   Field speedx,speedy
End Type



Repeat
Cls
If MouseHit(1)=True Then

p1.player=New player

   p1\x=Rnd(0,100)
   p1\y=Rnd(0,100)
   p1\nx=p1\x
   p1\ny=p1\y
   
   p1\speedx=2
   p1\speedy=2
   
EndIf

For p1.player=Each player

   p1\nx=p1\nx+p1\speedx
   p1\ny=p1\ny+p1\speedy

   Line p1\x,p1\y,p1\nx,p1\ny
   
Next

WaitTimer timer
Flip 0


Until KeyHit(1)



PS: Timer und Flip 1=böse
Twitter
Download Jewel Snake!
Windows|Android

relentless92

BeitragDi, Sep 22, 2009 14:57
Antworten mit Zitat
Benutzer-Profile anzeigen
Seh ich ja auch grade... Demnach sollte aber Flip 1 genügen, und man kann den timer weglassen, oder?

Zurück zum Code: Einfach getrickst! Allerdings soll die Linie auch Kurven können (werde eine Art Steuerung einbauen), dann ist das mit Line leider nicht mehr möglich... ^^

Tankbuster

BeitragDi, Sep 22, 2009 15:01
Antworten mit Zitat
Benutzer-Profile anzeigen
Achso. Dann kannst du jeden Pixel, den der Spieler überfährt auf ein Hintergrundimage malen. Dass müsste dann zwar 800x600 Pixel groß sein, aber was solls Very Happy

Zitat:
SetBuffer Imagebuffer(Hintergrund)
Rect P\x,P\y,1,1
SetBuffer Backbuffer()
printnochmehr()



Zitat:
Seh ich ja auch grade... Demnach sollte aber Flip 1 genügen, und man kann den timer weglassen, oder?


Genau andersrum. Timer und Flip 0 Wink


PS: Sorry, ich hab das wohl irgendwie falsch verstanden Confused
Twitter
Download Jewel Snake!
Windows|Android

relentless92

BeitragDi, Sep 22, 2009 15:12
Antworten mit Zitat
Benutzer-Profile anzeigen
Ah, danke dir Tankbuster, so gehts natürlich Wink
Werde das mal Coden und schauen ob's geht.

MfG

relentless92

BeitragSo, Okt 04, 2009 23:10
Antworten mit Zitat
Benutzer-Profile anzeigen
Funktioniert!
Das Problem: Die Kollision wenn ich 2 von den Dingern hab! Wie bewerkstelligt man das denn? Question

DerHase

BeitragMo, Okt 05, 2009 0:57
Antworten mit Zitat
Benutzer-Profile anzeigen
Zeichne die Schlange einfach in einen eigenen image buffer und prüfe ob der "Kopf" irgendwo dagegen knallt Wink
Play Satyr!

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group