Karttaongelma

Voit pyytää apua ohjelmointiongelmiin täältä.
Post Reply
Troopperi
Newcomer
Posts: 3
Joined: Sun Jun 19, 2011 7:24 pm

Karttaongelma

Post by Troopperi »

Hei. Olen ennenkin kysynyt täällä yhtä asiaa, ja saatatte minut löytääkin vieraana jostain aiheesta, mutta nyt päätin rekisteröityä, jotta voin luoda oman aiheen (Huomattavissa helpommin).

Olen kirjoitellut tasoloikkapeli-harjoitelmaa, joka on lähes kopioitu Coolbasicin tutoriaali 18:sta, mutta omilla grafiikoilla. Ikävä kyllä, kun kokeilen peliä, Tilesterillä tekemäni kartta ei toimi, ja kone valittaa: "Can't load map: [polku]"

Sama ongelma tulee kaikkien, paitsi Tilesterin kansion testmapin kanssa, jopa Coolbasicin Media-kansion testmapilla. Mitään arvailuja? Polkukaan ei ole väärä. Jos sillää tiedolla mitään tekee, käyttöjärjestelmä on Win 7.
User avatar
Peltsi
Active Member
Posts: 121
Joined: Thu Sep 30, 2010 12:16 pm

Re: Karttaongelma

Post by Peltsi »

Troopperi wrote:Hei. Olen ennenkin kysynyt täällä yhtä asiaa, ja saatatte minut löytääkin vieraana jostain aiheesta, mutta nyt päätin rekisteröityä, jotta voin luoda oman aiheen (Huomattavissa helpommin).

Olen kirjoitellut tasoloikkapeli-harjoitelmaa, joka on lähes kopioitu Coolbasicin tutoriaali 18:sta, mutta omilla grafiikoilla. Ikävä kyllä, kun kokeilen peliä, Tilesterillä tekemäni kartta ei toimi, ja kone valittaa: "Can't load map: [polku]"

Sama ongelma tulee kaikkien, paitsi Tilesterin kansion testmapin kanssa, jopa Coolbasicin Media-kansion testmapilla. Mitään arvailuja? Polkukaan ei ole väärä. Jos sillää tiedolla mitään tekee, käyttöjärjestelmä on Win 7.
Tilesterissä on eri versioita mapeista. Kokeile käyttää toista muotoa kartassa, kuulemma toinen ei toimi. Tarkista myös että tiedostonimet ovat oikein (vielä kerran) ja katso manuaalista että olet laittanut kaiken oikein. Ja jos laittaisit koodin tänne niin se auttaisi paljon.

PS: Tälläisiä kysymyksiä varten ei kannata tehdä omaa aihetta vaan ne kannattaa laittaa "tyhmiin kysymyksiin". :D
Troopperi
Newcomer
Posts: 3
Joined: Sun Jun 19, 2011 7:24 pm

Re: Karttaongelma

Post by Troopperi »

Code: Select all

'Painovoima on vakiona, johon  tarpeen tullen, esim hypätessä lisätään sen hetkinen arvo
' muuttujalle "liikey" jolloin saadaan hypyt jne. 
Const GRAVITY = -0.1

liikey# = 0

SAFEEXIT OFF

SCREEN 800,800
SetWindow "Peli",0,"Haluatko lopettaa?"
FrameLimit 60
'Kenttä
kartta =LoadMap ("C:\Users\[Minun nimi]\Documents\Coolbasic\Tasoloikka\kenttä2.til","C:\Users\[Minun nimi]\Documents\Coolbasic\Tasoloikka\tileset.bmp")
PlayObject kartta, 0,0,0.8
'Pelihahmon spritet oikealle katsottaessa
 oikea =LoadAnimObject ("C:\Users\[Minun nimi]\Documents\Coolbasic\Tasoloikka\oikea.png",36,45,0,10)
 MaskObject oikea, 255,255,255
 ShowObject oikea, OFF
 ObjectRange oikea, 36,45
 
'Sama vasemmalle
'MUISTA PYÖRITTÄÄ ANIMAATIOTA TAKAPERIN, KUN SPRITET ON LAISKASTI VAIN PEILATTU VAAKASUUNTAAN!" 
vasen =LoadAnimObject ("C:\Users\[Minun nimi]\Documents\Coolbasic\Tasoloikka\vasen.png",36,45,0,10)
MaskObject vasen, 255,255,255
ShowObject vasen, OFF
ObjectRange vasen,36,45

Ukko = CloneObject (oikea)
SetupCollision ukko,kartta,1,4,2
ObjectRange ukko,36,45
PositionObject ukko, -50,-50
'Jos et muista, objectrange on objektin törmäysalueen koko pikseleinä.

'Pääsilmukka

Repeat

liikex=0

    'Liike vasemmalle.
    If LeftKey ()  Then
    liikex = -3
    PaintObject ukko, vasen
    If maalla Then  PlayObject ukko, 7,1,-0.1

    'Liike oikealle.
    ElseIf RightKey () Then
    liikex= 3
    PaintObject ukko, oikea
    If maalla Then PlayObject ukko, 1,7,0.1
   
    'Muussa tapauksessa.
    Else
    PlayObject ukko,9
    EndIf
    
    TranslateObject ukko, liikex, liikey
    liikey = liikey+GRAVITY
    
    
    UpdateGame
    CloneCameraPosition ukko
    
    maalla =0
    
    collisions = CountCollisions (ukko)
    
    For a=1 To collisions
    
    If GetCollision (ukko,a)= kartta
        If CollisionAngle (ukko,a) = 90 Then
        maalla= 1
        liikey= -2
        EndIf
        If CollisionAngle (ukko,a) = 270 Then
        liikey= -2
        EndIf
        EndIf
     Next a
    If collisions = 0 Then
    PlayObject ukko,8
   
    EndIf
    If maalla And UpKey () Then
    liikey = 4.5
    
    EndIf
   

DrawScreen
Forever
Nyt kun tuo kartta "kenttä2.til" on tallennettu CB 1.3 versioksi, niin se ei enää herjaa, vaan tuloksena on mystinen, tyhjällä kentällä hyppyasennossa oleva ukko.

Ja kuten totesin, tuohan on samanlainen tutoriaali 18:n kanssa, vain grafiikat ja muuttujien nimet vaihdettu. Ja käsin kirjoitettu.
User avatar
Timblex
Advanced Member
Posts: 252
Joined: Sun Apr 11, 2010 10:37 am
Location: Kouvola

Re: Karttaongelma

Post by Timblex »

On mahdollista että pelihamo ilmestyy kartan alle ja tippuu alaspäin(se selittäisi hyppyasennon)
vinkki: ei kannata laittaa tiedostopolkuja noin("C:\users\nimi\...") koska jos jaat pelisi netissä se ei toimi muiden koneilla ;)
Entinen timpe99...
Demokisa 2013 demo valmis, Check it out!
Troopperi
Newcomer
Posts: 3
Joined: Sun Jun 19, 2011 7:24 pm

Re: Karttaongelma

Post by Troopperi »

Noniin. Nyt selvennän tässä ongelmaani vielä. Tilester 1.3 formaattiin tallentaminen siis auttoi, mutta kartta ei ilmesty. Ukko vain putoaa, vaikka positionobjectilla ne samoihin koordinaatteihin länttäsin (Varmistin putoamisen maalaamalla taustan kuvalla). Tämä ei ole ainut kerta, milloin olen ongelmaan törmännyt. Konekohtainen se ei ainakaan ole, sillä edellisellä koneellani oli aivan samoja ongelmia. Mikään itsetekemäni kartta ei oikein toimi, ainoastaan valmiit CB:n, vaikka en usko tekeväni Tilesterillä mitään väärin. Tilesetistäkään se ei riipu, itse tekemlläni tai CB:n tilesetillä ei toimi.
Awaclus
Forum Veteran
Posts: 2939
Joined: Tue Aug 28, 2007 2:50 pm

Re: Karttaongelma

Post by Awaclus »

Ilman karttatiedoston näkemistä on vähän hankala auttaa. Minä en muutenkaan ihan vähään aikaan pysty käyttämään tietokonetta, mutta jos et ihan julkisesti halua karttaasi jakaa, löytyy varmaan joku, joka suostuu auttamaan jos k.o. henkilölle lähetät kartan yksityisviestillä. Minullekin kyllä saa lähettää, mutta mainitsemastani syystä johtuen siinä voi kestää jonkun aikaa ennen kuin pystyn auttamaan.
verihyypp
Newcomer
Posts: 7
Joined: Sun Jun 05, 2011 9:43 pm

Re: Karttaongelma

Post by verihyypp »

Ihan sama ongelma ollut minulla. Ei suostu toimimaan millään mappi versiolla. Ainoastaan valmiina tulleet toimivat. Toinen bugi on myös sellainen, ettet pysty lataamaan mappia, jos olet tallentanut työsi. Työn pitää olla tallentamaton että se suostuu lataamaan mapin. Tämän saa korjattua tekemällä uuden projektin, ja kopiomalla vanhan siihen uuteen. Se ei ole tallennettu joten latuu toimii.
JATothrim
Tech Developer
Tech Developer
Posts: 606
Joined: Tue Aug 28, 2007 6:46 pm
Location: Kuopio

Re: Karttaongelma

Post by JATothrim »

Tilekarttan on aina oltava tallennettu 1.3 formaattiin.

CB on lyömättömän kätevä silloin, kun haluaa koodata pientä. Koodille, jota ei ole tallennettu vielä, löytyy jopa mediaa. Jos tarkoitus on taas tehdä isompaa projua (reippasti enemmän koodia mitä mahtuu ruudulle kerralla), kannattaa projektille tehdä oma kansio ja tallentaa koodi luotuun kansioon viimeistään silloin kun aletaan lataamaan mediaa.
Käännetty ohjelma etsii tiedostoja sen nykyisestä kansiosta joka voidaan asettaa ChDir komennolla. ChDir:llä asetetusta kansiosta päästään ylemmälle tasolle '..\' tiedostopolussa. Tallentamaton koodi käännetään ja tallennetaan cbRun.exe:ksi, joka sijaitsee 'C:\Program Files\CoolBasic\IDE' kansiossa. Nykyinen kansio asetetaan ohjelmalle 'C:\Program Files\CoolBasic\':ksi, jolloin ohjelma löytää 'C:\Program Files\CoolBasic\Media' kansiossa olevat kuvat ja muut härpäkeet. Tiedostopolku on relatiivinen ohjelman nykyiseen kansioon, kun levytunnus C:, D:, Z:, E: jne. uuppuu polun alusta.

Kun koodi tallennettaan, ylempi automaagisuus "häviää" ja ohjelman nykyinen kansio asetetaan samaksi kuin se, johon koodi tallennettiin.

LoadThing("media\..\media\blah.thing") tulkitaan näin: LoadThing(CurrentDir()+"media\blah.thing")
LoadThing("C:\media\..\blöh.thing") tulkitaan näin: LoadThing("C:\blöh.thing")

Vähän turha selittää tätä, koska varsinaiseen kysymykseen vastatiin jo, ja tämä sama kysymys/vastaus on pyörinyt tällä ties miten useasti. Oh well. :D
-On selkeästi impulsiivinen koodaaja joka...
ohjelmoi C++:lla rekursiivisesti instantioidun templaten, jonka jokainen instantiaatio instantioi sekundäärisen singleton-template-luokan, jonka jokainen instanssi käynistää säikeen tulostakseen 'jea'.
Post Reply