cbMap - Karttafunktioita 3D-ominaisuuksilla

Oletko tehnyt jotain, mistä muut voisivat hyötyä. Postita vinkit tänne.
tuhoojabotti
Advanced Member
Posts: 485
Joined: Tue Aug 28, 2007 3:53 pm
Location: Suomi, Finland
Contact:

Re: cbMap - Karttafunktioita 3D-ominaisuuksilla

Post by tuhoojabotti »

joo mutta missään ei luketnut että se käyttää world koordinaatteja!
Imagedev.tuhoojabotti.com — “Programmer (noun): An organism that turns caffeine into code.”
Marcoder
Active Member
Posts: 120
Joined: Tue Aug 28, 2007 8:21 am

Re: cbMap - Karttafunktioita 3D-ominaisuuksilla

Post 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ä.
tuhoojabotti
Advanced Member
Posts: 485
Joined: Tue Aug 28, 2007 3:53 pm
Location: Suomi, Finland
Contact:

Re: cbMap - Karttafunktioita 3D-ominaisuuksilla

Post by tuhoojabotti »

ups! no ihan sama hyvin toimii nyt kiitos avusta mutta kuinka saisin helposti laskettua tilen keskikohdan koordinaatit (tykin sijoitus tilen keskelle).
Imagedev.tuhoojabotti.com — “Programmer (noun): An organism that turns caffeine into code.”
koodaaja
Moderator
Moderator
Posts: 1583
Joined: Mon Aug 27, 2007 11:24 pm
Location: Otaniemi - Mikkeli -pendelöinti

Re: cbMap - Karttafunktioita 3D-ominaisuuksilla

Post 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.
tuhoojabotti
Advanced Member
Posts: 485
Joined: Tue Aug 28, 2007 3:53 pm
Location: Suomi, Finland
Contact:

Re: cbMap - Karttafunktioita 3D-ominaisuuksilla

Post 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)
Imagedev.tuhoojabotti.com — “Programmer (noun): An organism that turns caffeine into code.”
koodaaja
Moderator
Moderator
Posts: 1583
Joined: Mon Aug 27, 2007 11:24 pm
Location: Otaniemi - Mikkeli -pendelöinti

Re: cbMap - Karttafunktioita 3D-ominaisuuksilla

Post 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.
Marcoder
Active Member
Posts: 120
Joined: Tue Aug 28, 2007 8:21 am

Re: cbMap - Karttafunktioita 3D-ominaisuuksilla

Post 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()))
tuhoojabotti
Advanced Member
Posts: 485
Joined: Tue Aug 28, 2007 3:53 pm
Location: Suomi, Finland
Contact:

Re: cbMap - Karttafunktioita 3D-ominaisuuksilla

Post by tuhoojabotti »

kiitos kaikille auttajille nyt kaikki toimii!
Imagedev.tuhoojabotti.com — “Programmer (noun): An organism that turns caffeine into code.”
Nucreal
Newcomer
Posts: 33
Joined: Tue Aug 28, 2007 8:25 am

Re: cbMap - Karttafunktioita 3D-ominaisuuksilla

Post 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.
Life is hell and then you die, so better speed it up with knife!
<--- Typotin käyttäjä nimeni (Nucreal) -> (Nuclear)
Guest

Re: cbMap - Karttafunktioita 3D-ominaisuuksilla

Post 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ä !
Marcoder
Active Member
Posts: 120
Joined: Tue Aug 28, 2007 8:21 am

Re: cbMap - Karttafunktioita 3D-ominaisuuksilla

Post 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.
iTKEVAnAKKI
Advanced Member
Posts: 335
Joined: Tue Aug 28, 2007 3:55 pm
Location: Siellä jossain

Re: cbMap - Karttafunktioita 3D-ominaisuuksilla

Post by iTKEVAnAKKI »

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 ;)
Arska
Member
Posts: 73
Joined: Fri Aug 31, 2007 11:25 pm
Location: Iitti
Contact:

Re: cbMap - Karttafunktioita 3D-ominaisuuksilla

Post by Arska »

Hyvää työtä! Tulen itsekkin varmasti käyttämään tätä. Kiitokset Marcoderille! ;)
Image
MaGetzUb
Guru
Posts: 1715
Joined: Sun Sep 09, 2007 12:35 pm
Location: Alavus

Re: cbMap - Karttafunktioita 3D-ominaisuuksilla

Post by MaGetzUb »

Zippi ei toimi! Ottaa päähän... Ku kerranki o jotai hienoo luvas!
Solar Eclipse
Meneillä olevat Projektit:
We're in a simulation, and God is trying to debug us.
User avatar
Misthema
Advanced Member
Posts: 312
Joined: Mon Aug 27, 2007 8:32 pm
Location: Turku, Finland
Contact:

Re: cbMap - Karttafunktioita 3D-ominaisuuksilla

Post 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ä"?
Marcoder
Active Member
Posts: 120
Joined: Tue Aug 28, 2007 8:21 am

Re: cbMap - Karttafunktioita 3D-ominaisuuksilla

Post 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.
MaGetzUb
Guru
Posts: 1715
Joined: Sun Sep 09, 2007 12:35 pm
Location: Alavus

Re: cbMap - Karttafunktioita 3D-ominaisuuksilla

Post by MaGetzUb »

Nii tarttis toimiva ZIPI tai RARRI! :| Onha se iha kiva lukee toiste juttuja mut pitäis päästä ittekki testaa... ;)
Solar Eclipse
Meneillä olevat Projektit:
We're in a simulation, and God is trying to debug us.
Marcoder
Active Member
Posts: 120
Joined: Tue Aug 28, 2007 8:21 am

Re: cbMap - Karttafunktioita 3D-ominaisuuksilla

Post 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.
User avatar
Misthema
Advanced Member
Posts: 312
Joined: Mon Aug 27, 2007 8:32 pm
Location: Turku, Finland
Contact:

Re: cbMap - Karttafunktioita 3D-ominaisuuksilla

Post by Misthema »

Joo, aivan. :P Kiitos Marcoder tästä! Voisikin alkaa virittelemään funktioita uuteen uskoon. ;)
iTKEVAnAKKI
Advanced Member
Posts: 335
Joined: Tue Aug 28, 2007 3:55 pm
Location: Siellä jossain

Re: cbMap - Karttafunktioita 3D-ominaisuuksilla

Post 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...
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 ;)
Post Reply