Tietääkö kukaan mitään hyvää tapaa jolla saada tausta "seuraamaan" pelaajaa?
Eli jos kuvan koko olisi 400 x 800 ja formin koko olisi 400.
kerros vähän tarkemmin: onko kaikki eri pictureboxeissa vai kaikki samassa vai spriteä vai miten ne piirretään?
Pelaaja on yhdessä picture boxissa,tausta yhdessä ja esteet joista ei saisi päästä läpi ovat myös kaikki omissa pictureboxeissaan.
kun liikutaan niin liikkuuko tausta vai ukko?
ukko
ja sitte ku se menee sinne reunaan niin mitä pitäis tapahtua? siis senhän sais sillee että kun ollaan formin reunassa niin picturebox liikkuu vähän toiseen suuntaan.
kokeilin jo sitä mutta niiden esteiden kanssa tuli sit ongelmia.
Ne eivät pysyneet oikella paikoilla.
siirrä nekin.
Kokeilin sitäkin mutta kun ei toiminu...
mitenniin muka? kyllä sen pitäisi. mikä bugaa?
en tiedä...
Heh, kahden hengen keskustelua repliikki kerrallaan... :)
Tuolla menolla jatkatte vielä ensi vuonnakin. Elikkä siis, yritätkö sanoa, että joka ikinen ruutu on oma pictureboksinsa? Vai onko tämä edes sellainen tile*tile-peli? Ja mikä on tämä "tausta"? Ei sellaista pitäisi olla.
Kelasin vähän tuota keskustelua ja tajusin juuri, mitä olet tehnyt. Voin sanoa, että tuolla keinolla ei peliä synny. Esteet pitää pistää matriiseihin, ei niitä voi määritellä yksi kerrallaan picturebokseihin. Vilautas vähän koodia niin varmistetaan olinko oikeassa.
Mitä yrität sanoa tuomas? Eli kun ukko liikkuu toiseen suuntaan niin tausta kulkee toiseen suuntaan ja esteet samalla nopeudella samaan suntaan.
tausta.left = tausta.left -10
este.left = este.left -10
ukko.left = ukko.left + 10
Ja sitten tota voi muutella parhaansa mukaan. Tuossa noille tota koodia. En oikeastaan tuollaista suosittele.
Ei voi käyttää mitään este-objecktia, sillä esteitähän on useampikin. Pitäisi olla este1, este2, este3, este4 jne.
Pitää pistää taulukoihin.
Miten se mahtaa onnistua?
En ole koskaan laittanut mitään taulukoihin.
helevettiin kaikki pictureboxit niin saattaa jopa onnistua
muuten tulee _todellista_ paskaa
lainaus:
helevettiin kaikki pictureboxit niin saattaa jopa onnistua
muuten tulee _todellista_ paskaa
Juuri noin se on, mutta taas kerran kohteliaisuus kunniaan: Ei karhukaan... ;)
Taulukoista löytynee (vai löytyykö?) putkasta jokin opas. Ja ilman taulukoita ei yksikään kunnon peli voi toimia, joten ne kannattaa opetella heti kättelyssä.
lainaus:
Taulukot
Vähänkin laajemmissa ohjelmissa taulukot ovat hyvin tärkeitä. Otetaanpa esimerkiksi ristinollapelin toteutus. Jos jokaisen ruudun tila olisi omassa muuttujassaan, näyttäisi pelkkä muuttujien määrittely tämän kaltaiselta:
Dim Ruutu1 As Boolean Dim Ruutu2 As Boolean Dim Ruutu3 As Boolean '... Dim Ruutu9 As BooleanTaulukon avulla kaikki muuttujat saadaan yhteen ja määrittelykin mahtuu yhdelle riville:
Dim Ruudukko(1 To 9) As BooleanNyt taulukko sisältää yhdeksän alkiota, joista kuhunkin voidaan viitata erikseen. Esimerkiksi kuudennen ruudun tila löytyy muuttujasta Ruudukko(6).
Taulukon määrittely
Taulukot määritetään aivan kuin muuttujat, paitsi että nimen perään tulee sulkeisiin taulukon rajat. Jos taulukkoon ei määritetä alarajaa, taulukon alkiot alkavat nollasta. Seuraavat määrittelyt tarkoittavat siis samaa:
Dim Tiedot(15) As Integer Dim Tiedot(0 To 15) As IntegerTaulukolla voi olla monta ulottuvuutta. Ulottuvuudet erotetaan määrittelyssä pilkulla. Esimerkiksi edellämainitussa ristinollapelissä voisi olla järkevämpää käyttää kaksiulotteista taulukkoa:
Dim Ruudukko(1 To 3, 1 To 3) As BooleanTällöin ylävasemman ruudun tila löytyy muuttujasta Ruudukko(1, 1), keskimmäisen muuttujasta Ruudukko(2, 2) ja alaoikean muuttujasta (3, 3). Taulukolla voi olla jopa 60 ulottuvuutta, mikä on varmasti enemmän kuin tarpeeksi.
Dynaamiset taulukot
Aina taulukkoa määritellessä ei tiedetä, kuinka monta alkiota tarvitaan. Tällöin voidaan käyttää dynaamista taulukkoa, joka määritetään muuten samalla tavalla kuin tavallinen, paitsi että rajat jätetään pois, esimerkiksi:
Dim Numerot() As LongSitten kun taulukon ylärajat halutaan määrittää, käytetään funktiota ReDim seuraavaan tapaan:
ReDim Numerot(1 To Maara)ReDim-määrittelyyn ei siis tule laittaa taulukon tyyppiä, vaan se pysyy Dim-lauseessa määriteltynä. Aina kun taulukon rajat määritetään uudestaan, taulukko tyhjennetään.
Ote laaksosen tekemästä oppaasta:
https://www.ohjelmointiputka.net/oppaat/opas.
Aihe on jo aika vanha, joten et voi enää vastata siihen.