Re: Tyhmät kysymykset (I/2011)
Posted: Thu Jun 14, 2012 2:07 pm
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..
Game Making Should Be Easy...
https://www.coolbasic.com/phpBB3/
Käytätkö DrawGamea ennen tekstien piirtämistä? Jos et, syy on siinä.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..
Kiitän, oli juuri se jäänyt sieltä pois.Chaosworm wrote:Käytätkö DrawGamea ennen tekstien piirtämistä? Jos et, syy on siinä.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..
Siis oikeasti, eikö olisi jo korkea aika käynnistää tk(I/2012)
>2011naputtelija wrote:Hmm... Eikös nyt ole vuosi 2012 eikä 2011
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ä.ongelmaa wrote:Objecteja vaivaa tuollainen mustat kehys/reunat miten ne saisi pois?
Ratkesi ongelma tuolla. Kiitoksia! Se vain, että objectit ei pyöri vaan ovat animoituja ja niitä kehysti tuo musta kun käveli.VesQ wrote: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ä.ongelmaa wrote:Objecteja vaivaa tuollainen mustat kehys/reunat miten ne saisi pois?
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"?
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.Inventoorio wrote:Miten toteutetaan peliin inventoorio? Olen ajatellut, että ohjelma kirjoittaisi tekstitiedostoon montako kutakin tavaraa on ja peli lukisi sieltä.
SDK:n ChangeColor, itse käytin aikoinaan vastaavanlaisessa tarkoituksessa.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ä
Örp, miten tota cbeDrawTintedScaledRotatedImageRegion-funktiota voi käyttää siihen tarkoitukseen(voi pojat kun ton funktion nimi on pitkä )axu wrote:SDK:n ChangeColor, itse käytin aikoinaan vastaavanlaisessa tarkoituksessa.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ä
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.
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.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ä
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