map erstellen

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

 

Mia

Betreff: map erstellen

BeitragDi, Mai 29, 2007 17:14
Antworten mit Zitat
Benutzer-Profile anzeigen
so häng jetzt 3 tage daran und ich verstehs einfach nicht

ich hab das so versucht

Zitat:
Graphics 1024,768,32,1
SetBuffer BackBuffer()
Repeat
Cls
bildwasser = LoadImage("wasser2.bmp")
bildinterface = LoadImage("interface.bmp")
bildinterfaceu = LoadImage("interface2.bmp")
DrawImage bildwasser, 0,32 ;1.1
DrawImage bildwasser, 0,96 ;1.2 ou oben unten
DrawImage bildwasser, 0,160 ;1.3 ou
DrawImage bildwasser, 0,224 ;1.4 ou
DrawImage bildwasser, 0,288 ;1.5 ou
DrawImage bildwasser, 0,352 ;1.6 ou
DrawImage bildwasser, 0,416 ;1.7 ou
DrawImage bildwasser, 0,480 ;1.8 ou
DrawImage bildwasser, 0,544 ;1.9 ou

DrawImage bildwasser,64,32 ;2.1 ol oben links
DrawImage bildwasser,64,96 ;2.2 ou
DrawImage bildwasser,64,160 ;2.3 ou
DrawImage bildwasser,64,224 ;2.4 ou
DrawImage bildwasser,64,288 ;2.5 ou
DrawImage bildwasser,64,352 ;2.6 ou
DrawImage bildwasser,64,416 ;2.7 ou
DrawImage bildwasser,64,480 ;2.8 ou
DrawImage bildwasser,64,544 ;2.9 ou

DrawImage bildwasser,128,32 ;3.1 ol
DrawImage bildwasser,128,96 ;3.2 ou
DrawImage bildwasser,128,160 ;3.3 ou
DrawImage bildwasser,128,224 ;3.4 ou
DrawImage bildwasser,128,288 ;3.5 ou
DrawImage bildwasser,128,352 ;3.6 ou
DrawImage bildwasser,128,416 ;3.7 ou
DrawImage bildwasser,128,480 ;3.8 ou
DrawImage bildwasser,128,544 ;3.9 ou

DrawImage bildwasser,192,32 ;4.1 ol
DrawImage bildwasser,192,96 ;4.2 ou
DrawImage bildwasser,192,160 ;4.3 ou
DrawImage bildwasser,192,224 ;4.4 ou
DrawImage bildwasser,192,288 ;4.5 ou
DrawImage bildwasser,192,352 ;4.6 ou
DrawImage bildwasser,192,416 ;4.7 ou
DrawImage bildwasser,192,480 ;4.8 ou
DrawImage bildwasser,192,544 ;4.9 ou

DrawImage bildwasser,256,32
DrawImage bildwasser,256,96 ;5.2 ou
DrawImage bildwasser,256,160 ;5.3 ou
DrawImage bildwasser,256,224 ;5.4 ou
DrawImage bildwasser,256,288 ;5.5 ou
DrawImage bildwasser,256,352 ;5.6 ou
DrawImage bildwasser,256,416 ;5.7 ou
DrawImage bildwasser,256,480 ;5.8 ou
DrawImage bildwasser,256,544 ;5.9 ou

DrawImage bildwasser,320,32
DrawImage bildwasser,320,96 ;6.2 ou
DrawImage bildwasser,320,160 ;6.3 ou
DrawImage bildwasser,320,224 ;6.4 ou
DrawImage bildwasser,320,288 ;6.5 ou
DrawImage bildwasser,320,352 ;6.6 ou
DrawImage bildwasser,320,416 ;6.7 ou
DrawImage bildwasser,320,480 ;6.8 ou
DrawImage bildwasser,320,544 ;6.9 ou

DrawImage bildwasser,384,32
DrawImage bildwasser,384,96 ;7.2 ou
DrawImage bildwasser,384,160 ;7.3 ou
DrawImage bildwasser,384,224 ;7.4 ou
DrawImage bildwasser,384,288 ;7.5 ou
DrawImage bildwasser,384,352 ;7.6 ou
DrawImage bildwasser,384,416 ;7.7 ou
DrawImage bildwasser,384,480 ;7.8 ou
DrawImage bildwasser,384,544 ;7.9 ou

DrawImage bildwasser,448,32
DrawImage bildwasser,448,96 ;8.2 ou
DrawImage bildwasser,448,160 ;8.3 ou
DrawImage bildwasser,448,224 ;8.4 ou
DrawImage bildwasser,448,288 ;8.5 ou
DrawImage bildwasser,448,352 ;8.6 ou
DrawImage bildwasser,448,416 ;8.7 ou
DrawImage bildwasser,448,480 ;8.8 ou
DrawImage bildwasser,448,544 ;8.9 ou

DrawImage bildwasser,512,32
DrawImage bildwasser,512,96 ;9.2 ou
DrawImage bildwasser,512,160 ;9.3 ou
DrawImage bildwasser,512,224 ;9.4 ou
DrawImage bildwasser,512,288 ;9.5 ou
DrawImage bildwasser,512,352 ;9.6 ou
DrawImage bildwasser,512,416 ;9.7 ou
DrawImage bildwasser,512,480 ;9.8 ou
DrawImage bildwasser,512,544 ;9.9 ou

DrawImage bildwasser,576,32
DrawImage bildwasser,576,96 ;10.2 ou
DrawImage bildwasser,576,160 ;10.3 ou
DrawImage bildwasser,576,224 ;10.4 ou
DrawImage bildwasser,576,288 ;10.5 ou
DrawImage bildwasser,576,352 ;10.6 ou
DrawImage bildwasser,576,416 ;10.7 ou
DrawImage bildwasser,576,480 ;10.8 ou
DrawImage bildwasser,576,544 ;10.9 ou

DrawImage bildwasser,640,32
DrawImage bildwasser,640,96 ;11.2 ou
DrawImage bildwasser,640,160 ;11.3 ou
DrawImage bildwasser,640,224 ;11.4 ou
DrawImage bildwasser,640,288 ;11.5 ou
DrawImage bildwasser,640,352 ;11.6 ou
DrawImage bildwasser,640,416 ;11.7 ou
DrawImage bildwasser,640,480 ;11.8 ou
DrawImage bildwasser,640,544 ;11.9 ou

DrawImage bildwasser,704,32
DrawImage bildwasser,704,96 ;12.2 ou
DrawImage bildwasser,704,160 ;12.3 ou
DrawImage bildwasser,704,224 ;12.4 ou
DrawImage bildwasser,704,288 ;12.5 ou
DrawImage bildwasser,704,352 ;12.6 ou
DrawImage bildwasser,704,416 ;12.7 ou
DrawImage bildwasser,704,480 ;12.8 ou
DrawImage bildwasser,704,544 ;12.9 ou

DrawImage bildwasser,768,32
DrawImage bildwasser,768,96 ;13.2 ou
DrawImage bildwasser,768,160 ;13.3 ou
DrawImage bildwasser,768,224 ;13.4 ou
DrawImage bildwasser,768,288 ;13.5 ou
DrawImage bildwasser,768,352 ;13.6 ou
DrawImage bildwasser,768,416 ;13.7 ou
DrawImage bildwasser,768,480 ;13.8 ou
DrawImage bildwasser,768,544 ;13.9 ou

DrawImage bildinterface,0,0 ;interface oben
DrawImage bildinterfaceu,0,608 ;interface unten
Flip
Until KeyHit(1)


das geht so wie ich das will nur hat man mir in msn gesagt das das nit gut is wegen kolisionen später
also soll ich das mit for und next machen nur raff ich das nicht weil ich überall nur was mit color blabla Rand (blabla) finde und nicht mit images

dann hab ich hier im forum was dazu gesucht und

Zitat:
;Grafik setzen
Graphics 320,320,32,2
SetBuffer BackBuffer()
wasserbild = LoadImage("wasser2.bmp")

;Variablen festlegen
Dim xy%(99,99) ;Spielfeld mit 30^2 Tiles
xp%=0 ;Start-X-Position im Spielfeld
yp%=0 ;Start-Y-Position im Spielfeld

;ZufallsTiles
For y=0 To 99
For x=0 To 99
xy(x,y)=Rand(0,255)
Next
Next




;Hauptroutine
While Not KeyHit(1)

;Tastaturabfrage
If KeyHit(203) Then xp=xp-1:If xp<0 Then xp=0
If KeyHit(205) Then xp=xp+1:If xp>20 Then xp=20
If KeyHit(200) Then yp=yp-1:If yp<0 Then yp=0
If KeyHit(208) Then yp=yp+1:If yp>20 Then yp=20

;Tiles
For y=1 To 8
For x=1 To 8
DrawImage wasserbild,0,0
Rect x*32,y*32,32,32,1
Next
Next

Flip
Wend
End


gefunden aber das bringts irgendwie nicht >.<

dann bin ich in der online hilfe nochmal

data
for
drawimage
dim
MaskImage
TileBlock
TileImage
DrawBlock

durchgegangen und ich versteh das nicht ich bekommt das nirgens so hin wie ich das oben hab oben das ist ja richtig von der optik wenn ich das starte nur wenn ich das anders versuche gehts nit kann mir das vlt einer mal genau erklären wie ich das mit for und dim und so auf bilder bezogen mache das ich in oh und blabla seite nur mit color finde ich will aber bilder anzeigen lassen und nit farbflecke >.<

user posted image

so sollte das aussehen erstmal nur mit wasser und später mach ich da land mit drauf ....
2 jahre RO npcs gescriptet
1 jahr RO maps selbergemacht
Text 250,250, "< 1 woche (Blitz) Basic geschrieben"

hectic

Sieger des IS Talentwettbewerb 2006

BeitragDi, Mai 29, 2007 17:35
Antworten mit Zitat
Benutzer-Profile anzeigen
Oben im Code hast du es in 64er Schritten. In der Schleifenversion hast du 32er Schritte.

Ändere mal folgende Zeilen zu Code: [AUSKLAPPEN]
For y=0 to 8
 For x=0 To 12
  DrawImage bildwasser,x*64,32+y*64
 Next
Next

Die fünf Zeilen, sollten das gleiche machen, wie die ganze DrawImage -Zeilen da oben.
Download der Draw3D2 V.1.1 für schnelle Echtzeiteffekte über Blitz3D

Xeres

Moderator

BeitragDi, Mai 29, 2007 17:50
Antworten mit Zitat
Benutzer-Profile anzeigen
Wenn du einfach nur das selbe Bild wiederholen möchtest, kannst du auch tileimage verwenden und darüber alles andere zeichnen:

Tileimage bildwasser, 0, 0

Dann beispielsweise Land aus einer Datei Laden und darüber legen. Dabei ist die For-Next Schleife doch nicht mal schlecht.

Code: [AUSKLAPPEN]
For y=1 To 8
For x=1 To 8
;*** Hier sollte nur eine Abfrage hin, ob das Wasser mit dem Land überschrieben werden soll
DrawImage Landbild, x*32, y*32
Next
Next


Wie du das alles verwirklichst und ob du Bildkollisionen dafür verwendest oder andere Abfragen musst du selbst abschätzen.
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus
T
HERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld)
 

Mia

BeitragDi, Mai 29, 2007 19:32
Antworten mit Zitat
Benutzer-Profile anzeigen
hectic hat Folgendes geschrieben:
Oben im Code hast du es in 64er Schritten. In der Schleifenversion hast du 32er Schritte.

Ändere mal folgende Zeilen zu Code: [AUSKLAPPEN]
For y=0 to 8
 For x=0 To 12
  DrawImage bildwasser,x*64,32+y*64
 Next
Next

Die fünf Zeilen, sollten das gleiche machen, wie die ganze DrawImage -Zeilen da oben.


danke jetzt gehts hab das mit dem x*64,32+y*64 nirgens gefunden und in der online hilfe stand auch nur bei drawimage immer nur 0,0 z.b

hab nen neues prob das ich nit scrollen kann >.<
2 jahre RO npcs gescriptet
1 jahr RO maps selbergemacht
Text 250,250, "< 1 woche (Blitz) Basic geschrieben"
 

bruce85

BeitragMi, Mai 30, 2007 7:04
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi Mia,
machs mal so:

Code: [AUSKLAPPEN]
For y=0 to 8
 For x=0 To 12
  DrawImage bildwasser,x*64-scroll_x,32+y*64-scroll_y
 Next
Next
scroll_x = scroll_x + 1


Das sollte gehn.

EDIT: Um an einer gewissen stelle zu scrollen, musst Du bestimmte If abfragen machen, z.B.

Code: [AUSKLAPPEN]
if player_x > 200 then scroll_x = scroll_x + 1


MfG
AMD Athlon(tm) II X2 250, 8 GB DDR, MSI MSI 770-C45, GeForce GTS 250
 

Mia

BeitragMi, Mai 30, 2007 7:40
Antworten mit Zitat
Benutzer-Profile anzeigen
bruce85 hat Folgendes geschrieben:
Hi Mia,
machs mal so:

EDIT: Um an einer gewissen stelle zu scrollen, musst Du bestimmte If abfragen machen, z.B.

Code: [AUSKLAPPEN]
if player_x > 200 then scroll_x = scroll_x + 1


MfG


öhm kann ich das auch in die tastertur abfrage mit einbauen?

Zitat:
Graphics 1024,768,32,2
SetBuffer BackBuffer()

Dim xy%(99,99)
xp%=0
yp%=32



While Not KeyHit(1)

spieler1 = LoadImage("spieler.bmp")
bildwasser = LoadImage("wasser2.bmp")
bildinterface = LoadImage("interface.bmp")
bildinterfaceu = LoadImage("interface2.bmp")
For y=0 To 10
For x=0 To 15
DrawImage bildinterface,0,0
DrawImage bildinterfaceu,0,768-32
DrawImage bildwasser,x*64-scroll_x,32+y*64-scroll_y
MaskImage spieler1,255,0,255
DrawImage spieler1,xp,yp
;Tastaturabfrage
If KeyHit(203) Then xp=xp-32:If xp<0 Then xp=0
If KeyHit(205) Then xp=xp+32:If xp>1024 Then xp=1024
If KeyHit(200) Then yp=yp-32:If yp<32 Then yp=32
If KeyHit(208) Then yp=yp+32:If yp>768-96 Then yp=768-96
Next
Next
Flip
Wend
End


das sieht inmoment so aus

user posted image

user posted image
2 jahre RO npcs gescriptet
1 jahr RO maps selbergemacht
Text 250,250, "< 1 woche (Blitz) Basic geschrieben"

Hagbard

BeitragMi, Mai 30, 2007 7:53
Antworten mit Zitat
Benutzer-Profile anzeigen
Du bauchst es nicht in die Tastaturabfrage einbauen,kannst es aber...

Code: [AUSKLAPPEN]

If xp < 0 Then
  xp = 0
  scroll_x = scroll_x -1
ElseIf xp > 0 AND xp < 1024 Then


ElseIf xp > 1024
  xp = 1024
  scroll_x = scroll_x + 1
EndIf 



Ich würde dir etwas anderes aber dringend empfehlen:

Lade die Bilder nicht in der Schleife und verwende MaskImage auch schon vorher.
Sonst führt er diese Vorgänge in jedem Schleifen Durchgang durch und wenn du die Bilder einmal davor lädst und MaskImage bestimmst, sparst du Ressourcen.

Desweiteren wäre es übersichtlicher, den Quelltext einzurücken.
Falls das aber nur hier so unformatiert aussieht, ist das ja auch egal.
 

Mia

BeitragMi, Mai 30, 2007 20:13
Antworten mit Zitat
Benutzer-Profile anzeigen
irgendwie mach ich da was falsch die bewegt sich von alleine jetzt und wo die neu is ist die total verschwommen Sad

kann mich vlt einer mal in msn adden
2 jahre RO npcs gescriptet
1 jahr RO maps selbergemacht
Text 250,250, "< 1 woche (Blitz) Basic geschrieben"
 

bruce85

BeitragMi, Mai 30, 2007 22:53
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi Mia,
hast Du eine abfrage für den Spieler gemacht?
z.B.

Code: [AUSKLAPPEN]
if keydown(205) then spieler_x = spieler_x + 2


203 = Pfeil links
205 = Pfeil rechts
200 = Pfeil oben
208 = Pfeil unten

wenn Du keine abfrage für den Spieler erstellt hast, dann ist doch klar, das der Spieler sich alleine bewegt.

Edit: Hier hast Du mal eine liste der Scancodes:
Scancodes

MfG
 

Mia

BeitragDo, Mai 31, 2007 9:36
Antworten mit Zitat
Benutzer-Profile anzeigen
nicht der spieler bewegt sich alleine sondern die map
2 jahre RO npcs gescriptet
1 jahr RO maps selbergemacht
Text 250,250, "< 1 woche (Blitz) Basic geschrieben"
 

bruce85

BeitragDo, Mai 31, 2007 21:14
Antworten mit Zitat
Benutzer-Profile anzeigen
Hier mal ein beispiel:

Code: [AUSKLAPPEN]
if keydown(205) then
  spieler_x = spieler_x + 2
  if spieler_x >= 400 then
    scroll_x = scroll_x + 2
  endif
endif


so bewegt sich die Map erst, wenn die Pfeiltaste rechts gedrückt wird und spieler_x grösser gleich 400 ist.

MfG
AMD Athlon(tm) II X2 250, 8 GB DDR, MSI MSI 770-C45, GeForce GTS 250

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group