Tiles werden nicht angezeigt
Übersicht

BudikotchBetreff: Tiles werden nicht angezeigt |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hey Leute.
Ich hab das Problem,dass die Tiles nicht angezeigt werden oder höchstens nur 1 Tile. Ich rätsel hier rum woran das liegen könnte.Ich hab mir die Hilfen angeschaut aber dort find ich kein Mittel das zu beheben. Es könnte vielleicht daran liegen,dass ich den Abstand nicht richtig gezeichnet hab mit Paint.net. Hier mein Code.Wenn nötig lad ich noch die Files hoch. Code: [AUSKLAPPEN] AppTitle "Test"
Graphics 640,480,16,2 SetBuffer BackBuffer() timer = CreateTimer(60) Spieler = LoadImage("gfx\Spieler.png") Tiles = LoadAnimImage("gfx\Tilemap1.png",32,32,0,3) Dim map(20,15) Restore mapdata For y = 0 To 14 For x = 0 To 19 Read map(x,y) Next Next Global Spieler_pos_x = 320 Global Spieler_pos_y = 240 px = 10 py = 7 Repeat Cls ;Map zeichnen For y = 0 To 14 For x = 0 To 19 If map(x,y) = 1 Then DrawImage Tiles, X*32, y*32,0 EndIf Next Next ;Bewegungen If KeyDown(200) = 1 Then Spieler_pos_y = Spieler_pos_y - 2 If KeyDown(208) = 1 Then Spieler_pos_y = Spieler_pos_y + 2 If KeyDown(205) = 1 Then Spieler_pos_x = Spieler_pos_x + 2 If KeyDown(203) = 1 Then Spieler_pos_x = Spieler_pos_x - 2 ;Spieler zeichnen DrawImage Spieler, Spieler_pos_x,Spieler_pos_y WaitTimer(timer) Flip 0 Until KeyHit(1) End .mapdata Data 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 Data 0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0 Data 0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0 Data 0,1,1,2,2,1,1,1,1,1,1,1,1,3,3,1,1,1,1,0 Data 0,1,1,2,2,1,1,1,1,1,1,1,1,3,3,1,1,1,1,0 Data 0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0 Data 0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0 Data 0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0 Data 0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0 Data 0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0 Data 0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0 Data 0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0 Data 0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0 Data 0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0 Data 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 |
||
![]() |
XeresModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Du lädst ein animiertes Bild, aber zeichnest immer nur einen Frame ein, und auch das nur, wenn der Karteninhalt 1 ist. | ||
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 THERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld) |
![]() |
Hubsi |
![]() Antworten mit Zitat ![]() |
---|---|---|
BlitzBasic: [AUSKLAPPEN] ;Map zeichnen Du siehst jetzt den Fehler? ![]() |
||
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn... |
Budikotch |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ehrlich gesagt seh ich da jetzt grad,dass das x in der Array beim Zeichnen groß ist.
Ich hab vorhin noch nachgeguckt und da steht in der Hilfe,dass ich bei Animationsbilder mit DrawImage die Frame ab 0 beginnt. Ich versteh das garnicht ![]() |
||
![]() |
Hubsi |
![]() Antworten mit Zitat ![]() |
---|---|---|
Blitz ist das wurscht ob du groß oder klein schreibst. Der Fehler ist die 0. Du hast es ja schon schön gesagt, die Animation beginnt bei 0. Das heißt ja nicht das Du immer den ersten Frame zeichnen willst ![]() |
||
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn... |
Budikotch |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Auch wenn ich es weglasse ändert sich nichts dabei.
Kann es daran liegen,dass ich die Tiles falsch gezeichnet hab mit Paint ^^ ? |
||
![]() |
Hubsi |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ok, der Wink mit dem Codepfahl:
BlitzBasic: [AUSKLAPPEN] ;Map zeichnen Du darfst jetzt Deine unermessliche Dankbarkeit ausdrücken indem Du mir erklärst warum das jetz funktioniert (Sonst hast Du es nicht verstanden und macht für Dich keinen Sinn) ![]() |
||
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn... |
Budikotch |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Das würde ich zugern machen,aber das zeigt leider nur 1 Tile an undzwar die bei Data mit 1 eingetragen sind.
![]() |
||
![]() |
Hubsi |
![]() Antworten mit Zitat ![]() |
---|---|---|
Nichts anderes hast Du auch nicht erwartet? ![]() Edit: Sorry, vergessen: Und nimm das If raus. |
||
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn... |
Budikotch |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Oh mann ich versteh das nicht. ![]() Ich will ja mehr als 1 Tile anzeigen lassen. Ich hab in der Tilemap 4 Tiles. 0 Stein 1 Gras 2 Wasser 3 Lava Und wenn ich das If rausnehmen,erwartet das Programm noch ein Next. Ich komm mir echt dämlich vor gerade ^^ |
||
![]() |
Hubsi |
![]() Antworten mit Zitat ![]() |
---|---|---|
BlitzBasic: [AUSKLAPPEN] ;Map zeichnen Jetz verstanden? ![]() |
||
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn... |
Lapiz |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
ich glaub du brauchst das so:
Code: [AUSKLAPPEN] ;Map zeichnen
For y = 0 To 14 For x = 0 To 19 ;If map(x,y) = 1 Then --raus nehmen! Hier sagst du ja das NUR das Tile1 gezeichnet werden soll DrawImage Tiles, X*32, y*32,map(x,y) ; <---- Hier geändert ;EndIf --das entsprechende Endif natürlich auch raus Next Next sorry warst schneller |
||
Budikotch |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Oh.Ich dachte das:
If map(x,y) = 1 wäre dafür da um die Map anzuzeigen. ![]() Jetzt funktionierts ja. Vielen Dank ![]() |
||
![]() |
Hubsi |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich kann Dir Robs BB-Kurs nur wärmstens empfehlen:
http://robsite.net/files/0000/...orials.zip Gibts leider nur im Paket mit anderem Kram dem Du jetzt noch nicht gewachsen bist und ist von daher recht groß, aber allemal wert. Edit: Da BladeRunner darauf hingewiesen hat: https://www.blitzforum.de/upload/file.php?id=3907 (was man im Laufe der zeit nicht alles vergessen kann ![]() |
||
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn... |
- Zuletzt bearbeitet von Hubsi am Mo, Dez 20, 2010 20:46, insgesamt 2-mal bearbeitet
Budikotch |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ich hab mir schon alles mögliche über Blitz Basic besorgt ![]() Das Problem lag daran,dass ich mal wieder nicht aufmerksam aufgepasst habe ![]() |
||
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich möchte nochmal drauf hinweisen dass alle Robsitetutorials hier in der Beginners verlinkt sind, im gepinnten thread, und noch dazu hier gelagert, die funktionieren also auch wenn die Robsite mal down ist ![]() |
||
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3 Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64 B3D BMax MaxGUI Stolzer Gewinner des BAC#48, #52 & #92 |
Budikotch |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ich hab noch ne Frage.Passt aber nicht zum Thema und ich möchte nicht ein neuen Thread aufmachen ![]() Ist der Code für eine Kollision so richtig ? Code: [AUSKLAPPEN] If KeyDown(200) And map(x,y) = 0 Then
; ... End If = 0 soll für die Mauer stehen. |
||
![]() |
Hubsi |
![]() Antworten mit Zitat ![]() |
---|---|---|
Nein. Ist jetzt auch nicht böse gemeint, aber ich denke Du bist noch nicht so weit eine Tilemap anzupacken. Man bekommt (zurecht?) das Gefühl Du verstehst nicht wirklich was Du da eigentlich zusammentippst. Beschäftige Dich erstmal mit den Grundlagen, sonst hast Du nicht viel Spaß an dem Hobby ![]() |
||
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn... |
Budikotch |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Doch doch.
Das mit dem Anzeigefehler hab ich falsch gelernt und das mit der Kollision will ich ja noch lernen. Die Grundlagen habe ich soweit schon drauf. |
||
![]() |
Hubsi |
![]() Antworten mit Zitat ![]() |
---|---|---|
Nun gut. Dann ist es nicht schwer das zu analysieren:
BlitzBasic: [AUSKLAPPEN] If KeyDown(200) And map(x,y) = 0 Then Der Computer macht also folgendes: Wenn Cursor nach oben gedrückt und der Wert im Array map an Position x,y (woher x und y auch immer ihre Werte haben mögen, der eigentlich entschiedende Punkt) 0 ist dann führe den Code im Konstrukt aus. Ob die Kollision nun also funktioniert hängt davon ab wie x und y an ihren Wert kommen. Das weißt bis jetzt nur Du selbst ![]() |
||
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn... |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group