Voisiko joku kertoa miten saan pelaajan liikkumaan niin että kun painetaan oikealle pelaaja liikkuu oikealle mutta odottaa ensin vaikka sekuntin?
Kaipasin lähinnä koodinpätkää...
Eli siis niinkö, että ensin painetaan nappia, sitten odotetaan sekuntia ja sitten vasta ukko liikkuu oikealle?
Haluatko, että pelaaja tosiaan venttaa sekunnin ja sitten syöksähtää liikkeelle vai että nopeus kasvaa tasaisesti ja liikkeelle lähtö tapahtuu jouhevasti.
if keycode = vbkeyright then 'tähän sekuntti koodi ukko.left = ukko left + 100 End if
Tuota voi muutella sitten haluamansa mukaan.
miten saadaan sileen etttä nopeus kiihtyy?
Jos nopeus muuttuu, siitä pitää tehdä muuttuja, jonka arvoa kasvatetaan.
Tässä esimerkki:
If Keycode = vbkeyright then ukko.left = ukko.left + Nopeus End IF
miten nostetaan muuttujaa tässä tapauksessa se on Nopeus
Jos vaikka laittaa timer1 nii mites siihen ohjelmoidaan mutttuja joka nousee joka sekunti
Nopeus = Nopeus + 1
Ja muista määritellä nopeus Generalissa Dim-käskyllä.
kiitti
Mitä muutujaa suosittelet (string)
ja miten saan itestään liikkuvan pictuuran nopeutumaan
No en stringiä tietenkään. Sehän on merkkijonotyyppi, ja nopeus määritellään luonnollisesti lukuna. Integeriä suosittelen eniten. Ja pictuurat ei liiku itsestään vaan niitä liikutetaan jollain komennolla. En tiedä minkämoinen komento sinulla on ja missä, joten selvennätkö vähän?
Edit: Oikeastaan Bytekin riittää jo, ellei nopeuden ole tarkoitus ylittää 256 pikseliä. Kai sinulla muuten on Formin ScaleMode Pixelinä?
pipopää kirjoitti:
Mitä muutujaa suosittelet (string)
Long?
lainaus:
ja miten saan itestään liikkuvan pictuuran nopeutumaan
Kasvattamalla sen liikkumaa matkaa yhden aikayksikön aikana.
Picture1.Left = Picture1.Left + nopeus
pipopää kirjoitti:
Picture1.Left = Picture1.Left + nopeus
Picture1.Left = Picture1.Left + nopeus nopeus = nopeus + 1
mutta minun mielestä se ei kiihdy yhtään
pipopää kirjoitti:
mutta minun mielestä se ei kiihdy yhtään
Johtuu luultavasti siitä, että et ole vastoin ohjeitani määritellyt nopeus-muuttujaa Generalissa Dim-käskyllä:
Dim Nopeus As Byte
hyvä muuten mutta overflow tulee pakostakin
eipäs tulekaan jos rajoitat maksimi nopeuden määrää.
Aseta if lause joka tarkistaa onko nopeus jo maksimissa
ennen nopeuden lisäämistä.
Ja lue vaikka nuo putkan visual basic oppaat, löydät niistä
varmasti paljon hyötyä.
Nopeus = (LoppuX) - AlkuX) / 4 ' 2 - 180
Nopeus määräytyy erotuksen mukaan. Tässä tapauksessa hidastuu kun loppukohta lähestyy.
Osaat varmaan kääntää ton lausekkeen?
pipopää kirjoitti:
hyvä muuten mutta overflow tulee pakostakin
Totta kai overflow tulee pakostakin sitten, kun muuttuja kasvaa liian suureksi, oli sen tyyppi mikä tahansa. Kuten edellä sanottiin, sinun täytyy rajoittaa nopeutta niin, ettei se kasva tietyn pisteen yli, koska muuten se vain kasvaa loputtomiin, etkä enää edes näe koko PictureBoxia näytöllä.
No errhanleriin laittaa nopeuden taas alkuunsa?
Errhandler: Nopeus = 1
Aihe on jo aika vanha, joten et voi enää vastata siihen.