MTM-Uusi karttaformaatti

Oletko tehnyt jotain, mistä muut voisivat hyötyä. Postita vinkit tänne.
Post Reply
M.R
Active Member
Posts: 102
Joined: Sat Dec 22, 2007 3:05 pm

MTM-Uusi karttaformaatti

Post by M.R »

Eli tein MTM kartta formaatin CBhen.Tämä formaatti käyttää tilesettejä eli tuttua .til kartoista.2D se tietenkin on.Kartta mahtuu pienempään tilaan kuin .til kartta.Animointi ei toimi koska kartta pyörii CBssä karttana ja GetMap2 tai EditMap eivät tue kartan animointia.Formaatti on aika samanlainen kuin .til kartat paitsi pienempi ja animaatiot eivät toimi(animaatiot eivät toimi ja kartta välkkyy).Karttaa hallitaan aivan samalla tavalla kuin .til karttoja.no ei tässä enään ominaisuuksia esittelemään.

Tällä functiolla ladataan kartta muistiin:

Code: Select all

Function LoadMTMMap(mapf$,tileset$)
Errors OFF
file=OpenToRead(mapf$)
If file=0 Then MakeError "Can't load MTM map.Can't open map:"+Chr(13)+Chr(10)+mapf$
Errors ON
w=ReadInt(file)
h=ReadInt(file)
tw=ReadShort(file)
th=ReadShort(file)
Print w
Print h
Print tw
Print th
map=MakeMap(w,h,tw,th)

For l=0 To 3
For y=1 To h
For x=1 To w
EditMap map,l,x,y,ReadByte(file)
Next x
Next y
Next l


PaintObject map,LoadImage(tileset$)
CloseFile file
Return map
EndFunction
Parametrit:
mapf$=MTM kartta
tileset$=Tilesetti.Merkkijono.Ei kuvamuuttuja.


Ja tällä se tallennetaan:

Code: Select all

Function SaveMTMMap(map,mapfile$)
file=OpenToWrite(mapfile$)
WriteInt file,MapWidth()
WriteInt file,MapHeight()
WriteShort file,ObjectSizeX(map)/MapWidth()
WriteShort file,ObjectSizeY(map)/MapHeight()

For l=0 To 3
For y=1 To MapHeight()
For x=1 To MapWidth()
WriteByte file,GetMap2(l,x,y)
Next x
Next y
Next l

CloseFile file

EndFunction
Parametrit:
map=Kartta muuttuja.Voi olla myös LoadMap functiolta saatu.
mapfile$=Tiedosto mihin kartta tallennetaan.

Tallenna jokin .til kartta .mtm formaattiin functiolla SaveMTMMap ja kokeilkaa ja kommentoikaa.

Lähiaikoina on tulossa MTM2 formaatti joka sisältä myös 4 Extra Data-Kerrosta.
tuhoojabotti
Advanced Member
Posts: 485
Joined: Tue Aug 28, 2007 3:53 pm
Location: Suomi, Finland
Contact:

Re: MTM-Uusi karttaformaatti

Post by tuhoojabotti »

heh toimii mutta jotenkin pätkii(?) muuten tietokoneeni näyttää .MTM tiedostot winampin media tiedostona... joo onhan se ihan toimiva ja pienempikin mutta miten on sitten kun siinä on ne 4data kerrosta ja animaatiot? :D
Imagedev.tuhoojabotti.com — “Programmer (noun): An organism that turns caffeine into code.”
MaGetzUb
Guru
Posts: 1715
Joined: Sun Sep 09, 2007 12:35 pm
Location: Alavus

Re: MTM-Uusi karttaformaatti

Post by MaGetzUb »

Koodi näyttää hyvältä, mutta kommentointi puuttuu. ;) (kyllähän minä saan siitä selvää.)
Solar Eclipse
Meneillä olevat Projektit:
We're in a simulation, and God is trying to debug us.
M.R
Active Member
Posts: 102
Joined: Sat Dec 22, 2007 3:05 pm

Re: MTM-Uusi karttaformaatti

Post by M.R »

Animaatiot ovat hieman hankalampi juttu koska CBssä on hankala saada kartasta animoinnit(ellei jopa mahdotonta).Silloin pitäisi tehdä editori joka tallentaa animoinnit jonnekkin muistiin tallentaessa ne otetaan sieltä.4 data kerrosta tulevat tämän päivän aikana tai viimeistään huomenna. .MTM päätteen tilalle voi laittaa vaikka .til.4 data kerrosta varten käytetään muistia.Pätkintää ei tapahdu minulla mutta homma voi johtua animaatioista tai että kartta ladataan silmukassa.
Marcoder
Active Member
Posts: 120
Joined: Tue Aug 28, 2007 8:21 am

Re: MTM-Uusi karttaformaatti

Post by Marcoder »

M.R wrote:Animaatiot ovat hieman hankalampi juttu koska CBssä on hankala saada kartasta animoinnit(ellei jopa mahdotonta).Silloin pitäisi tehdä editori joka tallentaa animoinnit jonnekkin muistiin...
Tai sitten vaikka näin:

Code: Select all

fileName$ = "media/cdm2.til"
file = OpenToRead(fileName)

SeekFile file, 820
tileCount = ReadInt(file)
SeekFile file, FileSize(fileName) - tileCount * 8

For i = 1 To tileCount
    animLength = ReadInt(file)
    animDelay = ReadInt(file)
    If animLength > 0 Then
        Print "Animoitava tile: " + i + "  pituus=" + animLength + "  nopeus=" + animDelay
    EndIf
Next i

CloseFile file
WaitKey
programmer of DSG wrote:Koodi näyttää hyvältä, mutta kommentointi puuttuu. ;) (kyllähän minä saan siitä selvää.)
Minä taas sanoisin että koodi näyttää huonolta koska sisennykset puuttuu.
M.R
Active Member
Posts: 102
Joined: Sat Dec 22, 2007 3:05 pm

Re: MTM-Uusi karttaformaatti

Post by M.R »

Marcoder wrote:
M.R wrote:Animaatiot ovat hieman hankalampi juttu koska CBssä on hankala saada kartasta animoinnit(ellei jopa mahdotonta).Silloin pitäisi tehdä editori joka tallentaa animoinnit jonnekkin muistiin...
Tai sitten vaikka näin:

Code: Select all

fileName$ = "media/cdm2.til"
file = OpenToRead(fileName)

SeekFile file, 820
tileCount = ReadInt(file)
SeekFile file, FileSize(fileName) - tileCount * 8

For i = 1 To tileCount
    animLength = ReadInt(file)
    animDelay = ReadInt(file)
    If animLength > 0 Then
        Print "Animoitava tile: " + i + "  pituus=" + animLength + "  nopeus=" + animDelay
    EndIf
Next i

CloseFile file
WaitKey
programmer of DSG wrote:Koodi näyttää hyvältä, mutta kommentointi puuttuu. ;) (kyllähän minä saan siitä selvää.)
Minä taas sanoisin että koodi näyttää huonolta koska sisennykset puuttuu.
.til karttaformaattia en tunne(siis rakennetta(tallentamista)).Animointi tulee luultavasti viimeiseksi koska joutuu tehdä tilekartta muunnin tai oma editori.Lähempänä on 4 datakerrosta.4 datakerroksesta tietoa:
Homma toimii muistipaloilla.
Homma käyttää typeä.
Tulee kunhan saan ratkaistua poisto ongelman.

Ja sisennykset.Mitä varten niitä tarvitsee jos koodia ei tarvitse lukea?Ja jos ei siedä koodissaan sisentämisen puutumista niin laita functiot omaan tiedostoon Ja laita Include siihen.
Sami345
Advanced Member
Posts: 349
Joined: Fri Aug 31, 2007 4:52 pm
Contact:

Re: MTM-Uusi karttaformaatti

Post by Sami345 »

Täältä löytyy .til tiedostojen formaatti: http://www.coolbasic.com/suomi/tilester/Help/fin12.html
Projektit: Fiperus - Jäädytetty pidemmäksi aikaa.
Voitot: Viikkokisa XIII, Pikapelikisa 3, Pikapelikisa 13
http://www.sami345.tk/
M.R
Active Member
Posts: 102
Joined: Sat Dec 22, 2007 3:05 pm

Re: MTM-Uusi karttaformaatti

Post by M.R »

Sami345 wrote:Täältä löytyy .til tiedostojen formaatti: http://www.coolbasic.com/suomi/tilester/Help/fin12.html
En ole näköjään huomannut sitä(ehkä olen aloitteliana mutta en katsonut).Editorin .mtm formaatille teen lähiaikoina.Tuskimpa .til kääntäjää rupean tekemään.
Kassu
Newcomer
Posts: 22
Joined: Wed Aug 29, 2007 5:32 pm

Re: MTM-Uusi karttaformaatti

Post by Kassu »

M.R wrote: Ja sisennykset.Mitä varten niitä tarvitsee jos koodia ei tarvitse lukea?Ja jos ei siedä koodissaan sisentämisen puutumista niin laita functiot omaan tiedostoon Ja laita Include siihen.
Jos koodia ei tarvitse lukea? Minun mielestä esimerkki koodit kuuluukin lukea. :D
M.R
Active Member
Posts: 102
Joined: Sat Dec 22, 2007 3:05 pm

Re: MTM-Uusi karttaformaatti

Post by M.R »

Kassu wrote:
M.R wrote: Ja sisennykset.Mitä varten niitä tarvitsee jos koodia ei tarvitse lukea?Ja jos ei siedä koodissaan sisentämisen puutumista niin laita functiot omaan tiedostoon Ja laita Include siihen.
Jos koodia ei tarvitse lukea? Minun mielestä esimerkki koodit kuuluukin lukea. :D
Tämä ei ole oikeastaan esimerkki eikä projekti.Postasin tännä kun tänne laitetaan esimerkiksi cbFun.Ei kaikkea tarvitse ymmärtää jota käyttää.Luultavasti käytät SDKta mutta et tutki koodia(siis SDKn).
jabanii
Member
Posts: 93
Joined: Tue Aug 28, 2007 9:23 pm

Re: MTM-Uusi karttaformaatti

Post by jabanii »

M.R wrote:
Kassu wrote:
M.R wrote: Ja sisennykset.Mitä varten niitä tarvitsee jos koodia ei tarvitse lukea?Ja jos ei siedä koodissaan sisentämisen puutumista niin laita functiot omaan tiedostoon Ja laita Include siihen.
Jos koodia ei tarvitse lukea? Minun mielestä esimerkki koodit kuuluukin lukea. :D
Tämä ei ole oikeastaan esimerkki eikä projekti.Postasin tännä kun tänne laitetaan esimerkiksi cbFun.Ei kaikkea tarvitse ymmärtää jota käyttää.Luultavasti käytät SDKta mutta et tutki koodia(siis SDKn).
Itse ainakin tutkin SDK:n koodeja, koska jotkut niistä saattavat olla puutteellisia omiin tarpeisiin, jolloin niitä täytyy muokata ja lisäksi sisennykset kuuluvat hyviin ohjelmointitapoihin. Sitäpaitsi sinä tulet lukemaan tätä koodia, joten sisennykset helpottavat koodin editointia huomattavasti. Lisäksi kommenttien puuttuminen vaikeuttaa koodisi ymmärtämistä, jos editoit sitä pitkän paussin jälkeen.

Mielestäni koodille olisi voitu tehdä oma tilenpiirto -systeemi. Olisit voinut lisätä joitakin ominaisuuksia, mitä til -mapeista puuttuu, esim. Pyörityksen. Omasta mielestä aika turha työ, koska se ei kelpaa esimerkki -koodiksi sisennyksien ja kommenttejen puuttumisen vuoksi, eikä siinä ole mitään erikoista, kuin vähän pienempi tila ja animaatioiden puute. En ainakaan itse tule koskaan käyttämään tätä.

PS. Pisteen jälkeen tulee väli ja functio on suomeksi funktio.
Last edited by jabanii on Thu Aug 07, 2008 6:38 am, edited 1 time in total.
Käyttöesimerkkiä kiitos

Re: MTM-Uusi karttaformaatti

Post by Käyttöesimerkkiä kiitos »

Saisikos tästä jonkinlaisen käyttöesimerkin? Kiitos.
M.R
Active Member
Posts: 102
Joined: Sat Dec 22, 2007 3:05 pm

Re: MTM-Uusi karttaformaatti

Post by M.R »

Käyttöesimerkkiä kiitos wrote:Saisikos tästä jonkinlaisen käyttöesimerkin? Kiitos.
Muunna .til kartta omalla koneella MTM formaattiin tällä koodilla:

Code: Select all

Write "Muunnetaan testmap.til MTM versiota..."
map=LoadMap("Media\testmap.til","Media\tileset.bmp")
SaveMTMMap(map,"Media\testmap.mtm")
DeleteObject map
Print "Valmis"
WaitKey 





Function SaveMTMMap(map,mapfile$)
file=OpenToWrite(mapfile$)
WriteInt file,MapWidth()
WriteInt file,MapHeight()
WriteShort file,ObjectSizeX(map)/MapWidth()
WriteShort file,ObjectSizeY(map)/MapHeight()

For l=0 To 3
For y=1 To MapHeight()
For x=1 To MapWidth()
WriteByte file,GetMap2(l,x,y)
Next x
Next y
Next l

CloseFile file

EndFunction
Pane sitten koodin tekemä .mtm tiedosto peliin.
Saat sen toimimaan pelissä näin:

Code: Select all

map=LoadMTMMap("Media\testmap.mtm","Media\tileset.bmp") //Ladataan kartta

ukko=LoadObject("Media\guy.bmp",72) //Ladataan ukko

SetupCollision ukko, map, 1, 4, 2 //Laitetaan törmäykset

PositionObject ukko,200,0 //Siirretään ukkoa vähän

Repeat
	//Pelin koodia
	If LeftKey() Then TurnObject ukko, 5
    If RightKey() Then TurnObject ukko, -5    
    
    If UpKey() Then MoveObject ukko, 2
    If DownKey() Then MoveObject ukko, -2
	
	CloneCameraPosition ukko
	
	DrawScreen
Forever
    

Function LoadMTMMap(mapf$,tileset$)
Errors OFF
file=OpenToRead(mapf$)
If file=0 Then MakeError "Can't load MTM map.Can't open map:"+Chr(13)+Chr(10)+mapf$
Errors ON
w=ReadInt(file)
h=ReadInt(file)
tw=ReadShort(file)
th=ReadShort(file)
Print w
Print h
Print tw
Print th
map=MakeMap(w,h,tw,th)

For l=0 To 3
For y=1 To h
For x=1 To w
EditMap map,l,x,y,ReadByte(file)
Next x
Next y
Next l


PaintObject map,LoadImage(tileset$)
CloseFile file
Return map
EndFunction
Post Reply