miten saa silleen että picturesta ei voi mennä läpi
Selitä hieman tarkemmin mitä tarkoitat.
No silleen että jos on vaikka *maze* peli silloinhan ukkeli joka seikkailee menee seinien läpi jos ei laita jotain jutskaa siihen(jota en tiiä), niin että voitko sinä tai joku muu kertoa sen minulle? siinä se oli.
Selaa edellisiä viestejä...
No yritetään selvittää...
Oletan että sinulla on yksi Picture (hahmo) jota liikutetaan näppäimillä ja tämä hamo taas liikkuu tasossa missä on toisia PictureBoxeja (seiniä ym.) ja taso on kaksiulotteinen.
Sinun pitää verrata hahmon koordinaatteja (Left, Top), joihin on lisätty hahmon leveys sekä korkeus, ja tason muiden esteiden koordinaatteihin. Eli jos olet liikuttamassa hahmoa:
Oikeaan mennessä:
if (hahmo.left + hahmo.width) = este.left and hahmo.top = este.top then TörmasitSeinään
Vasempaan mennessä:
if hahmo.left = (este.left + este.width) and hahmo.top = este.top then TörmäsitSeinään
Ylöspäin mennessä:
if hahmo.top = (este.top + este.height) and hahmo.lef = este.left then TörmäsitSeinään
Alaspäin mennessä:
if (hahmo.top + hahmo.height) = este.top and hahmo.left = este.left then TörmäsitSeinään
Siinä oli periaate tarkistusrutiinille. Em. periaatteessa on vain se paha puoli, että aliohjelma TörmäsitSeinään suoritetaan vasta sitten kun _jo ollaan_ esteen päällä. Tarkistusrutiinin pitää siis mennä "askeleen edellä" jotta se toimii kuten kirjoitin.
Mutta se on helppo tehdä käyttämällä kahden kertotaulua... ;)
mihin noi pitää laittaa
(Form_load
koodi
End Sub)?
Pitääkö laittaa
Form_Load
koodi
End Sub
vaiko joku muu
If lauseet pistät jonkin sellaisen tapahtuman sisään, jossa esimerkiksi lasketaan uudet koordinaatit hahmolle kun sitä siirretään. Ei niitä ainakaan Form_Load tapahtuman sisään kannata laittaa, koska _Load ajetaan vain silloin kun formi ladataan.
Ja kai huomasit että kirjoittamani koodi ei ole sellaisenaan toimivaa, vaan sinun pitää muokata se omaan ohjelmaasi/peliisi sopivaksi?
EN TAIJUA
No sitten kannattaa opetella jollakin helpommalla tavalla VB:tä kuin yrittämällä tehdä heti peliä tai muuta vaativampaa ohjelmaa. Visual Basic:n ohjeetkin ovat erittäin selkeät ja hyvät opetteluun mikäli vain ymmärtää englantia jonkin verran.
Ja tapahtumalla siis tarkoitin sellaista subbia tai funktiota joka ajetaan silloin kun jotain tapahtuu ohjelmassa. Esimerkiksi TextBox:n "Private Sub Text1_Change() ... End Sub" tapahtuma ajetaan silloin kun tekstin sisältö tekstikentässä muuttuu.
"miten saa silleen että picturesta ei voi mennä läpi"
Oletkos Klick&Play - ohjelmoija?
"Oletkos Klick&Play - ohjelmoija? " -- Ohjelmoija? :)
ER, opettele ensin käyttämään VB:tä edes siedettävästi ja vasta sitten suunnittele isompia projekteja. Jos et tiedä vielä edes mikä Form_Load-eventin idea on niin turha yrittää mitään peliä vielä :>
No "ohjelmoija" sit :)
MINÄ OLEN VISUAL BASIC OHJELMOIJA ETTÄ REVI SIITÄ
kuulitko "mikkot"
Selvä. :)
Visual Basic ohjelmoija eikä tajua noin helppoa esimerkkiä?
Lol, eheheheee. Joo sori oli ihan pakko sanoa toi =)
Joo, ei näissä ohjelmointipuuhissa pidä liian nopeasti edetä, teet vaikka ensin tekstiseikkailua, eikä suoraan mitään tasohyppelypeliä. Jos et ala vieläkään ymmärtämään, kannattaa odottaa, että kasvat pari vuotta, ja sitten koitat uudelleen ;)
Aihe on jo aika vanha, joten et voi enää vastata siihen.