Blitz Basic Funktionen in PB

Anfängerfragen zum Programmieren mit PureBasic.
NathanielBlack
Beiträge: 63
Registriert: 25.12.2009 18:48

Re: Blitz Basic Funktionen in PB

Beitrag von NathanielBlack »

Weiß den hier niemand, wie man eine Tilemap malt?:(
Benutzeravatar
Kiffi
Beiträge: 10714
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Re: Blitz Basic Funktionen in PB

Beitrag von Kiffi »

NathanielBlack hat geschrieben:Weiß den hier niemand, wie man eine Tilemap malt?:(
in der Zwischenzeit hättest Du dich ja auch mal mit der
PureBoard-eigenen Suchfunktion vertraut machen können.

Wenn Du dort Tilemap eingibst, erhältst Du eine reichhaltige
Auswahl von Treffern. Beispielsweise diesen hier:

http://www.purebasic.fr/german/viewtopi ... ht=tilemap

Grüße ... Kiffi
a²+b²=mc²
Benutzeravatar
hörmi
Beiträge: 106
Registriert: 10.07.2007 15:20
Kontaktdaten:

Re: Blitz Basic Funktionen in PB

Beitrag von hörmi »

Da du PNG datein als bilder verwendest solltest du auch UsePNGImageDecoder() verwenden, sonst kann dein programm keine png bilder öffnen

desweiteren benötigst du bei Sprites kein StartDrawing()

//edit:
Bei MAPinit würde ich einen long anstatt eines floats nehmen
und ich würde 32 bit farbtiefe nehmen, weiß nicht aber als ich das programm getestet hab konnte ich mittels CreateSprite() bei 16 bit keine Sprites erstellen

Code: Alles auswählen

InitSprite()
UsePNGImageDecoder()

OpenScreen(800,600,32,"Tilemap")

Dim MAPinit.l(5,1)



For i = 1 To 2
  LoadSprite(i,"tile"+ Str(i) + ".png")
Next

MAPinit(0,0) = 1
MAPinit(1,0) = 1
MAPinit(2,0) = 1
MAPinit(3,0) = 1
MAPinit(4,0) = 1
MAPinit(5,0) = 1
MAPinit(0,1) = 2
MAPinit(1,1) = 2
MAPinit(2,1) = 2
MAPinit(3,1) = 2
MAPinit(4,1) = 2
MAPinit(5,1) = 2



For x = 0 To 5
  For y = 0 To 1
      DisplaySprite(MAPinit(x,y),x,y)

  Next
Next


FlipBuffers()

Delay(3000)
BildBild Bild
NathanielBlack
Beiträge: 63
Registriert: 25.12.2009 18:48

Re: Blitz Basic Funktionen in PB

Beitrag von NathanielBlack »

Danke euch vielmals! Eine kleine verbesserung musst eich an deinem Code dennoch vornehmen, hörmi. Und zwar hab eich folgendes hier stehen(und es klappt perfekt):

Code: Alles auswählen

InitSprite()
UsePNGImageDecoder()

OpenScreen(800,600,32,"Tilemap")

Dim MAPinit.l(5,1)



For i = 1 To 2
  LoadSprite(i,"tile"+ Str(i) + ".png")
Next

MAPinit(0,0) = 1
MAPinit(1,0) = 1
MAPinit(2,0) = 1
MAPinit(3,0) = 1
MAPinit(4,0) = 1
MAPinit(5,0) = 1
MAPinit(0,1) = 2
MAPinit(1,1) = 2
MAPinit(2,1) = 2
MAPinit(3,1) = 2
MAPinit(4,1) = 2
MAPinit(5,1) = 2



For x = 0 To 5
  For y = 0 To 1
      PosX = PosX + 50

      DisplaySprite(MAPinit(x,y),PosX,PosY)

  Next
Next


FlipBuffers()

Delay(3000)

Vorher waren die Tiles immer nur einen Pixel weiter gezeichnet, also klepten sie alle in einander^^

Naja, jetzt gehts! Dank dir!
Juhu :bounce:

mfg
Nathaniel
Benutzeravatar
hörmi
Beiträge: 106
Registriert: 10.07.2007 15:20
Kontaktdaten:

Re: Blitz Basic Funktionen in PB

Beitrag von hörmi »

hab noch einen vorschlag für dich

Code: Alles auswählen

For x = 0 To 5
  For y = 0 To 1
      PosX = x * 50
      PosY = y * 50

      DisplaySprite(MAPinit(x,y),PosX,PosY)

  Next
Next
BildBild Bild
NathanielBlack
Beiträge: 63
Registriert: 25.12.2009 18:48

Re: Blitz Basic Funktionen in PB

Beitrag von NathanielBlack »

Mit Input kann man ja einen benutzerdefinierten Wert auf eine Variable$ "setzen".

Wie mache ich diesen String$ in eine float oder word oder ähnliches?

:(
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Re: Blitz Basic Funktionen in PB

Beitrag von ts-soft »

NathanielBlack hat geschrieben:Mit Input kann man ja einen benutzerdefinierten Wert auf eine Variable$ "setzen".

Wie mache ich diesen String$ in eine float oder word oder ähnliches?

:(
Da nimmt man sich mal die Zeit in die Hilfe zu sehen, weil das ist meist schneller als hier zu fragen,
da findet man unter Strings Val, ValD und ValF.
Dort gibts dann auch Erklärungen und Beispiele.

Gruß
Thomas
NathanielBlack
Beiträge: 63
Registriert: 25.12.2009 18:48

Re: Blitz Basic Funktionen in PB

Beitrag von NathanielBlack »

Danke dir.

Bei meinem folgenden Problem konnte mir die Sufu auch nicht weiterhelfen:( Ich versuche eine Kollision au der Tilemap hinzubekommen, aber scheitter immer wieder:(

Könnt ihr mir bei diesem Code helfen?:

Code: Alles auswählen

InitSprite()
InitKeyboard()
UsePNGImageDecoder()

OpenScreen(800,600,32,"Tilemap")

Dim MAPinit.l(5,1)


Global ScrollX
Global ScrollY
Global PlayerX
Global PlayerY

For i = 1 To 2
  LoadSprite(i,"tile"+ Str(i) + ".png")
Next

MAPinit(0,0) = 1
MAPinit(1,0) = 1
MAPinit(2,0) = 1
MAPinit(3,0) = 1
MAPinit(4,0) = 1
MAPinit(5,0) = 2

;*****Zweite Reihe********
MAPinit(0,1) = 2
MAPinit(1,1) = 2
MAPinit(2,1) = 1
MAPinit(3,1) = 2
MAPinit(4,1) = 1
MAPinit(5,1) = 1


Repeat
ClearScreen(RGB(0,0,0))



For x = 0 To 5
  For y = 0 To 1
      PosX = x * 50 + ScrollX
      PosY = y * 50 + ScrollY

      DisplaySprite(MAPinit(x,y),PosX,PosY)

  Next
Next
StartDrawing(ScreenOutput())
Box(PlayerX+ScrollX+350,PlayerY+ScrollY+250,50,50,RGB(255,0,255))
 DrawText(0,200,"PlayerX= " + Str(PlayerX))
 DrawText(0,220,"PlayerY= " + Str(PlayerY))
 DrawText(0,240,"ScrollX= " +Str(ScrollX))
 DrawText(0,260,"ScrollY= " +Str(ScrollY))
StopDrawing()

FlipBuffers()
ExamineKeyboard()
If KeyboardPushed(#PB_Key_W)
  PlayerY = PlayerY - 1
  ScrollY = ScrollY + 1
EndIf

If KeyboardPushed(#PB_Key_S)
  PlayerY = PlayerY + 1
  ScrollY = ScrollY - 1
EndIf

If KeyboardPushed(#PB_Key_D)
  PlayerX = PlayerX + 1
  ScrollX = ScrollX - 1
EndIf

If KeyboardPushed(#PB_Key_A)
  PlayerX = PlayerX - 1
  ScrollX = ScrollX + 1
EndIf
Until KeyboardPushed(1)
End
Ich brauche begehbare und nicht begehbare Tiles, habe aber kp wie ich das machen soll:(


vielen lieben dank im vorraus,
euer Nathaniel
Benutzeravatar
hörmi
Beiträge: 106
Registriert: 10.07.2007 15:20
Kontaktdaten:

Re: Blitz Basic Funktionen in PB

Beitrag von hörmi »

Wie hättest es denn in Blitz Basic gemacht?
BildBild Bild
NathanielBlack
Beiträge: 63
Registriert: 25.12.2009 18:48

Re: Blitz Basic Funktionen in PB

Beitrag von NathanielBlack »

gar nicht, soweit war ich mit der demo nicht gekommen:P

ich brauche auch keine Pixel genaue Kollision, sondern einfach nur, dass man über tiles net laufen kann;)

mfg
Nathaniel
Antworten