Fog of war

Voit pyytää apua ohjelmointiongelmiin täältä.
Post Reply
cryde
Newcomer
Posts: 8
Joined: Mon Apr 07, 2008 12:11 pm

Fog of war

Post by cryde »

Ajatuksena olisi tehdä strategiapeliin Fog of War, eli näkökenttä rajoittuu tiettyyn alueeseen.. Mutta ei ole tietoa miten sen voisi toteuttaa..

Oisiko jollain vinkkejä ?

Tarkennuksena: eli näkökentän ulkopuolinen alue olisi esim. pelkkää mustaa.
Last edited by cryde on Wed Jul 02, 2008 12:26 am, edited 1 time in total.
Olwi
Devoted Member
Posts: 557
Joined: Sun Dec 30, 2007 4:15 pm
Location: Muhos

Re: Fog of war

Post by Olwi »

Katsoppa komento objectsight,jos et ole katsonut.
En voi muuten neuvoa kun en osaa:D
Huuda mun ip:tä!
koodaaja
Moderator
Moderator
Posts: 1583
Joined: Mon Aug 27, 2007 11:24 pm
Location: Otaniemi - Mikkeli -pendelöinti

Re: Fog of war

Post by koodaaja »

Olw1, hirveää postcountin kasvatusta >: D

Niin noh. Jos käytät tilekarttoja systeemissäsi, totean vain että älä käytä. Jos mennään tämäntapaisiin kikkailuihin, on, jos ei yksinkertaisempaa, niin ainakin selkeämpää tehdä oma systeemi. Ellet halua käyttää kartanmuokkauskomentoja (jolloin joutuisit käytännössä.. vaikeuksiin) Toki niilläkin homman saa hoidettua, muokkaat mustaksi näkymättömien paikkojen overlapin. Itse tosiaan tekisin karttasysteemin kokonaisuudessaan itse, pääsisi kikkailemaan samantien. Strategiapeleissä esimerkiksi isometrinen kuvakulma on aika vinkeä.

Mutta. Periaatteessa siis alussa kaikki on mustaa. Sitten tarkistetaan jokainen pelaajan yksikkö ja poistetaan mustaus sieltä, mihin ne näkevät. (If distance(musta_osa, yksikkö)<yksikön_näkömatka) Ja soli sitten siinä. Toki voit tehdä lisäksi harmaan alueen, eli kun yksikään pelaajan yksikkö ei enää näe kohtaa, siitä tehdään harmaata (yleensä joko lisätään shakkikuvio tai piirretään sama kohta tummemmilla tileillä) Silloin tällä alueella olevat vihutkaan eivät näy, joten ne pitää muistaa jättää piirtämättä. (niin, sanomattakin selvää että mielenterveyden kannalta on kovin tärkeää käyttää kuvia strategiapeleissä. tai.. niinno, mielipiteitähän nämä, en rakasta hirveästi objekteja muutenkaan)
mikeful
Moderator
Moderator
Posts: 523
Joined: Mon Aug 27, 2007 8:36 pm
Location: Vaasa, Finalnd
Contact:

Re: Fog of war

Post by mikeful »

Ylhäältä kuvatuissa toimintapeleissä voidaan tuo näkökenttäsysteemi tehdä piilottamalla vihut ja tavarat Objectsight:illä ja kartta koko kuvaruudun peittävällä mustalla kuvalla, jossa on maskivärillä piirretty reikä keskellä. Sitten kun piirtovaiheessa kartta ja objektit on piirretty, piirretään tämä iso kuva ja käyttöliittymä sen päälle.

Tämän voisi kai periaatteessa laajentaa strategiapeliin tekemällä koko kartan kattava iso kuva ja piirtelemällä siihen maskivärillä sitä mukaa kun karttaa saa paljastettua. Isojen kuvien käsittelystä aiheutuva hidastelu saattaa tulla esteeksi tämän kanssa.

Ukkojen näköalueet voisi tehdä samalla tavalla toisen kuvan avulla, mutta sen menee jo vähän hankalammaksi.

EDIT: Nyt kun katson, niin tuossa ylempänähän selitetään täsmälleen sama asia. Oletin, että puhuit edelleen tilekartoista ja skippasin loput viestistä. :/
Pelejä: Pelasta puhe, Grinder
Muuta: Blogi, Twitter
Vanha CB:n käyttäjä

Re: Fog of war

Post by Vanha CB:n käyttäjä »

Joskus aikanaan kehittelin tämmöisen tilekarttojen kanssa toimivan FOWin. Ideana on että tilesetin vasemmassa ylänurkassa (tilet 1 & 2) ovat "sumua." Tuo koodi on varmaan yli vuoden vanhaa ja aika purkkaa, mutta ei voi mitään. Epäilen kyllä suuresti, että tuo ei kauhean montaa yksikköä jaksa pyörittää. ;)

Code: Select all

 map=LoadMap("fow.til","fow.bmp")
//map=LoadMap("Media\cdm2.til","tileset.bmp")
PlayObject map,0,0,.3

For y=1 To MapWidth()
For x=1 To MapHeight()
    EditMap map,1,x,y,3
Next x
Next y

ukko=LoadObject("media\soldier.bmp")

otus=LoadObject("media\cow.bmp")
PositionObject otus,200,200


Repeat
    
    ShowObject otus,ON
    If GetMap(1,ObjectX(otus),ObjectY(otus))=2 Then ShowObject otus,OFF
    
    For y=1 To MapWidth()
    For x=1 To MapHeight()
        If GetMap2(1,x,y)<>3 And GetMap2(1,x,y)<>2 Then EditMap map,1,x,y,2

    Next x
    Next y
    
    'avataan vähän näkökenttää
    EditMap map,1,Int(objectx2(ukko,map)/32),Int(objecty2(ukko,map)/32),10
    EditMap map,1,Int(objectx2(ukko,map)/32)+1,Int(objecty2(ukko,map)/32),10
    EditMap map,1,Int(objectx2(ukko,map)/32),Int(objecty2(ukko,map)/32)+1,10
    EditMap map,1,Int(objectx2(ukko,map)/32)+1,Int(objecty2(ukko,map)/32)+1,10
    
    EditMap map,1,Int(objectx2(ukko,map)/32)+2,Int(objecty2(ukko,map)/32),10
    EditMap map,1,Int(objectx2(ukko,map)/32)+2,Int(objecty2(ukko,map)/32)+1,10
    
    EditMap map,1,Int(objectx2(ukko,map)/32)+2,Int(objecty2(ukko,map)/32)+2,10
    EditMap map,1,Int(objectx2(ukko,map)/32)+1,Int(objecty2(ukko,map)/32)+2,10
    EditMap map,1,Int(objectx2(ukko,map)/32),Int(objecty2(ukko,map)/32)+2,10
    
    
    
    TranslateObject ukko,RightKey()*3-LeftKey()*3,UpKey()*3-DownKey()*3
    
    CloneCameraPosition ukko
    
    DrawGame
    Text 10,10,FPS()
    
    DrawScreen
Forever

'tämä funktio palauttaa objektin X-koordinaatin
'suhteessa toiseen ojektiin.
Function objectx2(obj1,obj2)
    alpha=ObjectSizeX(obj2)/2
    x=ObjectX(obj2)+ObjectX(obj1)+alpha
    Return x
End Function
'tämä funktio palauttaa objektin Y-koordinaatin
'suhteessa toiseen ojektiin.
Function objecty2(obj1,obj2)
    alpha=ObjectSizeY(obj2)/2
    y=ObjectY(obj2)+ObjectY(obj1)-alpha
    Return y*-1
End Function 
User avatar
CCE
Artist
Artist
Posts: 650
Joined: Mon Aug 27, 2007 9:53 pm

Re: Fog of war

Post by CCE »

No tuo tilekartan sorkkiminen ei kyllä tiedä mitään hyvää, itse kun aikoinani tein hurjaa kauhuräiskintätkkloonia törmäsin varsin häiritsevään ongelmaan, nimittäin käyttäessä loopissa SetTile komentoa, nollaa se samalla kaikkien poimintakäskyjen tulokset :D

Strategiapelin vääntäminen tällä tavalla missä luultavasti tarvitaan kamerapoimintaa voisi olla varsin haastavaa.

Edit: Ah, onhan tuolla tuo EditMap käskykin, tiedä sitten toimiiko paremmin.
User avatar
axu
Devoted Member
Posts: 854
Joined: Tue Sep 18, 2007 6:50 pm

Re: Fog of war

Post by axu »

Fog of War -> War of Fog ois kuvaavampi nimi
Jos tämä viesti on kirjoitettu alle 5 min. sitten, päivitä sivu. Se on saattanut jo muuttua :roll:
Image
User avatar
Ilmuri
Developer
Developer
Posts: 277
Joined: Sun Aug 26, 2007 2:46 pm
Location: \o

Re: Fog of war

Post by Ilmuri »

Fog of war on kyllä ihan vakiintunut termi.
CoolBasic henkilökuntaa
Kehittäjä
CoolBasic Classic
koodaaja
Moderator
Moderator
Posts: 1583
Joined: Mon Aug 27, 2007 11:24 pm
Location: Otaniemi - Mikkeli -pendelöinti

Re: Fog of war

Post by koodaaja »

axu wrote:Fog of War -> War of Fog ois kuvaavampi nimi
Fog of War se on aina ollut. Lisäksi "sumun sota" ei ole kuvaavampi kuin "sodan sumu". IMHO.
User avatar
axu
Devoted Member
Posts: 854
Joined: Tue Sep 18, 2007 6:50 pm

Re: Fog of war

Post by axu »

juu ois kyllä voinu pitää suuni kii kun en tiedä tämmötteest yhtään :oops:
sori
vakiintunut termi? en oo kyllä kuullukkaan :?
EDIT:

ainiin ymmärsin muuten että pelin nimi ois "Fog of war"

Jos tämä viesti on kirjoitettu alle 5 min. sitten, päivitä sivu. Se on saattanut jo muuttua :roll:
Image
Post Reply