Dim map funtzt immer noch nicht -.-
Übersicht

![]() |
ChesterBetreff: Dim map funtzt immer noch nicht -.- |
![]() Antworten mit Zitat ![]() |
---|---|---|
hier:
Code: [AUSKLAPPEN] For x1 = 0 To 100 For y1 = 0 To 100 map1(x1, y1) = Gras Next Next For x = 0 To 100 For y = 0 To 100 DrawImage map1(x,y), x*100, y*100 Next Next Ich lade zuerst das Bild "GRAS" in alle Felder und dann geb ich sie aus . Das müsste doch functionieren....tuts aber nicht -.- |
||
hot-bitGast |
![]() Antworten mit Zitat |
|
---|---|---|
Hi,
Vielleicht hilft dir das: Code: [AUSKLAPPEN] For yteilmap = 15 To -1 Step-1
For xteilmap = 1 To 20 DrawBlock tiles(map(1,ymap-yteilmap,xmap+xteilmap)),(xteilmap-1) Shl 5,yteilmap Shl 5+y_offset Next Next Ist ein Code-schnipsel aus Glöckner .. Toni |
||
![]() |
Bfox |
![]() Antworten mit Zitat ![]() |
---|---|---|
Das gib es doch nicht! Immer wieder solche Frage! ![]() Code: [AUSKLAPPEN] For x1 = 0 To 100 For y1 = 0 To 100 map1(x1, y1) = 0 Next Next For x = 0 To 100 For y = 0 To 100 If map1(x, y) = 0 Then DrawImage Gras, x*Tilebreite, y*Tilehöhe Endif Next Next (nicht getestet!) Statt Tilebreite einfach die breite des Tileseingeben und statt Tilehöhe einfach die Höhe des Tiles eingeben! (Na wer hätte das gedacht? ![]() Edit: Hab mich im Code verschrieben! Sorry! |
||
Glauben ist Mangel an Wissen! |
- Zuletzt bearbeitet von Bfox am Fr, Aug 27, 2004 18:51, insgesamt einmal bearbeitet
![]() |
Triton |
![]() Antworten mit Zitat ![]() |
---|---|---|
Probiers mal so:
Code: [AUSKLAPPEN] For x1 = 0 To 100 For y1 = 0 To 100 map1(x1, y1) = 1 Next Next For x = 0 To 100 For y = 0 To 100 if map1(x,y) = 1 then DrawImage gras, x*100+viewx, y*100+viewy Next Next so ist es 1.flexibler und 2. richtig. Viewx und viewy hab ich mal zusätzlich noch reingebaut - das kann man später zum scrollen nutzen. |
||
- Zuletzt bearbeitet von Triton am Fr, Aug 27, 2004 18:54, insgesamt einmal bearbeitet
![]() |
Chester |
![]() Antworten mit Zitat ![]() |
---|---|---|
Triton hat Folgendes geschrieben: Probiers mal so:
Code: [AUSKLAPPEN] For x1 = 0 To 100 For y1 = 0 To 100 map1(x1, y1) = 1 Next Next For x = 0 To 100 For y = 0 To 100 if map1(x1,y1) = 1 then DrawImage gras, x*100+viewx, y*100+viewy Next Next . Array index out of bounds funtzt net |
||
![]() |
Bfox |
![]() Antworten mit Zitat ![]() |
---|---|---|
Er hat sich verschrieben! ![]() Code: [AUSKLAPPEN] if map1(x1,y1) = 1 then DrawImage gras, x*100+viewx, y*viewy
x1 durch x ersetzen und y1 durch y ersetzen! |
||
Glauben ist Mangel an Wissen! |
- Zuletzt bearbeitet von Bfox am Fr, Aug 27, 2004 18:54, insgesamt einmal bearbeitet
hot-bitGast |
![]() Antworten mit Zitat |
|
---|---|---|
Hi,
und um dich noch mehr zu verwirren, ähhh, informieren, sooo werden die Tiles eingelesen: Code: [AUSKLAPPEN] filein=ReadFile("media\kurs"+level+".dat")
hoch=ReadInt (filein) : breit=ReadInt (filein):ebe=ReadInt (filein) For z=1 To ebe For y = 1 To hoch For x = 1 To breit map(z,y,x)=ReadInt (filein) Next Next Next CloseFile(filein) Nun hat jede Koordinate eine Zahl, und zum Anzeigen der Tiles, nimmst du meinen ersten Code .... tiles() mußt du vorher aber dimensionieren ... Toni |
||
![]() |
Chester |
![]() Antworten mit Zitat ![]() |
---|---|---|
Bfox hat Folgendes geschrieben: Code: [AUSKLAPPEN] For x1 = 0 To 100 For y1 = 0 To 100 map1(x1, y1) = 0 Next Next For x = 0 To 100 For y = 0 To 100 If map1(x, y) = 0 Then DrawImage Gras, x*Tilebreite, y*Tilehöhe Endif Next Next Das funtzt auch nit . da passiert das gleiche wie bei mr Das man die maus sieht aber der hintergrund ist schwarz |
||
![]() |
Bfox |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hast du noch mehr Tiles im Bild? | ||
Glauben ist Mangel an Wissen! |
![]() |
Chester |
![]() Antworten mit Zitat ![]() |
---|---|---|
Bfox hat Folgendes geschrieben: Er hat sich verschrieben!
![]() Code: [AUSKLAPPEN] if map1(x1,y1) = 1 then DrawImage gras, x*100+viewx, y*viewy
x1 durch x ersetzen und y1 durch y ersetzen! DA bleibt der Hintergrund auch schwarz |
||
![]() |
Chester |
![]() Antworten mit Zitat ![]() |
---|---|---|
das ist bisher der einzigste tile | ||
hot-bitGast |
![]() Antworten mit Zitat |
|
---|---|---|
Hoi,
ich befürchte, bei meinem Code wird er nicht durchsteigen. ![]() Naja, wird schon werden .. Toni |
||
![]() |
Bfox |
![]() Antworten mit Zitat ![]() |
---|---|---|
Zeig mal mehr von deinem Code! Vllt hast du einene anderen Fehler! | ||
Glauben ist Mangel an Wissen! |
hot-bitGast |
![]() Antworten mit Zitat |
|
---|---|---|
Hi,
ich verstehe das so, daß er eine Map mit 100*100 Feldern besetzen will. Ist das richtig ? Toni |
||
![]() |
Chester |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hier der Code:
Code: [AUSKLAPPEN] Function ImageVi(bild, farbe1, farbe2, farbe3) If farbe1 = 0 Then farbe1 = 255 If farbe2 = 0 Then farbe2 = 0 If farbe3 = 0 Then farbe3 = 255 MaskImage bild, farbe1, farbe2, farbe3 End Function ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; a# = 0 Global Loading = LoadAnimImage("GFX/Loading.bmp", 121, 23, 0, 3) ImageVi(Loading, 0, 0, 0) DrawImage Loading, 310, 210, a# Global bGround = LoadImage("GFX/Menu/BackGround.bmp") a# = a# + 1 DrawImage Loading, 310, 210, a# If a# = 2 Then a# = 0 Global mouse = LoadImage("GFX/MENU/mouse.bmp") a# = a# + 1 DrawImage Loading, 310, 210, a# If a# = 2 Then a# = 0 Global NewGame0 = LoadImage("GFX/MENU/NewGame0.bmp") a# = a# + 1 DrawImage Loading, 310, 210, a# If a# = 2 Then a# = 0 Global Newgame1 = LoadImage("GFX/MENU/Newgame1.bmp") a# = a# + 1 DrawImage Loading, 310, 210, a# If a# = 2 Then a# = 0 Global Exit0 = LoadImage("GFX/MENU/Exit0.bmp") a# = a# + 1 DrawImage Loading, 310, 210, a# If a #= 2 Then a# = 0 Global Exit1 = LoadImage("GFX/MENU/Exit1.bmp") a# = a# + 1 DrawImage Loading, 310, 210, a# If a# = 2 Then a# = 0 Global gras = LoadImage("GFX/MAPS/MAP1/Gras.bmp") a# = a# + 1 DrawImage Loading, 310, 210, a# If a# = 2 Then a# = 0 ImageVi(Exit0, 0, 0, 0) ImageVi(Exit1, 0, 0, 0) ImageVi(NewGame0, 0, 0, 0) ImageVi(NewGame1, 0, 0, 0) ImageVi(gras, 0, 0, 0) ImageVi(mouse, 0, 0, 0) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Dim map1(100, 100) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Graphics 640, 480, 16, 1 SetBuffer BackBuffer() MoveMouse 310, 210 exit_test0 = 0 new_test0 = 0 While Not KeyHit(1) x_kor = MouseX() y_kor = MouseY() t1$ = "X:" t2$ = " Y:" t3$ = t1$ + x_kor t4$ = t2$ + y_kor t5$ = t3$ + t4$ exit_test = ImagesOverlap(mouse, x_kor, y_kor,Exit0, 240, 250) exit_test2 = GetMouse() new_test = ImagesOverlap(mouse, x_kor, y_kor, NewGame0, 240, 160) new_test2 = GetMouse() Cls TileBlock bground, 640, 480 Text 20, 20, t5$ If exit_test = 0 Then Exit_test0 = 0 If exit_test = 1 Then Exit_test0 = 1 If Exit_test0 = 0 Then DrawImage Exit0, 240, 250 If exit_test0 = 1 Then DrawImage exit1, 240, 250 If Exit_test = 1 Then If exit_test2 = 1 Then End EndIf If new_test = 0 Then new_test0 = 0 If new_test = 1 Then new_test0 = 1 If new_test0 = 0 Then DrawImage NewGame0, 240, 160 If new_test0 = 1 Then DrawImage NewGame1, 240, 160 If new_test = 1 Then If new_test2 = 1 Then game() EndIf DrawImage mouse, x_kor, y_kor Flip Wend ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Function game() MoveMouse 310, 210 For x1 = 0 To 100 For y1 = 0 To 100 map1(x1, y1) = 1 Next Next For x = 0 To 100 For y = 0 To 100 If map1(x,y) = 1 Then DrawImage Gras, x*100+viewx, y*100+viewy Next Next While Not KeyHit(1) x_kor = MouseX() y_kor = MouseY() Cls DrawImage mouse, x_kor, y_kor Flip Wend End Function |
||
David |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hi!
Irgendwie scheinst du's doch noch nicht kapiert zu haben. Du musst alle deine Tiles in ein Tileset (einzelne Datei) zusammenfassen. Hierbei muss jedes Tile natürlich die gleiche Größe haben, sonst kannst du das laden mit LoadAniImage vergessen. Jetzt ist jeder Frame ein bestimmtes Tile, z.B. Frame 1 ist dein Grastile, Frame 2 dein Lavatile usw... Nun weist du ja welches Tile welche Framenummer hat und kannst dementsprechend die Nummern auf deiner Map verteilen. Wenn du nun deine Karte zeichnen willst, musst du nurnoch den Frame mit der Nummer des jeweiligen Index zeichnen. Pseudocode: Code: [AUSKLAPPEN] TileSet = LoadAniImage( "Tiles.bmp" ) ;... Dim Map( 100, 100 ) ;... for x = 0 to 100 for y = 0 to 100 DrawImage( TileSet, x * 32, y * 32, Map( x, y ) ) ; Falls die Tiles 32*32 Pixel groß sind next next Easy oder? Jetzt musst du noch eventuell zwei Variablen für das "scrollen" deiner Map reinbringen. Fertig. grüße P.S.: Wieso hast du diese recht bescheuerte Funktion geschrieben? Code: [AUSKLAPPEN] Function ImageVi(bild, farbe1, farbe2, farbe3) If farbe1 = 0 Then farbe1 = 255 If farbe2 = 0 Then farbe2 = 0 If farbe3 = 0 Then farbe3 = 255 MaskImage bild, farbe1, farbe2, farbe3 End Function Die 255 hat ja schon ihren Sinn... |
||
http://bl4ckd0g.funpic.de |
![]() |
Bms |
![]() Antworten mit Zitat ![]() |
---|---|---|
@ChEsTeR:
das mit Code: [AUSKLAPPEN] for x=0 to 100 for y=0 to 100 if map1(x,y)=0 then drawimage ... next next muss zwischen das while ... wend in deiner game-funktion. dein fehler: bei dir wird es vor der schleife gemalt, durch cls aber sofort wieder gelöscht. (bissl sinnlos ![]() |
||
David |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hi!
Und wenn er das so mach? Trozdem ist es Schwachsinn... grüße |
||
http://bl4ckd0g.funpic.de |
![]() |
Chester |
![]() Antworten mit Zitat ![]() |
---|---|---|
ich bin ein fauler mensch ich Spar mir das MaskImage ![]() Die Map funtzt jetzt halbwegs. Nur wie funtz das mit dem Srolling? |
||
storzi |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
oben hast du doch schon einen code mit scrolling...
einfach aus dem x und y folgendes machen: x+scrollx y+scrolly jetzt veränder die werte für scrollx und scrolly mal, dann siehst du wie das geht ![]() |
||
http://www.splattergamez.de |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group