Tyhmät kysymykset (I/2009)
-
- Advanced Member
- Posts: 485
- Joined: Tue Aug 28, 2007 3:53 pm
- Location: Suomi, Finland
- Contact:
Re: Tyhmät kysymykset
SDK:ssa on myös funkkari tuohon...
Re: Tyhmät kysymykset
Mitenkäs pitäis toimia, kun (ylhäältäpäin kuvatussa) mapissa on puita, jotka koostuu 9 tilestä, keskimmäinen törmäys-tasossa, muut overissa.
2 ongelmaa:
1. Ukko ei törmää puun keskimmäiseen tileen(=runkoon), oon pelin koodissa laittanu
setupcollision ukko,mappi,2,4,2
2. Maskiväri ei toimi (käyttää defaulttia eli mustaa, vaikka asetettu 255,0,255). Tilesterissä toimii, oikea on valittu, mutta kun cb:stä ajaa pelin, niin ei toimi (=näkyy pinkkiä).
Pitääkö KARTAN maskiväri jotenki määrittää koodissa? o.O
2 ongelmaa:
1. Ukko ei törmää puun keskimmäiseen tileen(=runkoon), oon pelin koodissa laittanu
setupcollision ukko,mappi,2,4,2
2. Maskiväri ei toimi (käyttää defaulttia eli mustaa, vaikka asetettu 255,0,255). Tilesterissä toimii, oikea on valittu, mutta kun cb:stä ajaa pelin, niin ei toimi (=näkyy pinkkiä).
Pitääkö KARTAN maskiväri jotenki määrittää koodissa? o.O
Re: Tyhmät kysymykset
Muista Tilesterissä tallentaa mappi 1.3-muotoon. En kyllä tiedä että miten tämä vaikuttaa hit-kerroksiin, en ikinä käytä Tilesteriä.
Ja kyllä, kartta pitää maskata myös koodissa. Oletusmaski on musta, mutta voit vaihtaa sen komennolla MaskObject.
Ja kyllä, kartta pitää maskata myös koodissa. Oletusmaski on musta, mutta voit vaihtaa sen komennolla MaskObject.
Re: Tyhmät kysymykset
Tattista juu tosta maskaamisesta, oishan se pitäny tajuta, kun sen oppitunneiltaki saa selville -.-
Se hit-layerin toiminta ei kuitenkaan jostain syystä onnistu... ukko ei törmää.
Vinkkejä from any1?
Se hit-layerin toiminta ei kuitenkaan jostain syystä onnistu... ukko ei törmää.
Vinkkejä from any1?
Re: Tyhmät kysymykset
En ole varma mutta olen kuullut että tilesterissä pitäisi tehdä hit kerros tilellä nro. 1. En ole varma koska en itse käytä tilesteriä.
Re: Tyhmät kysymykset
Kiitti! Toi tepsi, eli törmättävän tilen pitää olla vasemmassa ylänurkas oleva tile ja sit se "oikea" siihen päälle overiin.
Sit tää varmaan kelpaa ihan hyvin tyhmät kysymykset osioon, mut miten teette normaalisti mapit?(siis jos ette käytä tilesteriä)
Sit tää varmaan kelpaa ihan hyvin tyhmät kysymykset osioon, mut miten teette normaalisti mapit?(siis jos ette käytä tilesteriä)
Re: Tyhmät kysymykset
Itse käytän TileGeniä. Helppo käyttöliittymä, dynaaminen mapin koko ja vakaa ohjelma. Saat sen täältä.
On olemassa myös A Stigmator-niminen ohjelma, joka on tehty coolbasicilla. Muuten ihan hyvä, mutta itselläni se kaatuu aina vähän väliä, jonka takia en käytä sitä. Kaatumista esiintyy vain joillakin koneilla, joten kannattaa kokeilla molempia ohjelmia ja katsoa kummasta tykkää enemmän. Lataa täältä.
On olemassa myös A Stigmator-niminen ohjelma, joka on tehty coolbasicilla. Muuten ihan hyvä, mutta itselläni se kaatuu aina vähän väliä, jonka takia en käytä sitä. Kaatumista esiintyy vain joillakin koneilla, joten kannattaa kokeilla molempia ohjelmia ja katsoa kummasta tykkää enemmän. Lataa täältä.
Re: Tyhmät kysymykset
ajattelin tehä stategia pelin.
miten saadaan esimerkiksi 30 kloonattua ukkoa törmäämään toisiinsa?
onko tää mahollista muuten kuin setupcollisionilla.
miten saadaan esimerkiksi 30 kloonattua ukkoa törmäämään toisiinsa?
onko tää mahollista muuten kuin setupcollisionilla.
-
- Forum Veteran
- Posts: 2396
- Joined: Tue Aug 28, 2007 4:20 pm
Re: Tyhmät kysymykset
Jos käytät objekteja, setupcollision on todennäköisesti paras ratkaisu (Tai no riippuu mitä oot väsäämässä...) Mutta typet / taulukot kunniaan.DuCk- wrote:onko tää mahollista muuten kuin setupcollisionilla.
Re: Tyhmät kysymykset
Onnistuu muillakin. On olemassa sellaisia funkkareita kuin ObjectsOverlap(), Imagesoverlap(), jopa Distance() ja Distance2()-funkkareilla voit järjestää asian. Voit myös tarkastaa objektien koordinaatit funktioilla ObjectX() ja ObjectY(), sekä rajoittaa objektien sijaintia näitä tietoja apuna käyttäen. (ts. tarkistaa onko objekti liian lähellä ja siirtää se tarpeeksi kauas).
SetupCollision on kuitenkin todennäköisesti paras ratkaisu.
SetupCollision on kuitenkin todennäköisesti paras ratkaisu.
Re: Tyhmät kysymykset
Pitäis näköjään pian rekisteröityäkin tänne... en itse asias oo varma oonko jo rekisteröityny joskus kauan sitte...
Itse asiaan:
Metsästyspelistä yli 700 riviä jo saanu onnistumaan, mut nyt ei vaan raksuta et, miks helkutissa tää ei toimi? Näyttää yksinkertaselta.
Pitäis siis pausevalikko saada aikaan.
Pelissä on kaikkea liikkuvaa objektia ja taustamusa looppina.
Sitte: If EscapeKey() Then Gosub pausevalikko
Se menee tohon ihan onnistuneesti, kyllä.
Valikkokuva (kts koodi alempana) kuitenki vaan välähtää siinä, niiku sitä ei piirrettäis silmukan sisällä.
Looppi kuitenki jatkuu, sillä vasta ku klikkaa, peli jatkuu (objektit liikkuu) vaikkakin tausamusa soi kokoajan (tuskin aloittaa alusta, kun tossa loopissa sitä ei ole käsketty).
Raakana tollasenaan ilman mitään muuta koodia toi toimi hyvin, ku poistin ekan, kolmannen ja vikan rivin ja tallensin oikein.
En kuitenkaan tajua, et miks ei jää ruudulle keskellä peliä.
Toivottavasti joku tajus jotaki
Itse asiaan:
Metsästyspelistä yli 700 riviä jo saanu onnistumaan, mut nyt ei vaan raksuta et, miks helkutissa tää ei toimi? Näyttää yksinkertaselta.
Pitäis siis pausevalikko saada aikaan.
Pelissä on kaikkea liikkuvaa objektia ja taustamusa looppina.
Sitte: If EscapeKey() Then Gosub pausevalikko
Se menee tohon ihan onnistuneesti, kyllä.
Valikkokuva (kts koodi alempana) kuitenki vaan välähtää siinä, niiku sitä ei piirrettäis silmukan sisällä.
Looppi kuitenki jatkuu, sillä vasta ku klikkaa, peli jatkuu (objektit liikkuu) vaikkakin tausamusa soi kokoajan (tuskin aloittaa alusta, kun tossa loopissa sitä ei ole käsketty).
Code: Select all
pausevalikko:
pause=LoadImage("hlv\esuap.hlv")
ShowMouse cursor
Repeat
If MouseUp(1) Then Goto pausetakaisin
DrawImage pause,337,209
DrawScreen
Forever
pausetakaisin:
Return
En kuitenkaan tajua, et miks ei jää ruudulle keskellä peliä.
Toivottavasti joku tajus jotaki
Re: Tyhmät kysymykset
Pelimaailma täytyy piirtää ennen kuvia, muuten kuvat jäävät sen alle.
Sitten pari muuta huomiota. Ensinnäkin, pois nuo hirveät goto-purkkaviritykset. Pause-kuvaa ei kannata ladata joka kerta kun peli keskeytetään. Riittää kun sen lataa kerran pelin käynnistyksen yhteydessä. Mielestäni olisi myös luontevaa, että peli jatkuisi samasta napista kuin mistä sen saa pauselle, mutta tee toki omalla tavallasi jos et ole samaa mieltä
Sitten pari muuta huomiota. Ensinnäkin, pois nuo hirveät goto-purkkaviritykset. Pause-kuvaa ei kannata ladata joka kerta kun peli keskeytetään. Riittää kun sen lataa kerran pelin käynnistyksen yhteydessä. Mielestäni olisi myös luontevaa, että peli jatkuisi samasta napista kuin mistä sen saa pauselle, mutta tee toki omalla tavallasi jos et ole samaa mieltä
Code: Select all
pause=LoadImage("hlv\esuap.hlv")
..koodia...
pausevalikko:
ShowMouse cursor
ClearKeys
Repeat
If KeyHit(cbkeyesc) Then exit
DrawGame
DrawImage pause,337,209
DrawScreen
Forever
ClearKeys
Return
Re: Tyhmät kysymykset
Toihan se vastaus oliki tosiaan...
en itekään gotoista tossa tykkää, mutta exitin manuaalissa sanottiin, ettei if-lauseisiin toimi... tiedä sitten.
Toi pause oli ladattu tohon koska... ei mitään
Siihen oli syynsä, mutta siirrän sen kuitenkin.
Ja viimene, eli se hiirijuttu on se, että pausevalikossa on samassa kuvassa 2 nappulaa ja tohon hiiren nappulan rinnalle laitan "Jatka peliä"-kuvan koordinaatit ehdoksi, että tulee exit.
Älä valita Oon alusta asti täs pelis käyttäny tota menetelmää nappuloiden kanssa ja käytän ohjelman loppuuun saakkakin. En viittiny kesken ruveta vaihtamaan > ensi ohjelmassa sitten.
en itekään gotoista tossa tykkää, mutta exitin manuaalissa sanottiin, ettei if-lauseisiin toimi... tiedä sitten.
Toi pause oli ladattu tohon koska... ei mitään
Siihen oli syynsä, mutta siirrän sen kuitenkin.
Ja viimene, eli se hiirijuttu on se, että pausevalikossa on samassa kuvassa 2 nappulaa ja tohon hiiren nappulan rinnalle laitan "Jatka peliä"-kuvan koordinaatit ehdoksi, että tulee exit.
Älä valita Oon alusta asti täs pelis käyttäny tota menetelmää nappuloiden kanssa ja käytän ohjelman loppuuun saakkakin. En viittiny kesken ruveta vaihtamaan > ensi ohjelmassa sitten.
-
- Moderator
- Posts: 1583
- Joined: Mon Aug 27, 2007 11:24 pm
- Location: Otaniemi - Mikkeli -pendelöinti
Re: Tyhmät kysymykset
Ei Exit if-lauseisiin toimi, muttei tuossa siitä halutakaan poistua vaan siitä ympäröivästä loopista. Siitähän sillä poistutaan.
Re: Tyhmät kysymykset
Vaihtaako SDK:n avaus dialogi oletuskansiota?
Mulla nimittäin jostain syystä oletuskansio vaihtuu aina ladatun tiedoston kansioks
Edit:
Testasin ite ja kyllä, kansio vaihtuu toinen kysymys:
Miten saa Ohjelman hakemistopolun selville?
Mulla nimittäin jostain syystä oletuskansio vaihtuu aina ladatun tiedoston kansioks
Edit:
Testasin ite ja kyllä, kansio vaihtuu toinen kysymys:
Miten saa Ohjelman hakemistopolun selville?
Koodarina kohtalainen, henkilönä vittumainen
Re: Tyhmät kysymykset
Code: Select all
If MouseWX()<ObjectX(vihu_obj(i))+20 And MouseWX()>ObjectX(vihu_obj(i))-20 And MouseWY()<ObjectY(vihu_obj(i))+20 And MouseWY()>ObjectX(vihu_obj(i))-20 And MouseHit(1) Then
DeleteObject vihu_OBJ(i)
vihu_ELOSSA(i)=OFF
Taulukoilla sähellän...
Huuda mun ip:tä!
Re: Tyhmät kysymykset
Vika ei tuossa koodissa näytä olevan. Itse kun testasin niin toimi ihan hyvin. (Tosin pari pikku ongelmaa tuli koska piti ite koodata siihen ympärille kaikenlaista enkä jaksanut mitään ihmeellisiä vääntöjä tehdä)Olw1 wrote:Jostain syystä ei poista kaikkia,vaikka varmasti osuis?Code: Select all
If MouseWX()<ObjectX(vihu_obj(i))+20 And MouseWX()>ObjectX(vihu_obj(i))-20 And MouseWY()<ObjectY(vihu_obj(i))+20 And MouseWY()>ObjectX(vihu_obj(i))-20 And MouseHit(1) Then DeleteObject vihu_OBJ(i) vihu_ELOSSA(i)=OFF
Taulukoilla sähellän...
Minkä kokosia sun objectit on? jos ne on yli 40x40 niin toi ei toimi.
Koodarina kohtalainen, henkilönä vittumainen
Re: Tyhmät kysymykset
30x30...nevssons wrote:Vika ei tuossa koodissa näytä olevan. Itse kun testasin niin toimi ihan hyvin. (Tosin pari pikku ongelmaa tuli koska piti ite koodata siihen ympärille kaikenlaista enkä jaksanut mitään ihmeellisiä vääntöjä tehdä)Olw1 wrote:Jostain syystä ei poista kaikkia,vaikka varmasti osuis?Code: Select all
If MouseWX()<ObjectX(vihu_obj(i))+20 And MouseWX()>ObjectX(vihu_obj(i))-20 And MouseWY()<ObjectY(vihu_obj(i))+20 And MouseWY()>ObjectX(vihu_obj(i))-20 And MouseHit(1) Then DeleteObject vihu_OBJ(i) vihu_ELOSSA(i)=OFF
Taulukoilla sähellän...
Minkä kokosia sun objectit on? jos ne on yli 40x40 niin toi ei toimi.
Ja kyllä tuo toimis isommillaki,se ottais ne vaan siitä keskustasta.
Peli siis toimii näin:
Vihut tulee ylhäältä alas,ja ne pitää "ampua" ennen kuin ne ehtivät ruudun alalaitaan.
Hiukan useammin näytti osuvan, kun napsautti hieman objectin eteen.
Sitten oli sellasia ihme bugeja että jos Y-koordinaatti on melkein sama,ihan sama objectien etäisyydelle,niin saattaa poistaa kummatkin/useampia kerralla.
Vaihtoehtoisia tapoja toteuttaa tuo???
Edit
Aina vaan ihmeellisempää.
Nyt huomasin että ruudun vasemmalla puolella se poistaa kaikki niinkuin pitääkin,ruudun oikealla puolella vain satunnaisesti?!?!??!
Huuda mun ip:tä!
Re: Tyhmät kysymykset
Mitä kaikkea clearobjects oikeen poistaa? Manuaalissa sanotaan, että vain objecteja.Kuitenkin kun yritän tehdä peliini eri kenttiä niin toiseen kenttään siirryttäessä tulee mav. Kun poistan clearobjectin niin silloin homma toimii. Kaikki objectit on varmasti ladattu toisessakin kentässä, koska ne ladataan aina samalla aliohjelmalla.
Äsken löysin täältä foorumilta aiheen jossa sanottiin, että tyypeillä tehdyt objectit pitäisi poistaa erikseen, onko tuossa jotain perää ja jos on niin miten ne sitten poistetaan.
Äsken löysin täältä foorumilta aiheen jossa sanottiin, että tyypeillä tehdyt objectit pitäisi poistaa erikseen, onko tuossa jotain perää ja jos on niin miten ne sitten poistetaan.
Re: Tyhmät kysymykset
Joo tyypit kannattaa poistaa erikseen,vaikka siten että teet funktion jossa ne poistetaan.
tossa siis poistetaan yksi tyyppi
Code: Select all
Function poista(obj)
For a.vihus = Each vihus
DeleteObject a\obj
Delete a
Next a
EndFunction
Sumu Games: Sam, Ur eye!