Tilemap wird falsch gezeichnet
Übersicht

![]() |
mas93Betreff: Tilemap wird falsch gezeichnet |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hi Leute,
Ich habe eine schon fast peinliche Frage. MEine Tilemap wird einfach nicht richtig gezeichnet. Alles wird so seltsam verschoben... Normal müsste ich das ja hinbekommen, denn ich hab ja schon einige Tilemap Spiele geschrieben, aber irgedwas simples mach ich falsch. Hier mal der code: Code: [AUSKLAPPEN] Dim map(40,30) Data 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 Data 2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3 Data 2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3 Data 2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3 Data 2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3 Data 2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3 Data 2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3 Data 2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3 Data 2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3 Data 2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3 Data 2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3 Data 2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3 Data 2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3 Data 2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3 Data 2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3 Data 2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3 Data 2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3 Data 2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3 Data 2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3 Data 2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3 Data 2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3 Data 2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3 Data 2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3 Data 2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3 Data 2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3 Data 2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3 Data 2,0,0,0,0,0,0,0,0,3,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3 Data 2,0,0,0,0,0,0,0,0,3,5,5,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3 Data 2,0,0,0,0,0,0,0,0,3,5,5,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3 Data 2,0,0,0,0,0,0,0,0,3,5,5,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3 Data 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4 For y = 0 To 30 For x = 0 To 40 Read map(x,y) Next Next Repeat DrawImage spieler,spx,spy drawmap() ;moveplayer() Flip Cls Until KeyHit(1) Function drawmap() For y=0 To 30 For x=0 To 40 DrawImage tiles,x*20,y*20,map(x,y) Next Next End Function wäre nett wenn ihr mir helfen könntet. mfg mas93 |
||
www.lpbase.de
Meine Linkin Park Fanseite[Noch im Aufbau] |
![]() |
hecticSieger des IS Talentwettbewerb 2006 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Wenn ich das richtig sehe, ist dein Data-Feld tatsächlich 42x31 Felder groß. Du liest aber 40x30 aus, was natürlich der Grund für eine verschobene Darstellung sein könnte. Von daher würde ich dir raten sich mal schnell ein kleinen Editor zu schreiben (15min arbeit), der die die Daten gleich so in eine Datei ablegt und aus dieser lesen, oder eben eine .txt erstellt, wo Data und das vorgegeben Format gespeichert ist. Diese müsstest du dann nur noch per Copy&Paste in deine .bb rein kopieren. | ||
Download der Draw3D2 V.1.1 für schnelle Echtzeiteffekte über Blitz3D |
![]() |
mas93 |
![]() Antworten mit Zitat ![]() |
---|---|---|
ok, vielen dank.
hab mich tatsächlich verzählz. Jetzt hab ich jedoch ein neues Problem: Wenn ich meine map zeichne, hab ich ganze 30 fps. Was mach ich falsch?? Code: [AUSKLAPPEN] Function drawmap()
For y=1 To 30 For x=1 To 40 DrawImage tiles,x*20,y*20,map(x,y) Next Next End Function Könnt ihr mir da weiterhelfen? mfg mas93 |
||
www.lpbase.de
Meine Linkin Park Fanseite[Noch im Aufbau] |
CaeSar |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Also Hi Mas,
ich glaube dein Rechner isn bissl zu langsam obwohl er das eigentlich locker schaffen sollte. Du kannst es beschleunigen indem du statt Drawimage Drawblock einsetzt, aber so kannst du keine Transparenten Tiles setzten, müsste aber viel unterschied zeigen. !! mfg Cae$ar |
||
![]() |
mas93 |
![]() Antworten mit Zitat ![]() |
---|---|---|
nein, mein rechner ist sicher nicht zu lahm.
Ich hab nen Intel Core 2 DUO @1.8 GHZ mit 1000mb arbeitsspeicher. Das müsste gut reichen... |
||
www.lpbase.de
Meine Linkin Park Fanseite[Noch im Aufbau] |
CaeSar |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Teste den Code mal, bei mir geht er wunderbar mit 61 FPS
Code: [AUSKLAPPEN] Graphics 800,600,32,2
SetBuffer BackBuffer() tiles=LoadAnimImage("Tileset.bmp",32,32,0,8) Dim map(42,31) Data 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 Data 2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3 Data 2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3 Data 2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3 Data 2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3 Data 2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3 Data 2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3 Data 2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3 Data 2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3 Data 2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3 Data 2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3 Data 2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3 Data 2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3 Data 2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3 Data 2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3 Data 2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3 Data 2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3 Data 2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3 Data 2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3 Data 2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3 Data 2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3 Data 2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3 Data 2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3 Data 2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3 Data 2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3 Data 2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3 Data 2,0,0,0,0,0,0,0,0,3,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3 Data 2,0,0,0,0,0,0,0,0,3,5,5,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3 Data 2,0,0,0,0,0,0,0,0,3,5,5,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3 Data 2,0,0,0,0,0,0,0,0,3,5,5,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3 Data 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4 For y = 0 To 30 For x = 0 To 40 Read map(x,y) Next Next Repeat ;Map Zeichnen For y=0 To 31 For x=0 To 42 DrawImage tiles,x*32-scrollx,y*32-scrolly,map(x,y) Next Next ;Scrolling If KeyDown(205) Then scrollx = scrollx + 10 EndIf If KeyDown(203) Then scrollx = scrollx - 10 EndIf If KeyDown(200) Then scrolly = scrolly - 10 EndIf If KeyDown(208) Then scrolly = scrolly + 10 EndIf ;FPS berechnen FPSz=FPSz+1 Select MilliSecs()>FPSt+999 Case 1 FPSt=MilliSecs() FPS=FPSz FPSz=0 End Select Color 0,0,255 Text 85,25,FPS Flip Cls Until KeyHit(1) End |
||
![]() |
mas93 |
![]() Antworten mit Zitat ![]() |
---|---|---|
hmm, hat bei mir 50 FPS... kanns sein, dass das an der graka liegt?
Des is ne geforece ... kp mit 256 mb |
||
www.lpbase.de
Meine Linkin Park Fanseite[Noch im Aufbau] |
![]() |
hecticSieger des IS Talentwettbewerb 2006 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Das Problem ist, dass ihr etwa viermal mehr zeichnet als notwendig. Ich habe hier noch ein uralten Code bei mir rumliegen, da ich mich früher auch damit beschäftigt habe.
Code: [AUSKLAPPEN] Graphics 800,600,32,1
SetBuffer BackBuffer() Dim map(64,48) Global blocks = LoadAnimImage ("data\hm4.png",32,32,0,45) For y=1 To 24 For x=1 To 32 Read blk map(x,y)=blk Next Next .testdata Restore testdata Data 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 Data 1,0,0,1,1,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,2,7,7,7,7,7,1 Data 1,0,0,1,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,2,7,7,7,7,7,1 Data 1,0,0,1,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,7,7,7,7,7,1 Data 1,0,0,1,4,0,0,0,1,1,1,0,1,1,1,0,1,1,1,0,1,1,1,0,2,2,7,7,7,7,7,1 Data 1,0,0,1,5,0,0,0,0,1,0,0,1,0,0,0,1,0,0,0,0,1,0,0,2,2,7,7,7,7,0,1 Data 1,0,0,1,6,0,0,0,0,1,0,0,1,1,1,0,1,1,1,0,0,1,0,0,2,2,7,7,7,0,0,1 Data 1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,1,0,0,1,0,0,2,2,7,7,0,0,0,1 Data 1,0,0,0,0,0,0,0,0,1,0,0,1,1,1,0,1,1,1,0,0,1,0,0,2,2,7,0,0,0,0,1 Data 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,0,0,0,0,0,1 Data 1,0,0,0,0,0,0,0,2,3,4,5,6,7,8,9,8,7,6,5,4,3,2,0,2,2,7,0,0,0,0,1 Data 1,0,0,1,1,0,0,0,9,8,7,6,5,4,3,2,3,4,5,6,7,8,9,0,2,3,4,5,4,0,0,1 Data 1,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,4,4,4,4,0,0,1 Data 1,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,0,2,2,7,0,0,0,0,1 Data 1,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,0,2,2,0,0,0,0,7,1 Data 1,0,0,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,7,7,0,0,2,2,0,0,3,3,2,1 Data 1,0,0,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,7,7,7,0,0,2,2,0,0,3,3,2,1 Data 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,7,7,0,0,2,2,0,0,0,0,7,1 Data 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,7,7,7,0,0,2,2,7,0,0,0,0,1 Data 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,7,7,7,7,0,0,2,2,3,3,3,0,0,1 Data 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,7,7,7,7,7,7,0,0,0,3,3,3,3,0,0,1 Data 1,0,0,0,0,0,0,0,0,0,0,0,7,7,7,7,7,7,7,7,7,7,0,0,0,0,0,0,0,0,0,1 Data 1,0,0,0,0,0,0,0,7,7,7,7,7,7,7,7,7,7,7,7,7,7,0,0,0,0,0,0,0,0,0,1 Data 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 While Not KeyDown(1) mxp#=mxp+(MouseX()-mxp)/32 myp#=myp+(MouseY()-myp)/32 Line mxp,myp,MouseX(),MouseY() For y=1 To 10 For x=1 To 10 blk=map(x+(mxp/32),y+myp/32) If blk>0 Then DrawImage blocks,(Int(mxp/32)*32)-mxp+x*32,(Int(myp/32)*32)-myp+y*32,blk If blk>0 Then Text (Int(mxp/32)*32)-mxp+x*32,(Int(myp/32)*32)-myp+y*32,blk Next Next Flip Cls Wend End Es soll nur das Prinzip beschreiben, dass eben nur das notwendige gezeichnet wird. Dim-Maps eignen sich gerade dazu. |
||
Download der Draw3D2 V.1.1 für schnelle Echtzeiteffekte über Blitz3D |
CaeSar |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hi Hectic,
hat du es, oder jemand anderes, schon mal hinbekommen, dass wenn man nicht aus der Map kommt, keine Fehlermeldung kommt, hänge schon sehr lange an diesem Fehler. Hoffentlich kann mir jemand Help !! thx für jede Hilfe PS: Mas was hasten fürne Graka, ich hab nen AMD Athlon 64 3500+, 1GB RAM Kingston und ne Geforce 6600GT und läuft alles in Butter mfg Cae$ar |
||
![]() |
hecticSieger des IS Talentwettbewerb 2006 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Dann baust du einfach ein Begrenzer ein. Besser ist aber, auf ein Begrenzer zu verzichten und das ganze gleich in die Map als Wand zu integrieren und die Map entsprechend zu vergrößern. Also eine art Rahmen zu machen die niemals erreicht werden kann. | ||
Download der Draw3D2 V.1.1 für schnelle Echtzeiteffekte über Blitz3D |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group