karte zeichnen mit types

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

Mangudai

Betreff: karte zeichnen mit types

BeitragDo, Sep 15, 2005 13:08
Antworten mit Zitat
Benutzer-Profile anzeigen
hallo alle miteinander

ich versuche gerade eine landschaft zu generieren. das klappt auch wunderbar wenn die karte aus z.b 10x10 felder besteht.
aber wenn die karte z.b. 60x40 felder groß ist fängt das ganze an zu flimmern.
hier ersmal der code:
BlitzBasic: [AUSKLAPPEN]

Graphics 1024,768,0,1

Type t_feld
Field x
Field y
Field art
Field nation
Field einwohner
End Type

SetBuffer = BackBuffer()
Repeat

If KeyHit(28) neuesFeld(x,y)

Cls
Landschaftzeichnen()
Flip

Until KeyHit(1)

Function neuesFeld(x,y)
For i = 1 To 60
For o = 1 To 40
feld.t_feld = New t_feld
feld\art = Rand (0,1)
feld\x = i * 11
feld\y= o * 11
Next
Next

End Function

Function Landschaftzeichnen()
For feld.t_feld = Each t_feld
If feld\art = 1 Color 255,255,255
If feld\art = 0 Color 0,0,255
Rect feld\x,feld\y,10,10
Next

End Function


jetzt ist halt die frage ob ich einen fehler gemacht habe oder ob types für die aufgabe nicht geignet sind.
naja würd mich über hilfe freuen. Smile

lg Mangudai
lg Mangudai

Spikespine

BeitragDo, Sep 15, 2005 13:34
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich rate davoin ab, für Karteninformationen Types zu nehmen. Nimm doch einfach ein Array.
Athlon 64 3700+ | 1024 MB RAM | GeForce 7900 GT | Blitz2D, Blitz3D, BlitzPlus, BlitzMax

eleXity

ehemals "BlackProgrammer"

BeitragDo, Sep 15, 2005 14:25
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi,

mach mal
BlitzBasic: [AUSKLAPPEN]

SetBuffer = BackBuffer() ; So nicht
SetBuffer BackBuffer() ; So solte es gehen


mfg
nVidia 570GTX | AMD Phenom II X6 | 8 GB RAM | 1TB | Win 7 Ultimate 64 SP1 | B3D, BMAX, BP, C#

Projekt : Worklog

hectic

Sieger des IS Talentwettbewerb 2006

BeitragDo, Sep 15, 2005 14:33
Antworten mit Zitat
Benutzer-Profile anzeigen
@Mangudai, ich würde dir raten ein Array für Karteninformation zu benutzen. Da schneller in der Ausführung und einfacher zu managen sind.

PSY

BeitragDo, Sep 15, 2005 14:52
Antworten mit Zitat
Benutzer-Profile anzeigen
hoi,

du legst aber jedesmal beim tastendruck neue felder an, anstatt ihre "werte" zu ändern. oder ist das absicht?

ich hab den code ein bischen abgeändert:

BlitzBasic: [AUSKLAPPEN]

Graphics 1024,768,0,1

Type t_feld
Field x
Field y
Field art
Field nation
Field einwohner
End Type
For i = 1 To 60
For o = 1 To 40
feld.t_feld = New t_feld
feld\art = Rand (0,1)
feld\x = i * 11
feld\y= o * 11
Next
Next
SetBuffer BackBuffer()

Repeat
If KeyHit(28) Then neuesFeld()
Cls
Landschaftzeichnen()
Flip
Until KeyHit(1)

Function neuesFeld()
For feld.t_feld = Each t_feld
feld\art=Rnd(0,1)
Next
End Function

Function Landschaftzeichnen()
For feld.t_feld = Each t_feld
If feld\art = 1 Color 255,255,255 Else Color 0,0,255
Rect feld\x,feld\y,10,10
Next
End Function


black programmer hat natürlich recht, es muss setbuffer backbuffer() heissen

grüsse,
psy
 

David

BeitragDo, Sep 15, 2005 15:00
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi!

hectic hat Folgendes geschrieben:
@Mangudai, ich würde dir raten ein Array für Karteninformation zu benutzen. Da schneller in der Ausführung und einfacher zu managen sind.


Das mit der Geschwindigkeit mag ja sein. Aber das "einfacherere Managen" das nehm ich dir nicht ab!!! Surprised

grüße

Mangudai

BeitragFr, Sep 16, 2005 0:35
Antworten mit Zitat
Benutzer-Profile anzeigen
super danke für die hilfe Smile
lg Mangudai

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group