cbMap - Karttafunktioita 3D-ominaisuuksilla
-
- Advanced Member
- Posts: 485
- Joined: Tue Aug 28, 2007 3:53 pm
- Location: Suomi, Finland
- Contact:
Re: cbMap - Karttafunktioita 3D-ominaisuuksilla
joo mutta missään ei luketnut että se käyttää world koordinaatteja!
Re: cbMap - Karttafunktioita 3D-ominaisuuksilla
cbMap.cb:ssä on funktion edessä kommentti:tuhoojabotti wrote:joo mutta missään ei luketnut että se käyttää world koordinaatteja!
// Koordinaatit ovat pelimaailman pikseleitä.
-
- Advanced Member
- Posts: 485
- Joined: Tue Aug 28, 2007 3:53 pm
- Location: Suomi, Finland
- Contact:
Re: cbMap - Karttafunktioita 3D-ominaisuuksilla
ups! no ihan sama hyvin toimii nyt kiitos avusta mutta kuinka saisin helposti laskettua tilen keskikohdan koordinaatit (tykin sijoitus tilen keskelle).
-
- Moderator
- Posts: 1583
- Joined: Mon Aug 27, 2007 11:24 pm
- Location: Otaniemi - Mikkeli -pendelöinti
Re: cbMap - Karttafunktioita 3D-ominaisuuksilla
tuhoojabotti wrote:ups! no ihan sama hyvin toimii nyt kiitos avusta mutta kuinka saisin helposti laskettua tilen keskikohdan koordinaatit (tykin sijoitus tilen keskelle).
Code: Select all
PositionObject Tykki,x + tilex/2, y + tiley/2
-
- Advanced Member
- Posts: 485
- Joined: Tue Aug 28, 2007 3:53 pm
- Location: Suomi, Finland
- Contact:
Re: cbMap - Karttafunktioita 3D-ominaisuuksilla
Code: Select all
x=gettilex(MouseWX())
y=gettiley(MouseWX())
PositionObject torni\Tykki,x + tilex/2, y + tiley/2
-
- Moderator
- Posts: 1583
- Joined: Mon Aug 27, 2007 11:24 pm
- Location: Otaniemi - Mikkeli -pendelöinti
Re: cbMap - Karttafunktioita 3D-ominaisuuksilla
No ei tietenkään, jos tilex ja tiley ovat nollia. En tokikaan voi tietää, minkä kokoisia tilejä käytät. Katsot siis tilesetistäsi yhden tilen leveyden ja jaat sen kahdella ja laitat tuon "tilex/2" -jutun tilalle. Sama korkeudelle.tuhoojabotti wrote:Näinkö? ei nimittäin toimi (ei siis mee keskelle)Code: Select all
x=gettilex(MouseWX()) y=gettiley(MouseWX()) PositionObject torni\Tykki,x + tilex/2, y + tiley/2
Re: cbMap - Karttafunktioita 3D-ominaisuuksilla
Kirjaston MapLoad laskee tilen koon globaaleihin muuttujiin gTileWidth ja gTileHeight mutta niitä ei tässä yhteydessä tarvita.koodaaja wrote:Katsot siis tilesetistäsi yhden tilen leveyden ja jaat sen kahdella ja ...
GetTileX ja GetTileY palauttavat maailmankoordinaattien mukaisen tileposition.
Kun tiedetään tilepositio niin loppu on helppoa:
Code: Select all
ObjectToMap(obj, GetTileX(MouseWX()), GetTileY(MouseWY()))
-
- Advanced Member
- Posts: 485
- Joined: Tue Aug 28, 2007 3:53 pm
- Location: Suomi, Finland
- Contact:
Re: cbMap - Karttafunktioita 3D-ominaisuuksilla
kiitos kaikille auttajille nyt kaikki toimii!
Re: cbMap - Karttafunktioita 3D-ominaisuuksilla
En tiedä mitä sanoa, mutta tämä on aivan MAHTAVAA! Tulen varmasti käyttämään tätä! Kokeilin itsekkin tätä hieman, tämä on hyvin helppo tapa hallita tällaisia taloja. ^^ Vähän lagia taisi tulla kun laitoin talon korkuudeksi + 30.
Life is hell and then you die, so better speed it up with knife!
<--- Typotin käyttäjä nimeni (Nucreal) -> (Nuclear)
<--- Typotin käyttäjä nimeni (Nucreal) -> (Nuclear)
Re: cbMap - Karttafunktioita 3D-ominaisuuksilla
en voi sanoa muutakuin että AIVAN SAAK.... MAHTAVA!!!!
Miten venytät/vanutat noita "Textuureita" ?!? luulin moisen olevan mahdotonta reaaliajassa cb:llä !
Miten venytät/vanutat noita "Textuureita" ?!? luulin moisen olevan mahdotonta reaaliajassa cb:llä !
Re: cbMap - Karttafunktioita 3D-ominaisuuksilla
Reaaliajassa se onkin mahdotonta tai ainakin erittäin tehotonta.Vieras wrote:Miten venytät/vanutat noita "Textuureita" ?!? luulin moisen olevan mahdotonta reaaliajassa cb:llä !
Idea on itseasiassa aika yksinkertainen. Kun rakennus luodaan, lasketaan sen pohjan mitat ja katon mitat joihin vaikuttaa rakennuksen korkeus.
Nyt siis tiedetään seinän leveys alapäästä ja yläpäästä. Nämä mitat ei enää myöhemmin muutu.
Sen jälkeen tekstuuri pilkotaan yhden pikselin korkuisiksi (tai levyisiksi sivuseinillä) siivuiksi jonka jälkeen ne skaalataan siten että alimmainen siivu on pohjan mittainen ja ylimmäinen siivu on katon mittainen ja kaikki siltä väliltä tietysti tasaisesti näiden väliltä.
Piirtovaiheessa yksinkertaisella matematiikalla lasketaan mikä siivu mihinkin piirretään.
-
- Advanced Member
- Posts: 335
- Joined: Tue Aug 28, 2007 3:55 pm
- Location: Siellä jossain
Re: cbMap - Karttafunktioita 3D-ominaisuuksilla
Kun haluaa poistaa kaikki objektit/kuvat jne, niin mitä täytyy poistaa? MapDelete(), varmaankin tekstuurit, mutta mitä muuta?
Projektit:
Joku projekti meneillään... Mitähän siitäkin tulee
Joku projekti meneillään... Mitähän siitäkin tulee
Re: cbMap - Karttafunktioita 3D-ominaisuuksilla
Hyvää työtä! Tulen itsekkin varmasti käyttämään tätä. Kiitokset Marcoderille!
Re: cbMap - Karttafunktioita 3D-ominaisuuksilla
Zippi ei toimi! Ottaa päähän... Ku kerranki o jotai hienoo luvas!
Solar Eclipse
We're in a simulation, and God is trying to debug us.
- Misthema
- Advanced Member
- Posts: 312
- Joined: Mon Aug 27, 2007 8:32 pm
- Location: Turku, Finland
- Contact:
Re: cbMap - Karttafunktioita 3D-ominaisuuksilla
Hmm... Hienolta systeemiltä todellakin näyttää.
Sain tässä idean jonka voisi toteuttaa tällä cbMap-systeemillä,
mutta en sitten tiedä onko mahdollista tehdä 1px levyistä seinämää?
Eli siis ihan pelkkää seinää, eikä kokonaista rakennusta.
Peli-ideana olisi siis joku hassun kaupan rakentaminen jne.,
eli siis vain seiniä pitäisi saada tehtyä.
Ja tietenkin kaupan hyllyt olisi hienoa saada tällä toteutettua.
Mietin tässä siis sitä, että voiko tuolla systeemillä tehdä
pikseleillä määritellyn levyisiä objekteja?
Esimerkin voisin heittää topikissa mainitusta puusta,
eli siis jos ensin tehdään maasta nouseva 2 tasoa korkea ja 10x10 pikseliä leveä
puu, jonka päälle laitetaan vaikka flättinä (0 tasoa korkea) 2 tason
korkeudelle ja 20x20 pikseliä leveät lehdet, niin onnistuuko tällainen?
Vai meneekö X- ja Y-akseleiden mukaan koot "tileinä"?
Sain tässä idean jonka voisi toteuttaa tällä cbMap-systeemillä,
mutta en sitten tiedä onko mahdollista tehdä 1px levyistä seinämää?
Eli siis ihan pelkkää seinää, eikä kokonaista rakennusta.
Peli-ideana olisi siis joku hassun kaupan rakentaminen jne.,
eli siis vain seiniä pitäisi saada tehtyä.
Ja tietenkin kaupan hyllyt olisi hienoa saada tällä toteutettua.
Mietin tässä siis sitä, että voiko tuolla systeemillä tehdä
pikseleillä määritellyn levyisiä objekteja?
Esimerkin voisin heittää topikissa mainitusta puusta,
eli siis jos ensin tehdään maasta nouseva 2 tasoa korkea ja 10x10 pikseliä leveä
puu, jonka päälle laitetaan vaikka flättinä (0 tasoa korkea) 2 tason
korkeudelle ja 20x20 pikseliä leveät lehdet, niin onnistuuko tällainen?
Vai meneekö X- ja Y-akseleiden mukaan koot "tileinä"?
Re: cbMap - Karttafunktioita 3D-ominaisuuksilla
Helpoimmillaan tilan, johon näkee sisälle, saa siten että tekee normaalin rakennuksen mutta ei määrittele kattotekstuuria lainkaan. Tässä on se ongelma että tekstuurien takapintaa ei piirretä joten seinistä näkee läpi rakennuksen sisäpuolelta.Misthema wrote:...mutta en sitten tiedä onko mahdollista tehdä 1px levyistä seinämää?
Eli siis ihan pelkkää seinää, eikä kokonaista rakennusta.
Peli-ideana olisi siis joku hassun kaupan rakentaminen jne.,
Pitääkin tehdä niin että rakennus koostetaan neljästä eri rakennuksesta joiden leveydeksi tai pituudeksi annetaan nolla (riippuen seinän suunnasta) ja määritellään vain tarvittavat tekstuurit.
Lisää tuo koodinpätkä siihen esimerkkiin ja kokeile. Hyllyä en laittanut sillä piirtojärjestys ei toimi oikein.
Tuohon pitää kehittää sitten joku oma törmäystunnistussysteemi.
Code: Select all
// Vasen seinä
b = CreateBuilding(19, 15, 0, 0, 4, 4)
SetTexture(b, TX_LEFT, wall2)
SetTexture(b, TX_RIGHT, wall1)
// Oikea seinä
b = CreateBuilding(24, 15, 0, 0, 4, 4)
SetTexture(b, TX_LEFT, wall1)
SetTexture(b, TX_RIGHT, wall2)
// Takaseinä
b = CreateBuilding(19, 15, 0, 5, 0, 4)
SetTexture(b, TX_BACK, wall2)
SetTexture(b, TX_FRONT, wall1)
// Etuseinä
b = CreateBuilding(19, 19, 0, 5, 0, 4)
SetTexture(b, TX_BACK, wall1)
SetTexture(b, TX_FRONT, wall2)
Kaikki CreateBuilding-funktion parametrit annetaan tileinä kokonaislukuna. Tein näin ihan selkeyden vuoksi mutta mitään teknistä estettä ei ole etteikö systeemiä voisi rakentaa toisin. Yksi tapa voisi olla että dimensiot edelleen annetaan tileinä mutta voitaisiin käyttää liukulukuja eli rakennuksen x-koordinaatti olisi vaikka 10,1 ja leveys 5,3 tileä tms. Tätä varten tulisi koodissa tiettyjä integerejä vaihtaa floateiksi.Misthema wrote: Mietin tässä siis sitä, että voiko tuolla systeemillä tehdä
pikseleillä määritellyn levyisiä objekteja?
...
Vai meneekö X- ja Y-akseleiden mukaan koot "tileinä"?
Jos rakennuksen pohjan taso on nolla eli se on maassa, niin systeemi tekee karttaan törmäystilet automaattisesti rakennuksen alle. Jos tekisi tuon float-virityksen niin tämä systeemi pitäisi miettiä uusiksi.
Re: cbMap - Karttafunktioita 3D-ominaisuuksilla
Nii tarttis toimiva ZIPI tai RARRI! Onha se iha kiva lukee toiste juttuja mut pitäis päästä ittekki testaa...
Solar Eclipse
We're in a simulation, and God is trying to debug us.
Re: cbMap - Karttafunktioita 3D-ominaisuuksilla
7-zipillä ainakin aukeaa.programmer of DSG wrote:Nii tarttis toimiva ZIPI tai RARRI! Onha se iha kiva lukee toiste juttuja mut pitäis päästä ittekki testaa...
- Misthema
- Advanced Member
- Posts: 312
- Joined: Mon Aug 27, 2007 8:32 pm
- Location: Turku, Finland
- Contact:
Re: cbMap - Karttafunktioita 3D-ominaisuuksilla
Joo, aivan. Kiitos Marcoder tästä! Voisikin alkaa virittelemään funktioita uuteen uskoon.
-
- Advanced Member
- Posts: 335
- Joined: Tue Aug 28, 2007 3:55 pm
- Location: Siellä jossain
Re: cbMap - Karttafunktioita 3D-ominaisuuksilla
Nyt kun pelissäni pääsee maaliin ja siitä mennään valikkoon ja aloitetaan alusta, fps on 5-20. Eli aivan kuin edellinen kartta jäisi taustalle. Pistän kyllä MapDelete() mutta se ei taida poistaa kaikkia?
EDIT: keksin ite, ReleaseTextures() miten en ollut huomannut aiemmin...
EDIT: keksin ite, ReleaseTextures() miten en ollut huomannut aiemmin...
Last edited by iTKEVAnAKKI on Sun Sep 16, 2007 7:47 pm, edited 1 time in total.
Projektit:
Joku projekti meneillään... Mitähän siitäkin tulee
Joku projekti meneillään... Mitähän siitäkin tulee