cbMap - Karttafunktioita 3D-ominaisuuksilla

Oletko tehnyt jotain, mistä muut voisivat hyötyä. Postita vinkit tänne.
User avatar
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 » Sun Sep 02, 2007 8:10 pm

joo mutta missään ei luketnut että se käyttää world koordinaatteja!
Imagedev.tuhoojabotti.com — “Programmer (noun): An organism that turns caffeine into code.”

User avatar
Marcoder
Active Member
Posts: 120
Joined: Tue Aug 28, 2007 8:21 am

Re: cbMap - Karttafunktioita 3D-ominaisuuksilla

Post by Marcoder » Mon Sep 03, 2007 8:36 am

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ä.

User avatar
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 » Mon Sep 03, 2007 5:06 pm

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.”

User avatar
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 » Mon Sep 03, 2007 5:14 pm

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.

User avatar
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 » Mon Sep 03, 2007 9:09 pm

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.”

User avatar
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 » Mon Sep 03, 2007 10:23 pm

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.

User avatar
Marcoder
Active Member
Posts: 120
Joined: Tue Aug 28, 2007 8:21 am

Re: cbMap - Karttafunktioita 3D-ominaisuuksilla

Post by Marcoder » Tue Sep 04, 2007 8:42 am

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()))

User avatar
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 » Tue Sep 04, 2007 3:34 pm

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 » Thu Sep 06, 2007 1:36 pm

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 » Fri Sep 07, 2007 10:18 am

en voi sanoa muutakuin että AIVAN SAAK.... MAHTAVA!!!! :o
Miten venytät/vanutat noita "Textuureita" ?!? :shock: luulin moisen olevan mahdotonta reaaliajassa cb:llä !

User avatar
Marcoder
Active Member
Posts: 120
Joined: Tue Aug 28, 2007 8:21 am

Re: cbMap - Karttafunktioita 3D-ominaisuuksilla

Post by Marcoder » Fri Sep 07, 2007 11:50 am

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.

User avatar
iTKEVAnAKKI
Advanced Member
Posts: 335
Joined: Tue Aug 28, 2007 3:55 pm
Location: Siellä jossain

Re: cbMap - Karttafunktioita 3D-ominaisuuksilla

Post by iTKEVAnAKKI » Sat Sep 08, 2007 1:41 am

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 ;)

User avatar
Arska
Member
Posts: 73
Joined: Fri Aug 31, 2007 11:25 pm
Location: Iitti
Contact:

Re: cbMap - Karttafunktioita 3D-ominaisuuksilla

Post by Arska » Sat Sep 08, 2007 11:29 am

Hyvää työtä! Tulen itsekkin varmasti käyttämään tätä. Kiitokset Marcoderille! ;)
Image

User avatar
MaGetzUb
Guru
Posts: 1715
Joined: Sun Sep 09, 2007 12:35 pm
Location: Alavus

Re: cbMap - Karttafunktioita 3D-ominaisuuksilla

Post by MaGetzUb » Sun Sep 09, 2007 12:44 pm

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 » Wed Sep 12, 2007 3:26 am

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ä"?

User avatar
Marcoder
Active Member
Posts: 120
Joined: Tue Aug 28, 2007 8:21 am

Re: cbMap - Karttafunktioita 3D-ominaisuuksilla

Post by Marcoder » Wed Sep 12, 2007 8:12 am

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.

User avatar
MaGetzUb
Guru
Posts: 1715
Joined: Sun Sep 09, 2007 12:35 pm
Location: Alavus

Re: cbMap - Karttafunktioita 3D-ominaisuuksilla

Post by MaGetzUb » Wed Sep 12, 2007 5:41 pm

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.

User avatar
Marcoder
Active Member
Posts: 120
Joined: Tue Aug 28, 2007 8:21 am

Re: cbMap - Karttafunktioita 3D-ominaisuuksilla

Post by Marcoder » Wed Sep 12, 2007 7:50 pm

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 » Thu Sep 13, 2007 1:42 am

Joo, aivan. :P Kiitos Marcoder tästä! Voisikin alkaa virittelemään funktioita uuteen uskoon. ;)

User avatar
iTKEVAnAKKI
Advanced Member
Posts: 335
Joined: Tue Aug 28, 2007 3:55 pm
Location: Siellä jossain

Re: cbMap - Karttafunktioita 3D-ominaisuuksilla

Post by iTKEVAnAKKI » Sat Sep 15, 2007 5:57 pm

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