Page 13 of 23

Re: Tyhmät kysymykset (I/2011)

Posted: Thu Jun 14, 2012 2:07 pm
by ItzRaines
Kartta ladataan objekteista ensimmäisenä ja kulmaan luodaan tekstiä silmukassa. Nyt kuitenkin teksti ei näy vaan ilmeisesti mennyt kartan taakse. En löydä vikaa.. :roll:

Re: Tyhmät kysymykset (I/2011)

Posted: Thu Jun 14, 2012 2:25 pm
by Awaclus
ItzRaines wrote:Kartta ladataan objekteista ensimmäisenä ja kulmaan luodaan tekstiä silmukassa. Nyt kuitenkin teksti ei näy vaan ilmeisesti mennyt kartan taakse. En löydä vikaa.. :roll:
Käytätkö DrawGamea ennen tekstien piirtämistä? Jos et, syy on siinä.

Re: Tyhmät kysymykset (I/2011)

Posted: Thu Jun 14, 2012 3:06 pm
by ItzRaines
Chaosworm wrote:
ItzRaines wrote:Kartta ladataan objekteista ensimmäisenä ja kulmaan luodaan tekstiä silmukassa. Nyt kuitenkin teksti ei näy vaan ilmeisesti mennyt kartan taakse. En löydä vikaa.. :roll:
Käytätkö DrawGamea ennen tekstien piirtämistä? Jos et, syy on siinä.
Kiitän, oli juuri se jäänyt sieltä pois.

Re: Tyhmät kysymykset (I/2011)

Posted: Mon Jun 25, 2012 11:39 pm
by suunnat sekaisin
Objectin pitäisi pystyä liikkumaan vain neljään suuntaan miten tämä toteutetaan? Jokainen suunta on animoitu, eli ylös alas ja sivuille niin, että jos liikkuu vasemmalle niin animointi pysyy siinä suunnassa. ja Muissa sama homma.

Re: Tyhmät kysymykset (I/2011)

Posted: Tue Jun 26, 2012 10:56 am
by temu92
TranslateObject ja näytät animaatiota liikkumisen suunnan mukaisesti.

Re: Tyhmät kysymykset (I/2011)

Posted: Tue Jun 26, 2012 11:16 am
by axu
Learning centerin 19. oppitunti näyttää yhden tavan, miten tämän voi toteuttaa. Toinen tapa, mitä itse suosin, on pitää kaikkia animaatioita yhdessä kuvassa ja tallentaa muuttujaan, mihin suuntaan on kuljettu viimeksi (jonka mukaan sitten näytetään oikea animaatio). Animointia voi selkeyttää huomattavasti, kun tallentaa vakioihin animaatioiden aloitus- ja lopetusframen.

Re: Tyhmät kysymykset (I/2011)

Posted: Tue Jun 26, 2012 2:10 pm
by skorpioni-cb
Minä teen muutaman funktion joka auttaa kirjoittamaan asetustiedostoon, ja mulla on ongelma:
Onko jotain poppakonstia millä voi tarkistaa onko tiedostokahva kelvollinen, toivon pikaista vastausta, mutta ei kiirettä.

Re: Tyhmät kysymykset (I/2011)

Posted: Tue Jun 26, 2012 2:28 pm
by koodaaja
Kuten manuaalissa sanotaan, OpentoX-funktiot palauttavat 0, mikäli tiedostoa ei saatu avattua. Lisäksi jo ennen tiedoston avaamista voi kokeilla FileExistillä ja IsDirectoryllä onko se varmasti olemassa (ettei vahingossa luoda vain uutta, tyhjää tiedostoa) eikä kansio.

Re: Tyhmät kysymykset (I/2011)

Posted: Tue Jun 26, 2012 2:40 pm
by naputtelija
Hmm... Eikös nyt ole vuosi 2012 eikä 2011 :-P
EDIT:

Siis oikeasti, eikö olisi jo korkea aika käynnistää tk(I/2012) :shock:


Re: Tyhmät kysymykset (I/2011)

Posted: Tue Jun 26, 2012 4:16 pm
by Awaclus
naputtelija wrote:Hmm... Eikös nyt ole vuosi 2012 eikä 2011 :-P
>2011
>burgeroi vuosiluvusta

Re: Tyhmät kysymykset (I/2011)

Posted: Tue Jun 26, 2012 4:29 pm
by koodaaja
Palataanpa asiaan. Ja viherteksti on aika viime vuosikymmentä :p

Re: Tyhmät kysymykset (I/2011)

Posted: Tue Jun 26, 2012 5:51 pm
by ongelmaa
Objecteja vaivaa tuollainen mustat kehys/reunat miten ne saisi pois?

Re: Tyhmät kysymykset (I/2011)

Posted: Tue Jun 26, 2012 6:16 pm
by valscion
ongelmaa wrote:Objecteja vaivaa tuollainen mustat kehys/reunat miten ne saisi pois?
Objekteissa täytyy käyttää maskivärinä täyttä mustaa jos niitä pyöritellään. CB ei osaa pyörityksen yhteydessä korjata pois muita värejä.

Jos vastaukseni ei ollut oikea kysymykseesi ja kysyitkin jotain ihan muuta, niin kerroppas vähän enemmän ja laita vaikkapa jonkinlaista koodia mukaan. Mitä tarkoitat sillä että objekteja vaivaa "musta kehys"?

Re: Tyhmät kysymykset (I/2011)

Posted: Tue Jun 26, 2012 6:31 pm
by Guest
VesQ wrote:
ongelmaa wrote:Objecteja vaivaa tuollainen mustat kehys/reunat miten ne saisi pois?
Objekteissa täytyy käyttää maskivärinä täyttä mustaa jos niitä pyöritellään. CB ei osaa pyörityksen yhteydessä korjata pois muita värejä.

Jos vastaukseni ei ollut oikea kysymykseesi ja kysyitkin jotain ihan muuta, niin kerroppas vähän enemmän ja laita vaikkapa jonkinlaista koodia mukaan. Mitä tarkoitat sillä että objekteja vaivaa "musta kehys"?
Ratkesi ongelma tuolla. Kiitoksia! :) Se vain, että objectit ei pyöri vaan ovat animoituja ja niitä kehysti tuo musta kun käveli.

Re: Tyhmät kysymykset (I/2011)

Posted: Wed Jun 27, 2012 1:55 pm
by Inventoorio
Miten toteutetaan peliin inventoorio? Olen ajatellut, että ohjelma kirjoittaisi tekstitiedostoon montako kutakin tavaraa on ja peli lukisi sieltä.

Mutta en ole oikein selvää saanut komennoista miten toteuttaa tuo. Esimerkki ei oikein auttanut. Ohjeita tarvisin tai yksinkertaistetumpaa esimerkkiä :)

Re: Tyhmät kysymykset (I/2011)

Posted: Wed Jun 27, 2012 3:41 pm
by axu
Inventoorio wrote:Miten toteutetaan peliin inventoorio? Olen ajatellut, että ohjelma kirjoittaisi tekstitiedostoon montako kutakin tavaraa on ja peli lukisi sieltä.
Riippuu siitä, minkälaista tavaraa siellä 'inventooriossa' oikein on. Jos eri tavaroita on vain muutama (esim. kuinka monta potionia, ammusta ja rahaa on, mikä on nykyinen ase), yksi tapa on pitää jokaisen tavaran määrää tai tyyppiä omassa muuttujassa ja tallentaa ne sitten tietyssä järjestyksessä tiedostoon esim. WriteInt-komennolla.

Jos tavaroita on paljon erityyppisiä, voit pitää tavaroita taulukossa tai mieluummin tyyppikokoelmassa (tyyppikokoelma on huomattavasti parempi etenkin jos erityyppisten tavaroiden määrää ei ole rajoitettu). Tyyppikokoelma sisältäisi merkkijonokentän, joka sisältää tavaran nimen ja kokonaislukukenttä, joka sisältää ko. tavaroiden määrän. Kirjoittelin hieman runkoa: viewtopic.php?f=12&t=2820

Siinä vaiheessa kun siirrytään JRPG-tasolle, niin kannattaa miettiä hashtableja.

Re: Tyhmät kysymykset (I/2011)

Posted: Wed Jun 27, 2012 4:59 pm
by skorpioni-cb
Onko mitään tapaa toteuttaa seuraavaa:
Minulla on sprite, jossa on tietty väri(minulla 177,177,177), miten saan sen värin korvautumaan esimerkiksi punaiseksi, säästyisi katsos paljon spritejä, jos tekee muuttuvia kuvia, onko mitään mahdollisuutta toteuttaa tätä

Re: Tyhmät kysymykset (I/2011)

Posted: Wed Jun 27, 2012 5:48 pm
by axu
skorpioni-cb wrote:Onko mitään tapaa toteuttaa seuraavaa:
Minulla on sprite, jossa on tietty väri(minulla 177,177,177), miten saan sen värin korvautumaan esimerkiksi punaiseksi, säästyisi katsos paljon spritejä, jos tekee muuttuvia kuvia, onko mitään mahdollisuutta toteuttaa tätä
SDK:n ChangeColor, itse käytin aikoinaan vastaavanlaisessa tarkoituksessa.

CB Party Packin lähdekoodissa on myös MetalRainin tekemä funktio, jolla saa värjättyä kaikki värit. Jos käytät cbe:tä, niin tähän sopii myös piirtovärin asettaminen sopivaksi ja piirtämällä cbeDrawTintedScaledRotatedImageRegion toiseen kuvaan.

Re: Tyhmät kysymykset (I/2011)

Posted: Wed Jun 27, 2012 6:03 pm
by skorpioni-cb
axu wrote:
skorpioni-cb wrote:Onko mitään tapaa toteuttaa seuraavaa:
Minulla on sprite, jossa on tietty väri(minulla 177,177,177), miten saan sen värin korvautumaan esimerkiksi punaiseksi, säästyisi katsos paljon spritejä, jos tekee muuttuvia kuvia, onko mitään mahdollisuutta toteuttaa tätä
SDK:n ChangeColor, itse käytin aikoinaan vastaavanlaisessa tarkoituksessa.

CB Party Packin lähdekoodissa on myös MetalRainin tekemä funktio, jolla saa värjättyä kaikki värit. Jos käytät cbe:tä, niin tähän sopii myös piirtovärin asettaminen sopivaksi ja piirtämällä cbeDrawTintedScaledRotatedImageRegion toiseen kuvaan.
Örp, miten tota cbeDrawTintedScaledRotatedImageRegion-funktiota voi käyttää siihen tarkoitukseen(voi pojat kun ton funktion nimi on pitkä :shock: )

Re: Tyhmät kysymykset (I/2011)

Posted: Wed Jun 27, 2012 6:17 pm
by Sly_Jack0
Inventoorio wrote:Miten toteutetaan peliin inventoorio? Olen ajatellut, että ohjelma kirjoittaisi tekstitiedostoon montako kutakin tavaraa on ja peli lukisi sieltä.

Mutta en ole oikein selvää saanut komennoista miten toteuttaa tuo. Esimerkki ei oikein auttanut. Ohjeita tarvisin tai yksinkertaistetumpaa esimerkkiä :)
Tässä joskus kirjoittelemani inventoryesimerkki (joka muuten löytyi haulla). Koodissa vain ihan perusperus toiminnot, joten esimerkiksi tavaran palautusta ei ole toteutettu. Toimii muistipaloilla, joten ei ehkä alkuun helpoin ymmärtää. Tässä nyt ei ole mitään tiedostoon tallennusta, mutta se on kohtalaisen helppo lisätä. Et voi kuitenkaan suoraan tallentaa tavaroiden id-numeroita tiedostoon, sillä ne eivät ole joka kerralla samat.

Code: Select all

//Pelaajan inventory.
Global playerInventory

//Tavarat.
Type ITEM
   Field name$
   
   Field price
   
   Field id
EndType

For k = 0 To 4
   
   i.ITEM = New(ITEM)
      i\name$ = Chr(Rand(255))
      
      i\price = Rand(10,1000)
      
      i\id = ConvertToInteger(i)
      
   addToInventory(i\id,Rand(2,10))
      
Next k

printItems()
waitkey




//Palauttaa tavaran sijainnin inventoryssä.
//Jos tavaraa ei löydy, palautetaan -1.
Function itemPosition(itemId)
   
   //Tavararoisden määrä.
   tmpItems = MEMBlockSize(playerInventory) / 5 '(Int + Byte = 5 tavua)
   
   For i = 0 To tmpItems - 1
      If PeekInt(playerInventory,i * 5) = itemId
         Return i * 5
      EndIf
   Next i
   
   Return -1

EndFunction

//Lisää tavaran inventoryyn.
Function addToInventory(itemId,amount)
   
   //Jos inventoryä ei ole, luodaan se.
   If playerInventory = 0
      playerInventory = MakeMEMBlock(5)
   EndIf
   
   tmpPos = itemPosition(itemId)
   
   //Jos tavara ON jo inventoryssä, kasvatetaan sen määrää.
   If tmpPos <> - 1
      //Luetaan entinen määrä.
      tmpAmount = PeekByte(playerInventory,tmpPos + 4)
      //Lisätään määrää.
      tmpAmount = tmpAmount + amount
      //Kirjoitetaan uusi määrä muistipalaan.
      PokeByte playerInventory,tmpPos + 4,tmpAmount
   Else //Jos tavaraa ei ole inventoryssä.
      //Inventoryn koko. Tallennetaan muuttujaan optimoinnin takia.
      tmpSize = MEMBlockSize(playerInventory)
      
      //Jos inventoryn lopussa ON tyhjää, lisätään tavara sinne.
      If PeekInt(playerInventory,tmpSize - 5) = 0
         PokeInt playerInventory,tmpSize - 5,itemId
         PokeByte playerInventory,tmpSize - 1,amount
      Else //Muuten lisätään loppuun tyhjää ja lisätään tavara sinne.
         ResizeMEMBlock playerInventory,tmpSize + 5
         PokeInt playerInventory,tmpSize,itemId
         PokeByte playerInventory,tmpSize + 4,amount
      EndIf
   EndIf
   
EndFunction


//Tulostaa tavarat.
Function printItems()

   tmpItems = MEMBlockSize(playerInventory) / 5
   
   For k = 0 To tmpItems - 1
      i.ITEM = ConvertToType(PeekInt(playerInventory,k * 5))
      
      Print "Name: " + i\name$ + "  Price: " + i\price + "  Amount: " + PeekByte(playerInventory,k * 5 + 4)
   Next k
   
EndFunction