Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: VB6: kysymyksiä pelin teosta (vb)

Sivun loppuun

CoDeR [09.02.2005 16:35:12]

#

Tiedän että näistä jutuista on juteltu joku 1000 kertaa mutta lueskelin niitä enkä saanut ihan kaikkea selville mitä tarvitsen joten tässä kysyn hieman kaikkea pelin tekoon liittyvää:

olen siis kehittelemässä tässä jonkinlaista roolipeliä (ei millään directX:llä tai millään), olen suunnitellut jo juonta ja hahmoja ja muuta vastaavaa. Pelistä tulee melko yksinkertainen osittain näin alkuun. En ole liikaa näitä juttuja tollekaan tehnyt joten kaikki vinkit ovat tervetulleita. ... joo, elikkä asiaan:

1. Peleissä on siis yleensäkkin taustamusiikkeja ja ääniefektejä, niin millä ohjelmalla niitä olisi hyvä tehdä? (vaikka midi muotoisia koska ne eivät vie hirveästi tilaa)

2. Ja peleissähän kannattaa ja yleensä pitääkin tallentaa asioita tiedostoihoin niin kannattaako ne tallentaa erillisiin tiedostoihin vai sisällyttää projektiin? ja olisiko se hyvä tallentaa johonkin omakeksimä tiedostoihin (esim. ukko.hah tai jotain vastaavaa) .. ja millä komennolla niitä sai tehtyä (päässyt unohtumaan):

3. Ja pelin kartat, kannattaako ne piirtää kokonaisuudessaan jo valmiiksi vai tehdä niitä maastopaloja ja sijoittaa ne formille jonkin aliohjelman avulla? (ja jos kannattaa tehdä paloista niin miten olisi järkevintä tallentaa ne tiedostoon josta aliohjelman on helppo lukea ja sijoittaa oikeat palikat oikeaan paikkaan?)

4. Ja siis kun esim. pelaajan hahmo kohtaa jonkun muun hahmon ja alkaa keskustelu, niin aijon tehdä samanlaisen systeemin kuten alkupään final fantasyissä ja muissakin on, eli esim. kuvan alareunaan ilmestyy keskustelupalkki johon tulee puhujan kasvoprofiili ja viereen teksti. .. niin olisiko hyvä tehdä se niin että piirtää vb:llä täytetyn laatiokon alareunaan ja siihen teksti ja muut sälät päälle?

5. ja eikö nämä kaikki tapahtumat kuten maaston piirto, puhesysteemi jms. kannata kirjoittaa moduuliin?

6. ja kun ajattelin että pelini alkaa niin että aluksi on musta kuva, sitten se muuttuu pikkuhiljaa pois siitä ja tilalle tulisi pikkuhiljaa uusi kuva (kartta) ,... niin miten sen saisi toteutettua? :(

7.

Sub PiirraKuva(tunnus As Integer, x As Integer, y As Integer)

.... niin mitä nuo määtittelyt tuossa sulkeissa takroittavat? .. siis miksi ne on määritelty juuri tuossa ja mitä hyötyä siitä on?

8. https://www.ohjelmointiputka.net/oppaat/opas.php?tunnus=vbp_2 <- tuossa kun on tuo kohta:

'Mid-funktio palauttaa merkkijonon yksittäisen merkin;
           'merkin paikka merkit-muuttujassa, joka taas saadaan
           'selville Instr-funktiolla, kertoo suoraan palikan
           'sijainnin kuvatiedostossa ja näin ollen sen tunnuksen
           Taso(j, i) = InStr(merkit, Mid(rivi, j + 1, 1)) - 1

niin tuossa kun on tuo: sijainnin kuvatiedostossa ja näin ollen sen tunnuksen .... mitä se niinkus meinaa? ja tässäkin tapahtumassa:

 Sub PiirraTaso()
   'silmukoiden käyttämät muuttujat
   Dim i As Integer, j As Integer

   'piirretään pelitason reunoilla olevat kiinteät seinäpalikat
   For i = 0 To 11
       'yläseinä
       PiirraKuva SEINA, i, 0
       'alaseinä
       PiirraKuva SEINA, i, 11
       'vasen seinä
       PiirraKuva SEINA, 0, i
       'oikea seinä
       PiirraKuva SEINA, 11, i
   Next

   'piirretään muut palikat
   For i = 0 To 9
       For j = 0 To 9
           'seinien vuoksi piirtokohtaan lisätään 1
           PiirraKuva Taso(i, j), i + 1, j + 1
       Next
   Next
End Sub

niin miten se sitten ton "piirretään muut palikat" jälkeen osaa piirtää just oikean palikan oikeaan paikkaan? (ei tyhmä pää voi ymmärtää:)

... joo, tässä nyt vähäks aikaa ^^ ... oisin TOSi kiitollinen jos joku osaisi vastata noihoin! (vaikka osa kysymyksistä saattaa kuullostaa oudoilta tms)
.. ja niinkuin sanottu, kaikki muutkin vinkit ovat tervetulleita! :)

Blaze [09.02.2005 16:52:32]

#

CoDeR kirjoitti:

ja olisiko se hyvä tallentaa johonkin omakeksimä tiedostoihin

Sillä ei nyt ole mitään merkitystä, mihin ne tallennat. Tallenna johonkin, josta ne on helppo ladata.

CoDeR kirjoitti:

3. Ja pelin kartat, kannattaako ne piirtää kokonaisuudessaan jo valmiiksi vai tehdä niitä maastopaloja ja sijoittaa ne formille jonkin aliohjelman avulla?

No ilman muuta palikoina.

CoDeR kirjoitti:

(ja jos kannattaa tehdä paloista niin miten olisi järkevintä tallentaa ne tiedostoon josta aliohjelman on helppo lukea ja sijoittaa oikeat palikat oikeaan paikkaan?)

No silläkään ei ole merkitystä, tallenna siten, kun tunnet, että ne on sieltä helppo lukea.

CoDeR kirjoitti:

niin olisiko hyvä tehdä se niin että piirtää vb:llä täytetyn laatiokon alareunaan ja siihen teksti ja muut sälät päälle?

No miten muuten sen voi tehä?

CoDeR kirjoitti:

5. ja eikö nämä kaikki tapahtumat kuten maaston piirto, puhesysteemi jms. kannata kirjoittaa moduuliin?

No sillä nyt ei ole niin merkitystä. Sen verran voin antaa kokemuksesta vinkkiä, että älä ihan kaikkea kirjota samaan tiedostoon, vaan jaa tavara loogisen yhteyden mukaan useampaan tiedostoon. Useampaa pienempää tiedostoa on mukavampi käsitellä, ku yhtä jumalatonta.

CoDeR kirjoitti:

6. ja kun ajattelin että pelini alkaa niin että aluksi on musta kuva, sitten se muuttuu pikkuhiljaa pois siitä ja tilalle tulisi pikkuhiljaa uusi kuva (kartta) ,... niin miten sen saisi toteutettua? :(

Ottamalla selville kuvan jokaisen pikselin väriarvo, tummentamalla sitä sopivasti ja piirtämällä se formille.

CoDeR kirjoitti:

7.

Sub PiirraKuva(tunnus As Integer, x As Integer, y As Integer)

.... niin mitä nuo määtittelyt tuossa sulkeissa takroittavat? .. siis miksi ne on määritelty juuri tuossa ja mitä hyötyä siitä on?

Aliohjelman parametrit. Kun kutsut vaikka MsgBoxia annat sille parametriksi sen tekstin, jota laatikkoon haluat, samalla tavalla annat tuolle PiirraKuvalle paramatriksi minkä kuvan haluat piirtää ja sen koordinaatit.

CoDeR kirjoitti:

niin miten se sitten ton "piirretään muut palikat" jälkeen osaa piirtää just oikean palikan oikeaan paikkaan?

Koska se piirto on silmukan sisällä, nuo i ja j muuttuu joka pyörähdyskerralla ja kuva tulee eri kohtaan.

Antti Laaksonen [09.02.2005 16:55:09]

#

1. Ohjelmia on vaikka kuinka paljon. Minä olen tehnyt midejä Noteworthy Composerilla, johon olen ollut tyytyväinen. Musiikin tallennusmuodoksi sopii midi ja ääniefekteihin wav.

2. Erillisten tiedostojen kanssa on helpompaa, mutta lopputulos on sama kummallakin tavalla. Omia tiedostomuotoja voi käyttää, jos mieli tekee. Peliin liittyviä tiedostoja voi kirjoitella käsin tai tehdä apuohjelman, jolla voi luoda niitä.

3. Pienemmistä paloista kokoaminen on hyvä idea - muistia säästyy ja tulos on muutenkin yleensä hyvä. Helpoin tapa tallentaa on ilmoittaa järjestyksessä kunkin ruudun maastopalan tunnusnumero.

4. No noinhan se varmaan onnistuu. Tai voit myös tehdä PictureBoxin, joka tulee näkyviin keskustelutilanteessa.

5. Joo, varsinkin silloin, jos niitä käytetään useammasta formista tai moduulista.

6. Kerro vähän tarkemmin haluamastasi efektistä. WinAPI lienee tarpeen.

7. Määrittelyt tarkoittavat aliohjelmalle annettavia parametreja, joita voi käyttää muuttujien tavoin. Siis parametreista riippuu, mitä aliohjelma tekee. Muutenhan aliohjelma ei tietäisi, mikä kuva pitää piirtää ja minne.

8. Eli merkit-merkkijonossa on tiedostossa käytettävät merkit samassa järjestyksessä kuin palikat ovat kuvassa. Kun esim. tiedostosta luetun rivin kolmantena merkkinä on "j", Mid(rivi, 3, 1) on "j" ja InStr(merkit, "j") on 4. Näin saadaan selville palikan tunnusnumero. Kuvassa samainen palikka on silloin neljäntenä vasemmalta lukien.

9. Taso-taulukossa on kunkin palikan tunnusnumero. Kun kirjoitetaan Taso(x, y), saadaan selville palikka kohdassa (x, y).

CoDeR [09.02.2005 16:59:42]

#

Blaze kirjoitti:

Ottamalla selville kuvan jokaisen pikselin väriarvo, tummentamalla sitä sopivasti ja piirtämällä se formille.

... kuullostaa aika vaikeelta... vai ymmärsinkö jotenkin väärin mebbe? ^^

Antti Laaksonen kirjoitti:

4. No noinhan se varmaan onnistuu. Tai voit myös tehdä PictureBoxin, joka tulee näkyviin keskustelutilanteessa.

tuo oli minullakin mielessä :D

Antti Laaksonen kirjoitti:

6. Kerro vähän tarkemmin haluamastasi efektistä. WinAPI lienee tarpeen.

Siis.... no, kun esim videon muokkauksessa kun aluksi tapahtuu jotain, sitten halutaan siirtyä kenties toiseen aiheeseen ja väliin laitetaan siis sellainen tummennus, jolla siirrytään edellisestä kuvasta seuraavaan tummennuksen jälkeen.. tjs .... vähän vaikea selittää :(

Antti Laaksonen kirjoitti:

Helpoin tapa tallentaa on ilmoittaa järjestyksessä kunkin ruudun maastopalan tunnusnumero.

miten ne maastopalojen tunnusnumerot saadaan selville? .. tarkoitatko tuota kohdassa 7. tapahtuvaa juttua... vaiko tuossa taulukossa taso..?

p.s. tuhannet kiitokset tähän asti tulleista vastauksista! :)

edit: toi musaohjelma vaikuttaa tosi hyvältä! :) .. enää pitäs vaan keksii jotai järkevän kuulosta XD

edit2: damn.... toihan pitää ostaa toi kokoveriso :(:( ...

CoDeR [10.02.2005 13:36:43]

#

jos joku ymmärsi selityksen tosta kohdasta 6. ja osais vastata siihen ni ois kiwa ^^ ...toi blazen vastaus ei oikeen menny mulle perille :(

exadata [10.02.2005 14:21:24]

#

Antti Laaksonen kirjoitti:

6. Kerro vähän tarkemmin haluamastasi efektistä. WinAPI lienee tarpeen.

Tuo efekti on varmaan samantapainen kuin Allegrossa:

fade_out(1);

ja

fade_in(palette, 1);

Tosin tästäkään ei ollut mitään hyötyä jos kukaan ei käytä Allegroa...
Osaisin siis tehdä tempun Visual Basicilla jos osaisin ohjelmoida sillä.

tuomas [10.02.2005 14:29:24]

#

Eli tummennus.. no tuohonkin on monta tapaa miten voisi edetä. En nyt keksi minkään hyvän apin nimeä tuohon tilanteeseen (ellei sitten bitblt:ssä ole sitten jotain hyödyllistä ominaisuutta josta en ole tietoinen).. Yksi HIDAS tapa on tälläinen:

for i = 1 to 400 'kuvanleveys
    for j = 1 to 400 'kuvan korkeus

        väri = picture1.point(i,j) 'haetaan yksi piste
        'selvitetään väri arvot
        R = Väri Mod 256
        G = (Väri \ 256) Mod 256
        B = Väri \ 65536
        'tummennus
        if r < 245 and b < 245 and c < 245 then
           r = r + 10
           g = g + 10
           b = b + 10
        end if
        picture1.pset(i,j),rgb(r,g,b) 'pikseli nyt paikalleen
    next
next

koodia ei ole testattu, heitin äkkiseltään hatusta :)

edit: hups, nyt se vaalentaisi kuvaa, mutta vaihtamalla nuo r,g,b:n plussaukset miinustamiseksi sekä laittamalla tarkistukset etteivät arvot mene alle 0:n sama toimii myös siihen suuntaa. Testasin myös tuota (jaksoimpa avata vb:n IDEn :)), niin 400 x 400 kuvalle menee aikaa pari sekuntia.

Antti Laaksonen [10.02.2005 17:25:21]

#

Tuommoisen efektin toteuttaminen PSetillä ja Pointilla on tuhoon tuomittu yritys. Sitä vastoin WinAPIn funktiot GetDIBits ja SetDIBits saattaisivat tulla kysymykseen. Tai jos kuvassa on paletti, vastaavat funktiot ovat GetDIBColorTable ja SetDIBColorTable. Aivan helppoa tällaisen efektin tekeminen ei kuitenkaan ole. Jos sattuu joskus olemaan aikaa, voin tehdä esimerkkiohjelman.

tuomas [10.02.2005 18:57:32]

#

Noniin, olihan siellä jotkut apit :)

CoDeR [10.02.2005 18:58:52]

#

joo, no taidan laittaa siihen erään helpomman ratkaisun tilalle. Mutta ... lueskelin tuota jalokivijahtia ja sen systeemiä piirtää se kartta... mutta en oikein tajunnut sitä kunnolla / saanut kaikkea irti :(:( .. tyhmä kun olen XD ... jos joku voisi antaa ohjeita tästä niin olisin erittäin otettu ^^ (ja kannattaako ne kartat piirtää tuolla tavalla sinne txt filuun ja sen avulla piirtää se jne.)

mikeful [10.02.2005 22:33:58]

#

Visual Basic ei ole aivan paras ohjelma pelien tekoon. Tämäntyyppiseen peliin voisit kokeilla CoolBasic:ia.

Gaxx [10.02.2005 22:52:30]

#

mikeful kirjoitti:

Visual Basic ei ole aivan paras ohjelma pelien tekoon. Tämäntyyppiseen peliin voisit kokeilla CoolBasic:ia.

Perustele!

CoDeR: Jos haluat kehittyä ohjelmoinnissa, eikä pelin teko tunnu mahdottomalta VB:llä, en suosittele, että siirryt CoolBasiciin. CoolBasic on tarkoitettu aloittelijoille, jotka haluavat ensimmäiseksi ohjelmakseen koodata näyttävän pelin. Olen jonkin verran tutustunut CoolBasiciin ja todennut, että se ei ole läheskään yhtä johdonmukainen, kuin muut kohtaamani kielet.

VB:llä saa aikaan näyttäviäkin 2D pelejä, ja jos ei muuten niin sitten DirectX kehiin.

nomic [10.02.2005 22:53:21]

#

mikeful kirjoitti:

Visual Basic ei ole aivan paras ohjelma pelien tekoon. Tämäntyyppiseen peliin voisit kokeilla CoolBasic:ia.

Kyllä Vb kevyihin projekteihin sopii melko mainiosti.
Jotain coolbasic-pelejä joskus olen kokeillut, mutta vaikutti melko hitaalta tuo moottori kyseisessä kielessä. en sitten tiedä ovatko tekijät saaneet siitä nopeamman(nytten), mutta se vaikutti silloin CB:n kompastuskiveltä.

Voi olla, että kehitystä on tapahtunut. Mikä olisi erittäin positiivista.

Pystyykös Cb:llä tekemään muutes exe-tiedostoja?

rndprogy [10.02.2005 23:13:22]

#

nomic kirjoitti:

Pystyykös Cb:llä tekemään muutes exe-tiedostoja?

Pystyy.

mikeful [11.02.2005 09:56:25]

#

Gaxx: VB on suunnitelu alunperin eventtipohjaiset hyötyohjelmien tekoon, joten se ei sovi pelien tekoon ennenkuin siihen on tutustunut kunnolla. CBssa taas on jo sisäänrakennettuna tilekarttamoottori, yms. CB sijoituu milestäni hyvin "tavalliset" pelinteko-ohjelmien ja perineteisen ohjelmointikielin välimaastoon tarjoten riittävän helpon ja tehokkaan systeemin. Sitä paitsi CB on ilmainen, kun taas VBiin pitää periaatteessa hankkia lisenssi, jos haluaa myydä tekemiään pelejä.

Mielenkiintoista muuten, että viittaat aloittelijoihin ja DirectXn samassa viestissä. :) CB on rakennettu DirectX:n päälle, mutta sinun ei tarvi huolehtia sen säätämisestä.

nomic: Olet tainnut kokeilla Beta 5:sta. Uusin versio on noin 10 kertaa vanhaa nopeampi, koska se on kirjoitettu kokonaan uusiksi. Samalla on mukaan tullut läjäpäin uusia, mukavia ominaisuuksia.

Yleisesti ei ole mitään väliä millä ohjelmoi, mutta itse en jaksa opetella C:tä, VB ei sovi pelientekoon ja pelienteko-ohjelmat eivät tarjoa riittävästi sääntövaraa. Siksi käytän pääasiassa CoolBasic:ia. Miksi opetella joku kieli hyvin, kun kuitenkin joutuisi tehdä kaikki moottorit itse, jotka ovat jo valmiina?

Gaxx [11.02.2005 10:12:28]

#

mikeful: Jos VB:llä aikoo tehdä pelin, se ei kaipaa sen suurempia tutustumisia sen käyttöön. VB:llä voi tehdä pelin melkeimpä QB:n osaamisella, ainoastaan DirectX täytyy harjoitella. Itse en ole koskaan tutustunut mihinkään BitBlt tai muuhun vastaavaan tekniikkaan, koska DirectX on ollut niin yksinkertainen. Ei sitä tarvitse opetella niin, että osaa kirjoittaa kaikki alustukset ja sun muut ulkomuistista, vaan tekee dokkien kanssa kerran kunnon funktiot ja käyttää niitä sitten myöhemminkin. Sitäpaitsi putkassa on edelleenkin mainio DirectX opas!

En nyt halua ruveta kovin kiisteleen, vain sanoa oman mielipiteeni ja kuulla perustelusi :)

mikeful [11.02.2005 11:53:30]

#

Aivan. Jos DirectX:ää käyttää, on aivan sama millä kielellä pelin tekee. VB ilman DirectX:ää olisi aika kalju esitys vakavien pelien tekoon.

zacura [11.02.2005 19:08:15]

#

mikeful kirjoitti:

CB on rakennettu DirectX:n päälle, mutta sinun ei tarvi huolehtia sen säätämisestä.

Ja kun tulee uusi hieno directx versio niin sen ominaisuuksia ei voikaan käyttää ennekuin cb:n tekijät tekevät uuden version jos tekevät.

mikeful kirjoitti:

Miksi opetella joku kieli hyvin, kun kuitenkin joutuisi tehdä kaikki moottorit itse, jotka ovat jo valmiina?

Koska näin oppii hyviä teknikoita joita voi hyödyntää muissa projekteissa. Jos opettelee jonkun yleisen kielen (esim c/c++) niin ohjelma myös porttautuu helpommin muille järjestelmille (esim. Linux). Jos ei halua itse tehdä kaikkia moottoreita itse löytyy netistä valmiita moottoreita eri tarkoituksiin.

Metabolix [11.02.2005 19:32:47]

#

mikeful kirjoitti:

Miksi opetella joku kieli hyvin, kun kuitenkin joutuisi tehdä kaikki moottorit itse, jotka ovat jo valmiina?

Miksi isot pelitalot eivät käytä pelinteko-ohjelmia vaan C++:aa? Ja onko siinä, että ei satu olemaan ammattilainen, jokin syy tehdä toisin? Minusta tässä olisi syytä luottaa ammattilaisten tietoon siitä, millä saa oikeasti hyvää jälkeä ja juuri sellaista kuin haluaa. Useimmissa pelinteko-ohjelmissa ja valmiissa moottoreissa on jotakin rajoittuneisuutta, kun taas oma moottori taipuu juuri siihen, mihin sen laittaa taipumaan. Ja miten mahtaa onnistua CB:llä muun kuin tilepohjaisen pelin teko? Sitä paitsi tilemoottori on ainakin omassa projektissani ollut tähän mennessä helpoin toteutettava asia, joten eipä tuolla CB:n ominaisuudella voi ainakaan minusta mitenkään kehua.

CoDeR [11.02.2005 20:01:24]

#

...miksei vb muka sovi pelin tekoon..? juu, en mä mitään cb:tä oo alkamassa opettelemaa. Koska mun mielestä vb on hyvä kieli :) .. ja tottakai mä käyttäisin DirectX:ää, mut ku luin tota putkan opasta ni se ois ollu ku ois lukenu hepreaa (suurin osa) XDXD ..ni ajattelin tehdä vähän yksinkertasemman aluks.

Tosin jos siinä kartanpiirtomoottorissa joku osaisi neuvoa niin olisi tosi hyvä! Olen tässä sitä peliä hahmotellut, ja olen keksinyt hyviä tapoja suorittaa taistelut ja muut, mutta se kartta homma ei vaan jotenkin mene jakeluun :(:(

E.K.Virtanen [11.02.2005 20:13:55]

#

Jokseenkin hölmöä kinastella siitä kannattaako millä ja miksi koodata ja mitä. Aivan sama kuin kinastelisi siitä onko kaupassa parempi käydä urheilu autolla vai limusiinilla kun molemmilla sinne kauppaan pääsee. Tyyli vain hieman eri =)

CoolBasiccia tuli kanssa kokeiltua. Ei toimi mun tapauksessa kun teksti graffan teko suht hankalaa.

Siitä onko CB sen enempää ohjelmointikieli kuin esim. VB, saakin sitten väitellä maailman loppuun saakka. Itse olen sitä mieltä että kun edes jotain kieltä vääntää niin hyvä on. Siitä sitten innostus laajenaa jos on laajetakseen. Jos ei, niin tiedä sitä vaikka se coolbasiccaaja saisikin jonkin upean tekeleen aikaan.

CoDeR [11.02.2005 20:22:34]

#

joo on tosiaan tyhmää kinastella tollasesta ^^ ... ilmaisin vaan mielipiteeni enkä halua kinastella :D ... haluaisin vain noit aneuvoja mitä tuossa mainitsin ^^

Blaze [11.02.2005 20:26:09]

#

Kaiken fanatismin keskellä kannattaa muistaa, että loppujen lopuksihan tässä on kyse tarkoitukseen sopivan työkalun valinnasta, joka on osa ohjelmoijan ammattitaitoa.

Miksei sillä ruuvimeisselilläki saa naulan seinään, mutta helpompaa ja kätevämpää se on vasaralla.

CoDeR [11.02.2005 21:30:19]

#

yks kysymys tuli viel:

miten saan printattua tekstiä formin tiettyyn kohtaan?

rndprogy [11.02.2005 21:36:03]

#

CurrentX = 100
CurrentY = 100
print "moi"

CoDeR [11.02.2005 21:42:20]

#

entä miten sen kokoa ja väriä saa muutettua? ^^ (sen printattavan tekstin)

Gaxx [11.02.2005 21:42:55]

#

CoDeR kirjoitti:

Tosin jos siinä kartanpiirtomoottorissa joku osaisi neuvoa niin olisi tosi hyvä!

Säilöt kentän tilet taulukkoon ja piirrät tietyltä alueelta ne sitten kahdella for loopilla näytölle.

Dim kentta(19, 19) As Integer 'Tehdään 20x20-tilen kenttä
'Sitten vaan sijoitat arvot taulukkoon. Jokaisella tilellä on oma indexinsä(=arvonsa tjsp.).

Dim Tile(100) As Picture 'Säilöt kuvat johonkin taulukkoon(ei tollasta Picture hommaa käsittääkseni oo...).
Dim RX 'kuinka monta tileä jää ruudun vasemmalle puolelle piiloon
Dim RY 'kuinka monta tileä jää ruudun yläpuolelle piiloon
Dim TX 'näytöllä olevien tilejen lukumäärä x-suunnassa
Dim TY 'näytöllä olevien tilejen lukumäärä y-suunnassa

'Sitten vain piirretään jokainen tile näytölle
For c = RX to RX + TX
    For d = RY to RY + TY
        PiirräTile(Tile(Kentta(c,d))), c * 20, d * 20 'olettaen, että tilet ovat 20-pikselin kokoisia
    next d
next c

PiirräTile:n esittely:

Private Sub PiirräTile(Tile as Picture, x as integer, y as integer)
'Elikkä piirrä tile a kohtaan (x,y).

Siis, jos kenttä olisikin 3x3, piirtäminen toimisi näin:

#00    #00    #00    ##0    ##0    ##0    ###    ###    ###
000 -> #00    #00 -> #00 -> ##0 -> ##0 -> ##0 -> ### -> ###
000    000    #00    #00    #00    ##0    ##0    ##0    ###

# on siis piirretty tile ja 0 on tyhjä kohta.

Edit:

CoDeR kirjoitti:

entä miten sen kokoa ja väriä saa muutettua? ^^ (sen printattavan tekstin)

kirjota Me. ja valitte siitä valikosta. Siis esim. me.font.

CoDeR [12.02.2005 00:28:15]

#

joo, koitan saada ton toimimaan. ^^
mutta.. kun piirsin tällä laatikon:

väri = RGB(127, 127, 127)
a1 = 8
b1 = 414
a2 = 700
b2 = 529
Line (a1, b1)-(a2, b2), väri, BF

... niin miten saan sen pois?

nomic [12.02.2005 01:59:41]

#

Vaikka näin?

väri = me.backcolor
  a1 = 8
  b1 = 414
  a2 = 700
  b2 = 529
Line (a1, b1)-(a2, b2), väri, BF

Ja jos tää kyseinen loota on jo merkattu taulukkoon, niin sen voi poistaa sieltä (koska eihän lootaakaan enään ole (ellei toisin haluta)).

CoDeR [13.02.2005 18:08:55]

#

kyl toi muuten toimis, paitsi sit jos formissa on (esim) taustakuva missä on paljon eri värejä ni ...
koitan keksii jotai


Sivun alkuun

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta