anders schreiben?
Übersicht

QuäinyBetreff: anders schreiben? |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
sollte ich das anders machen mit types und fiels???
hättet ihr das genauso geamacht? Code: [AUSKLAPPEN] Graphics 1024,768 SetBuffer BackBuffer() ;tileset tileset = LoadAnimImage("tiles.png",16,25,0,11) ;figur ich = LoadImage("ichkleinformat5.png") ichhinten=LoadAnimImage("ichkleinformat.png",16,25,0,3) ichrechts=LoadAnimImage("ichkleinformat2.png",16,25,0,3) ichlinks=LoadAnimImage("ichkleinformat3.png",16,25,0,3) ichvorne=LoadAnimImage("ichkleinformat4.png",16,25,0,3) zimmer=LoadImage("meinzimmer.png") schrank=LoadImage("schrank.png") bett=LoadImage("bett.png") tisch=LoadImage("tisch.png") fenster=LoadImage("fenster.png") fenster2=CopyImage(fenster) fernseher=LoadImage("fernseher.png") computer=LoadImage("computer.png") sitzsaecke=LoadImage("sitzsäcke.png") buecherschrank=LoadImage("bücherschrank.png") sofa=LoadImage("sofa.png") ichhintene=LoadImage("ichkleinformat6.png") ichlinkse=LoadImage("ichkleinformat7.png") ichrechtse=LoadImage("ichkleinformat8.png") ;px Variable des Spielers px = 12 ;py Variable des Spielers py = 22 ;Direckt move = 1 damit die Figur auch am Anfang sichbar ist move = 1 MaskImage ich,32,156,0 MaskImage ichhinten,32,156,0 MaskImage ichrechts,32,156,0 MaskImage ichlinks,32,156,0 MaskImage ichvorne,32,156,0 MaskImage schrank,255,255,255 MaskImage bett,255,255,255 MaskImage tisch,255,255,255 MaskImage fernseher,255,255,255 MaskImage computer,255,255,255 MaskImage sitzsaecke,255,255,255 MaskImage sofa,255,255,255 ;die map-array Dim map(20,29) ;die Karte ; 0 = tapette ; 1 = teppich timer=CreateTimer(5) Data 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 Data 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 Data 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 Data 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 Data 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 Data 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 Data 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 Data 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 Data 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 Data 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 Data 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 Data 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 Data 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 Data 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 Data 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 Data 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 Data 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 Data 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 Data 0,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,0 Data 6,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,7 Data 6,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,7 Data 6,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,7 Data 6,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,7 Data 6,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,7 Data 6,9,9,9,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 Data 6,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,7 Data 6,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,7 Data 6,1,1,1,1,1,1,9,9,9,9,1,1,1,1,1,1,1,1,7 Data 0,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,0 ;einlesen und die zahlen der Tiles in der array speichern For y = 0 To 28 For x = 0 To 19 Read map(x,y) Next Next Repeat Cls If KeyDown(1) Then End CreateTimer(1) ;malt die karte. Die auf der map gespeicherten zahlen einfach als framezahl des tilesets nehmen For y = 0 To 29 For x = 0 To 20 DrawBlock tileset,x*16,y*25,map(x,y) Next Next DrawImage schrank,16,510 DrawImage bett,16,640 DrawImage tisch,16,610 DrawImage fenster,85,500 DrawImage fenster2, 220,500 DrawImage fernseher, 140,527 DrawImage computer,200,527 DrawImage sitzsaecke,130,570 DrawImage buecherschrank,250,510 ;einfach wenn tastendruck dann If KeyDown(208) Then ;wenn die position des spielers (px,py+1) mit einem tile kollidiert, dass in der array einen höeren ;wert als 2 hat geht der if-satz nicht weiter und die figur bleibt stehen ;die 2 ist gleichzeitig das frame des tilesets If map(px,py+1) <2 Then ;die figur wird um ein tile bewegt py = py+1 ;überträgt die spielerkoordinaten auf die x und y variablen der map und malt unsere figur move = 1 End If End If If KeyDown(200) Then If map(px,py-1) <2 Then py = py -1 move =1 End If End If If KeyDown(203) Then If map(px-1,py) <2 Then px = px -1 move = 1 End If End If If KeyDown(205) Then If map(px+2,py) < 2 Then px = px +1 move =1 End If End If If KeyDown(208)=0 And KeyDown(200)=0 And KeyDown(203)=0 And KeyDown(205)=0 x = px * 16: y = py * 24 DrawImage ich,px+x,py+y If KeyDown(205) n=(n+1) Mod 3 x = px * 16: y = py * 24 DrawImage ichrechts, px+x, py+y,n If KeyDown(203) n=(n+1) Mod 3 x = px * 16: y = py * 24 DrawImage ichlinks, px+x, py+y ,n If KeyDown(200) n=(n+1) Mod 3 x = px * 16: y = py * 24 DrawImage ichhinten, px+x, py+y ,n If KeyDown(208) n=(n+1) Mod 3 x = px * 16: y = py * 24 DrawImage ichvorne, x+px, py+y ,n ;wenn move = 1 dann übertrage x auf px*32(*32 da die array so klein ist bei *1 oder *2 kommt schnell ;(array index out of bouds) und das wollen wir nicht wenn die koordinaten des spielers mit den ;koordinaten der map in verbindung gebracht worden sind, malen wir die figur ;auf der position x,y wir wollen die figur ja mit der map kollidieren lassen und nicht mit dem Nichts ;und da die map nun mal in die x und y koordinaten gespeichert wurden müssen wir das auch so ;berücksichtigen. DrawImage sofa,120,648 If y>300 Then DrawImage ichlinkse,321,600 WaitTimer(timer) Flip 0 Forever |
||
![]() |
RallimenSieger des 30-EUR-Wettbewerbs |
![]() Antworten mit Zitat ![]() |
---|---|---|
Wenn du die MAP meinst---
dann ist ein Array schon sinnvoll, da es eine feste Größe hat. |
||
[BB2D | BB3D | BB+]
|
![]() |
TimBo |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hi,
also wenn du die map meinst, also ich schreib alles in den Win editor Bsp anzahl tiles x anzahl tiles y ;jetz kommt die map 0011100 2200113 5566112 das kommt in meinen Converter und das wird dann in einem Arry mit der größe anzahl tiles x und anzahl tiles y eingelesen ^^ hoffe ich konnte dir helfen Viele Grüße TimBo |
||
mfg Tim Borowski // CPU: Ryzen 2700x GPU: Nvidia RTX 2070 OC (Gigabyte) Ram: 16GB DDR4 @ 3000MHz OS: Windows 10
Stolzer Gewinner des BCC 25 & BCC 31 hat einen ersten Preis in der 1. Runde beim BWInf 2010/2011 & 2011/12 mit BlitzBasic erreicht. |
Hahninator |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hi,
Ein paar sachen die ich anders Gemacht hätte währen: Code: [AUSKLAPPEN] For y = 0 To 29 For x = 0 To 20 DrawBlock tileset,x*16,y*25,map(x,y) Next Next DrawImage schrank,16,510 DrawImage bett,16,640 DrawImage tisch,16,610 DrawImage fenster,85,500 DrawImage fenster2, 220,500 DrawImage fernseher, 140,527 DrawImage computer,200,527 DrawImage sitzsaecke,130,570 DrawImage buecherschrank,250,510 also hier Zeichnest du deine Map und dannach noch ein Paar sachen in diese Map rein... Wäre es nicht besser diese paar sachen mit in die Map zu nehmen? Code: [AUSKLAPPEN] Data 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ... Data 0,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,0 Naja ich denke es Währe besser du würdest es aus einer Externen Datei laden, da es so einfacher ist es nachträglich noch zu bearbeiten. Falls du ein Größeres Projekt Vorhast würde ich dir dies hier empfehlen: http://www.robsite.de/daten/tutorials/rpgtut4.zip Meiner Meinung nach gehört CreateTimer vor die Hauptschleife...und sollte mindestens 50 Frames haben |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group