Page 3 of 4

Re: cbMap - Karttafunktioita 3D-ominaisuuksilla

Posted: Sun Sep 02, 2007 8:10 pm
by tuhoojabotti
joo mutta missään ei luketnut että se käyttää world koordinaatteja!

Re: cbMap - Karttafunktioita 3D-ominaisuuksilla

Posted: Mon Sep 03, 2007 8:36 am
by Marcoder
tuhoojabotti wrote:joo mutta missään ei luketnut että se käyttää world koordinaatteja!
cbMap.cb:ssä on funktion edessä kommentti:
// Koordinaatit ovat pelimaailman pikseleitä.

Re: cbMap - Karttafunktioita 3D-ominaisuuksilla

Posted: Mon Sep 03, 2007 5:06 pm
by tuhoojabotti
ups! no ihan sama hyvin toimii nyt kiitos avusta mutta kuinka saisin helposti laskettua tilen keskikohdan koordinaatit (tykin sijoitus tilen keskelle).

Re: cbMap - Karttafunktioita 3D-ominaisuuksilla

Posted: Mon Sep 03, 2007 5:14 pm
by koodaaja
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
Eli tilex ja tiley ovat tilen koko, yleensä 32*32 tai 16*16 jne. Ja x ja y paikan tilekoordinaatit.

Re: cbMap - Karttafunktioita 3D-ominaisuuksilla

Posted: Mon Sep 03, 2007 9:09 pm
by tuhoojabotti

Code: Select all

x=gettilex(MouseWX())
y=gettiley(MouseWX())
PositionObject torni\Tykki,x + tilex/2, y + tiley/2
Näinkö? ei nimittäin toimi (ei siis mee keskelle)

Re: cbMap - Karttafunktioita 3D-ominaisuuksilla

Posted: Mon Sep 03, 2007 10:23 pm
by koodaaja
tuhoojabotti wrote:

Code: Select all

x=gettilex(MouseWX())
y=gettiley(MouseWX())
PositionObject torni\Tykki,x + tilex/2, y + tiley/2
Näinkö? ei nimittäin toimi (ei siis mee keskelle)
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.

Re: cbMap - Karttafunktioita 3D-ominaisuuksilla

Posted: Tue Sep 04, 2007 8:42 am
by Marcoder
koodaaja wrote:Katsot siis tilesetistäsi yhden tilen leveyden ja jaat sen kahdella ja ...
Kirjaston MapLoad laskee tilen koon globaaleihin muuttujiin gTileWidth ja gTileHeight mutta niitä ei tässä yhteydessä tarvita.

GetTileX ja GetTileY palauttavat maailmankoordinaattien mukaisen tileposition.
Kun tiedetään tilepositio niin loppu on helppoa:

Code: Select all

ObjectToMap(obj, GetTileX(MouseWX()), GetTileY(MouseWY()))

Re: cbMap - Karttafunktioita 3D-ominaisuuksilla

Posted: Tue Sep 04, 2007 3:34 pm
by tuhoojabotti
kiitos kaikille auttajille nyt kaikki toimii!

Re: cbMap - Karttafunktioita 3D-ominaisuuksilla

Posted: Thu Sep 06, 2007 1:36 pm
by Nucreal
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.

Re: cbMap - Karttafunktioita 3D-ominaisuuksilla

Posted: Fri Sep 07, 2007 10:18 am
by Guest
en voi sanoa muutakuin että AIVAN SAAK.... MAHTAVA!!!! :o
Miten venytät/vanutat noita "Textuureita" ?!? :shock: luulin moisen olevan mahdotonta reaaliajassa cb:llä !

Re: cbMap - Karttafunktioita 3D-ominaisuuksilla

Posted: Fri Sep 07, 2007 11:50 am
by Marcoder
Vieras wrote:Miten venytät/vanutat noita "Textuureita" ?!? :shock: luulin moisen olevan mahdotonta reaaliajassa cb:llä !
Reaaliajassa se onkin mahdotonta tai ainakin erittäin tehotonta.

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.

Re: cbMap - Karttafunktioita 3D-ominaisuuksilla

Posted: Sat Sep 08, 2007 1:41 am
by iTKEVAnAKKI
Kun haluaa poistaa kaikki objektit/kuvat jne, niin mitä täytyy poistaa? MapDelete(), varmaankin tekstuurit, mutta mitä muuta?

Re: cbMap - Karttafunktioita 3D-ominaisuuksilla

Posted: Sat Sep 08, 2007 11:29 am
by Arska
Hyvää työtä! Tulen itsekkin varmasti käyttämään tätä. Kiitokset Marcoderille! ;)

Re: cbMap - Karttafunktioita 3D-ominaisuuksilla

Posted: Sun Sep 09, 2007 12:44 pm
by MaGetzUb
Zippi ei toimi! Ottaa päähän... Ku kerranki o jotai hienoo luvas!

Re: cbMap - Karttafunktioita 3D-ominaisuuksilla

Posted: Wed Sep 12, 2007 3:26 am
by Misthema
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ä"?

Re: cbMap - Karttafunktioita 3D-ominaisuuksilla

Posted: Wed Sep 12, 2007 8:12 am
by Marcoder
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.,
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.
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)
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ä"?
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.
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

Posted: Wed Sep 12, 2007 5:41 pm
by MaGetzUb
Nii tarttis toimiva ZIPI tai RARRI! :| Onha se iha kiva lukee toiste juttuja mut pitäis päästä ittekki testaa... ;)

Re: cbMap - Karttafunktioita 3D-ominaisuuksilla

Posted: Wed Sep 12, 2007 7:50 pm
by Marcoder
programmer of DSG wrote:Nii tarttis toimiva ZIPI tai RARRI! :| Onha se iha kiva lukee toiste juttuja mut pitäis päästä ittekki testaa... ;)
7-zipillä ainakin aukeaa.

Re: cbMap - Karttafunktioita 3D-ominaisuuksilla

Posted: Thu Sep 13, 2007 1:42 am
by Misthema
Joo, aivan. :P Kiitos Marcoder tästä! Voisikin alkaa virittelemään funktioita uuteen uskoon. ;)

Re: cbMap - Karttafunktioita 3D-ominaisuuksilla

Posted: Sat Sep 15, 2007 5:57 pm
by iTKEVAnAKKI
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() :D miten en ollut huomannut aiemmin...