position setzen...
Übersicht

ColiusBetreff: position setzen... |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hallo
habe vor nicht altzulanger zeit von einem fertigprogrammierten Editor mir eine map hergestellt und nun hab ich sie in mein spiel geladen... ich habees die karte unten links gebastelt habe aber festgestellt dass blitzbasic nicht weiß wo er hin muss auf die position um das und das anzuzeigen könntet ihr mir helfen? ;- Bildschirmlänge Graphics 640,480,0,2 ;- Flammer SetBuffer BackBuffer () frametimer = CreateTimer (30) ; um auf allen rechnern gleichschnell ablaufen zu lassen. ;- Farbe fürs löschen des bildschirms ClsColor 0,0, 255 ;farbe mit dem der bildschirm gelörscht wird ;-Gfx Laden Global hans = LoadImage ("hans.bmp") ;Die Spielfigur laden und ebenfalls die Transparente Farbe setzen. MaskImage hans, 255, 0, 255 ;- Steuerung ;Variablen und Constante bestimmen Global Player_pos_x = 20 Global Player_pos_y = 400 Const rauf = 200, runter = 208, rechts = 205, links = 203, space = 57 ;neuen level laden map=ReadFile("Map1.map") For y=0 To 158 For x=0 To 158 Next Next ;-Hauptschleife Repeat Cls ;Bildschirm löschen WaitTimer (frametimer) ;Den gewählten Zeitgeber warten DrawImage hans,Player_pos_x,Player_pos_y ;Figur zeichnen If KeyDown(links) Then Player_pos_x = Player_pos_x -4 If KeyDown(rechts) Then Player_pos_x = Player_pos_x+4 Flip ;Bildschirm tauschen Until KeyHit (1) End |
||
Schnuff |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
du liest die Map ja garnicht richtig ein
Code: [AUSKLAPPEN] ;neuen level laden
map=ReadFile("Map1.map") For y=0 To 158 For x=0 To 158 ;hier muss die map ausgelesen werden! Next Next |
||
Programmers dont die. They gosub without return... |
Colius |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
oh okey ![]() ![]() könntest du mir sagen dan wie ich das richtig lade? |
||
Schnuff |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
welchen mapeditor benutzt du?
gucke mal in den Mapeditor ordner da müsstest du ne hilfe datei finden! |
||
Programmers dont die. They gosub without return... |
Colius |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
ist ein mapeditor von einem freund der das programmiert hat
(den editor) |
||
Schnuff |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
dann musst du ihn fragen, wie man das läd!
es gibt immer unterschiedliche methoden! |
||
Programmers dont die. They gosub without return... |
Colius |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
das ist der Mapeditor
mpx%=0 ;aktuelle mausposition mpy%=0 ;aktuelle mausposition npx%=0 ;mausposition raster npy%=0 ;mausposition raster mt1%=0 ;maustaste links mt2%=0 ;maustaste rechts tpx%=10 ;tilemapscrollposition tpy%=140 ;tilemapscrollposition fpx%=0 ;maus auf feldposition fpy%=0 ;maus auf feldposition swp%=0 ;swap map [0/1] Graphics 1024,768,32,1 SetBuffer BackBuffer() Global blocks=LoadAnimImage ("GrafikplatteLostWarrior.bmp",64,64,0,96) Dim vgm%(159,159) ;neuen level laden file=ReadFile("rohling.map") For y=0 To 159 For x=0 To 159 vgm(x,y)=ReadByte(file) Next Next ;hauptprogramm While Not KeyHit(1) ;variablen mpx=MouseX() mpy=MouseY() npx=Int(mpx/64)*64 npy=Int(mpy/64)*64 mt1=MouseDown(1) mt2=MouseDown(2) ;tastaturabfrage If KeyDown(203) Then tpx=tpx-1:If tpx<000 Then tpx=000 If KeyDown(205) Then tpx=tpx+1:If tpx>148 Then tpx=148 If KeyDown(200) Then tpy=tpy-1:If tpy<000 Then tpy=000 If KeyDown(208) Then tpy=tpy+1:If tpy>148 Then tpy=148 If KeyDown(31) Then SaveImage If KeyDown(38) Then LoadImage If KeyHit(57) Then swp=1-swp ;variablen fpx=tpx+(mpx/64) fpy=tpy+(mpy/64) ;map zeichnen For y=0 To 11 For x=0 To 11 If vgm(x+tpx,y+tpy)>0 Then DrawImage blocks,x*64,y*64,vgm(x+tpx,y+tpy) Next Next ;fadenkreuz mitte map Rect 5119-tpx*64,5060-tpy*64,2,120 Rect 5060-tpx*64,5119-tpy*64,120,2 ;menü zeichnen For y=0 To 11 For x=0 To 3 DrawImage blocks,768+x*64,y*64,x+y*8+swp*4 Color 0,0,0:Rect 768+x*64,y*64,64,64,0 Next Next ;bildschirmauswahl If mpx<768 Then Color 0,0,0 Rect npx,npy,64,64,1 DrawImage blocks,npx,npy,auswahl If mt1=1 Then vgm(fpx,fpy)=auswahl If mt2=1 Then auswahl=vgm(fpx,fpy) Else DrawImage blocks,npx,npy,(npx/64)-12+(npy/8)+swp*4 If mt1=1 Then auswahl=(npx/64)-12+(npy/8)+swp*4 If mt2=1 Then auswahl=(npx/64)-12+(npy/8)+swp*4 End If ;mousecursor Color 255,255,255 Rect mpx-12,mpy-1,25,3 Rect mpx-1,mpy-12,3,25 Rect npx,npy,64,64,0 ;scrollbalken Color 255,255,255 Rect tpx*4.8,0,58,1 Rect tpx*4.8,767,58,1 Rect 767,tpy*4.8,1,58 Rect 0,tpy*4.8,1,58 ;Delay 30 Flip Cls Wend End ;level speichern Function SaveImage() SetBuffer FrontBuffer() WritePixel 0,0,0 For y=0 To 767 Step 2 For x=0 To 1023 Step 2 WritePixelFast x+1,y+1,0 WritePixelFast x,y,0 Next Next FlushKeys Color 255,255,255 Text 100,128,"dateinamen zum speichern der map eingeben" Text 100,144,"drücken sie einfach [ENTER] um zurück zu kommen" Locate 100,160 name$=Input$("dateiname: ") If Not name$="" Then newfile=WriteFile(name$) For y=0 To 159 For x=0 To 159 WriteByte(newfile,vgm(x,y)) Next Next End If SetBuffer BackBuffer() End Function ;neuen level laden Function LoadImage() SetBuffer FrontBuffer() WritePixel 0,0,0 For y=0 To 767 Step 2 For x=0 To 1023 Step 2 WritePixelFast x+1,y+1,0 WritePixelFast x,y,0 Next Next FlushKeys Color 255,255,255 Text 100,128,"dateinamen zum laden der map eingeben" Text 100,144,"drücken sie einfach [ENTER] um zurück zu kommen" Locate 100,160 name$=Input$("dateiname: ") If Not name$="" Then newfile=ReadFile(name$) For y=0 To 159 For x=0 To 159 vgm(x,y)=ReadByte(newfile) Next Next End If SetBuffer BackBuffer() End Function |
||
Schnuff |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
da stehts doch drinne
Colius hat Folgendes geschrieben: ;neuen level laden file=ReadFile("rohling.map") For y=0 To 159 For x=0 To 159 vgm(x,y)=ReadByte(file);<------------ Hier ![]() Next Next Zitat: ;neuen level laden Function LoadImage() SetBuffer FrontBuffer() WritePixel 0,0,0;---------------- For y=0 To 767 Step 2;-------- For x=0 To 1023 Step 2;------- WritePixelFast x+1,y+1,0;----- Wofür ist das? WritePixelFast x,y,0;----------- Next;----------------------------- Next;----------------------------- FlushKeys Color 255,255,255 Text 100,128,"dateinamen zum laden der map eingeben" Text 100,144,"drücken sie einfach [ENTER] um zurück zu kommen" Locate 100,160 name$=Input$("dateiname: ") If Not name$="" Then newfile=ReadFile(name$) For y=0 To 159 For x=0 To 159 vgm(x,y)=ReadByte(newfile) Next Next End If SetBuffer BackBuffer() End Function |
||
Programmers dont die. They gosub without return... |
Colius |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
ich verstehe nicht ganz wie ich das da dann laden kann
wenn ich ;neuen level laden map=ReadFile("Map1.map") For y=0 To 159 For x=0 To 159 vgm(x,y)=ReadByte(map) Next Next mache kommt bei mir dan das ich ein ( vergessen hätte |
||
Colius |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
das ist zum laden einer map beim dem editor nur hab ich sowas im spiel nicht sondern der soll das dan gleich laden
Ps: sry wegen doppelpost ![]() |
||
Schnuff |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
dfür gibts den Edit button ![]() du musst erst nach()zu anfang Code: [AUSKLAPPEN] dim vgm(höhe der karte,Breite der karte)
angeben und ersetze einfach das input durch die zu ladene Datei |
||
Programmers dont die. They gosub without return... |
Colius |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
du meinst so?
;-Kartendateien lesen ;neuen level laden Dim vgm (159,159) file=ReadFile("Map1.map") For y=0 To 158 For x=0 To 158 vgm(x,y)=ReadByte(file) Next Next |
||
Schnuff |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
und dann musst du in der Schleife nurnoch alles ausgeben
Code: [AUSKLAPPEN] ;hauptprogramm
While Not KeyHit(1) ;variablen mpx=MouseX() mpy=MouseY() npx=Int(mpx/64)*64 npy=Int(mpy/64)*64 mt1=MouseDown(1) mt2=MouseDown(2) ;tastaturabfrage If KeyDown(203) Then tpx=tpx-1:If tpx<000 Then tpx=000 If KeyDown(205) Then tpx=tpx+1:If tpx>148 Then tpx=148 If KeyDown(200) Then tpy=tpy-1:If tpy<000 Then tpy=000 If KeyDown(208) Then tpy=tpy+1:If tpy>148 Then tpy=148 If KeyDown(31) Then SaveImage If KeyDown(38) Then LoadImage If KeyHit(57) Then swp=1-swp ;variablen fpx=tpx+(mpx/64) fpy=tpy+(mpy/64) ;map zeichnen For y=0 To 11 For x=0 To 11 If vgm(x+tpx,y+tpy)>0 Then DrawImage blocks,x*64,y*64,vgm(x+tpx,y+tpy) Next Next |
||
Programmers dont die. They gosub without return... |
Colius |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
dies wird ein jump and run game deshalb lass ich ma die mouse raus ![]() nun da ich so wies aussieht die map wohl geladen habe wie kann ich die position angeben wo man zum anfang sieht |
||
Schnuff |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
proier mit tpx und tpy | ||
Programmers dont die. They gosub without return... |
Colius |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
ich bin noch nich so gut im umgang mit variablen wie kann sowas zb aufsehen ich kann wohl schlecht am anfang nur die
tpx%=10 ;tilemapscrollposition tpy%=140 ;tilemapscrollposition variable angeben oder doch? |
||
Schnuff |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
doch, kannst du ![]() außerdem kannst du die % zeichen weg lassen(übernimmt bb auch selber) |
||
Programmers dont die. They gosub without return... |
Colius |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
nun hab ich die variable reingesetzt aber ist noch immer schwarz ...
warum? ;- Bildschirmlänge Graphics 640,480,0,2 ;- Flammer SetBuffer BackBuffer () frametimer = CreateTimer (30) ; um auf allen rechnern gleichschnell ablaufen zu lassen. ;- Farbe fürs löschen des bildschirms ;ClsColor 0,0, 255 ;farbe mit dem der bildschirm gelörscht wird ;-Gfx Laden Global hans = LoadImage ("hans.bmp") ;Die Spielfigur laden und ebenfalls die Transparente Farbe setzen. MaskImage hans, 255, 0, 255 ;- Steuerung ;Variablen und Constante bestimmen Global Player_pos_x = 20 ;Spielekoordinaten setzen. Um die Variablen in den Routinen benutzen zu Global Player_pos_y = 120 ;können, müssen diese Globalisiert werden tpx =10 ;tilemapscrollposition tpy =60 ;tilemapscrollposition Const rauf = 200, runter = 208, rechts = 205, links = 203, space = 57 ;neuen level laden Dim vgm (159,159) file=ReadFile("Map1.map") For y=0 To 158 For x=0 To 158 vgm(x,y)=ReadByte(file) Next Next ;-Hauptschleife Repeat Cls ;Bildschirm löschen WaitTimer (frametimer) ;Den gewählten Zeitgeber warten DrawImage hans,Player_pos_x,Player_pos_y ;Figur zeichnen If KeyDown(links) Then Player_pos_x = Player_pos_x -4 If KeyDown(rechts) Then Player_pos_x = Player_pos_x +4 Text 0,0,Player_pos_x Text 100,0,Player_pos_y Flip ;Bildschirm tauschen Until KeyHit (1) End |
||
![]() |
skey-z |
![]() Antworten mit Zitat ![]() |
---|---|---|
zuerst mal musst du die Tiles laden, wenn sie alle in einer datei stehen:
tiles=loadanimimage(Datei$, breite des Tiles, höhe des Tiles, anzahl Tiles, startposition(meist 0) Falls die Tiles alle einzeln gespeichert sind, noch ein Dim-Array anlegen und dort alle Bilder drin speichern in der Hauptschleife musst du sie natürlich auch noch zeichnen: for y = 0 to 159 for x = 0 to 159 Drawimage bildvariable, positionX, positionY, vgm(x,y) ; 1.Methode Drawimage bildvariable(index), positionX, positionY ; 2. Methode next next zusätzlich noch der Verweis auf die Onlinehilfe und Robsite(gute Tutorials) |
||
Awards:
Coffee's Monatswettbewerb Feb. 08: 1. Platz BAC#57: 2. Platz |
Colius |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Zitat: zuerst mal musst du die Tiles laden, wenn sie alle in einer datei stehen:
tiles=loadanimimage(Datei$, breite des Tiles, höhe des Tiles, anzahl Tiles, startposition(meist 0) Falls die Tiles alle einzeln gespeichert sind, noch ein Dim-Array anlegen und dort alle Bilder drin speichern in der Hauptschleife musst du sie natürlich auch noch zeichnen: for y = 0 to 159 for x = 0 to 159 Drawimage bildvariable, positionX, positionY, vgm(x,y) ; 1.Methode Drawimage bildvariable(index), positionX, positionY ; 2. Methode next next wie meinst du das mit hauptschleife ? kanst du "Draw image Bildvariable ..." mir erklären falls das nicht so große umstände bereitet? denn das mit vgm(x,y) fersteh ich nicht du zeichnest doch nur das bild dann auf mit drawimage in einer position nur wenn der computer die karte in der mitte anzeigt und ich sie dann unten links hab kann ich leider die grafiken dan noch immer nicht sehen ![]() Ps :habe alle bilder als tiles |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group