Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: VB6: Visual Basicilla 2d kuvien liikuttelu

Sivun loppuun

Jen0va [30.01.2004 18:52:43]

#

Miten olisi mahdollista on mahdollista liikuttaa ruudukossa/rajatulla alueella kuvaa ohjelman ajonaikana klikkaamalla buttonia onko se kovinkaan helppoa?

SQ [30.01.2004 19:13:41]

#

picture1.left = picture1.left + 100

setä [30.01.2004 19:16:37]

#

On. Tarkoitatko hiiren Buttonia. Klikatessa voit siirtää kuvan hiirikursorin osoittamaan paikkaan asettamalla kuva.left = X ja kuva.top = Y. Jos haluat raahata kuvaa hiiren mukana, klikkaa kuvaa ja aseta X0=X ja Y0=Y (Mouse_Down-tapahtumassa)
Kun raahaat painike alhaalla, siirrät Mouse_Move-tapahtumassa kuvaa näin
kuva.move kuva.left + X-X0, kuva.top + Y-Y0
ScaleMode oltava tietysti sama kuvassa ja alustassa, mieluiten pixeli.

Jen0va [30.01.2004 19:46:46]

#

En meinaa vaan kuvien liikuttelua ruudulla :)


SQ toiko komento laitetaan sitten siihen nappulaan?

Jen0va [30.01.2004 19:49:26]

#

OOh se toimii! Kiitos voisitko nytten kertoa millä teen "rajauksen" eli siis alueen josta se ei voi liikkua ohi?

Jen0va [30.01.2004 19:55:18]

#

Mutta millä saan sen liikkun ylös tai alas? right tai up tai down ei toimi!

Createman [30.01.2004 20:01:57]

#

picture.top = picture.top + 100

Jen0va [30.01.2004 20:34:53]

#

entäs muut :P? Sain sen liikkuun ihan reunaan näin:

picture.Left = picture.RightToLeft + 100

Jen0va [30.01.2004 20:36:39]

#

Hymm valittaa object dosen't support this property or method

Mitäköhän se meinaa?

Code:

Private Sub cmdYlos_Click()
Picture.Top = Picture.Top + 100
End Sub

Hups :D en osannu laittaa 1:stä väliin :P tohon picture. kohtaan :P

sooda [30.01.2004 20:37:22]

#

picture.left=picture.left+100, ei mitää rtl:lää.

Jen0va [30.01.2004 20:39:22]

#

lainaus:

picture.left=picture.left+100, ei mitää rtl:lää.

rtl:ää?

Jen0va [30.01.2004 20:41:25]

#

Joo mutta miten pääsen toiseen suntaan ja ylös? Ja miten saa estettyä liikkumisen :)

Tai no jos voisitte kertoo miten sais tavallaan ruudukon tai aluueen ja kun kuva tulee siihen se ajaa tietyt komennot :)

sooda [30.01.2004 20:43:52]

#

lainaus:

rtl:ää?

right-to-left

lainaus:

Joo mutta miten pääsen toiseen suntaan ja ylös?

eiks se oo aika selvää:
vasemmalle: picture1.left=picture1.left-100
oikeelle: picture1.left=picture1.left+100
ylös: picture1.top=picture1.top-100
alas: picture1.top=picture1.top+100
:)

Jen0va [30.01.2004 21:27:03]

#

Joo mutta miten pääsen toiseen suntaan ja ylös? Ja miten saa estettyä liikkumisen :)

Tai no jos voisitte kertoo miten sais tavallaan ruudukon tai aluueen ja kun kuva tulee siihen se ajaa tietyt komennot :)

rndprogy [30.01.2004 22:13:29]

#

No voi että ku on helppoo!
käytä if lausetta.

if picture1.left = 100 and picture1.top = 150 then
'komentoja
print "Ja näin tapahtui"
'komentoja
end if

revi siitä
Toivottavasti tajusin kysymyksesi oikeen.

Jen0va [30.01.2004 23:29:55]

#

No en kyllä tajuu tosta mitä toi 100 meinaa ja mitä jos ylös 150 niiiiin? Vai laitanko siihen että if 150000 ja 1000 ja sitten kun se menee niiten ohi vai miten en tajuu oikeen?

rndprogy [31.01.2004 17:19:57]

#

Noi numerot meinaa pisteitä ruudalla x ja y suunttaan. Että tuskin on 15000 pistettä. ja esim. lause
If joku = 100 then end
meinaa että
jo joku on sata sitten loppuu. Oletko jokin aloittelija==?

Jen0va [31.01.2004 21:02:56]

#

Olen alottelija

En tajuu :/ Meinaako että jos se on kohdassa 150 200 niin sillon se tekee komennot? Vai tekeekö se jonku rajauksen?

rndprogy [31.01.2004 21:06:54]

#

jos objekti liikkuu vauhdilla yksi(1) ja kun x koordinaatti on 150 ja y koordinaatti on vaikka kohdassa 100. niin vauhti on 0.

Jen0va [31.01.2004 23:30:25]

#

öö :D? Vauhti siis kun kuva saapuu kordinaatteihin 150 ja 100 niin sillon se ajaa komennot? Entä miten vois estää siä menemästä siitä?

Jen0va [31.01.2004 23:35:46]

#

Eikö siihen olisi parempaa tapaa rajata kuvan liikkuma alue kuin kirjottaa jokaisesta cordinaatista if lause?

Esim. Kun picture1 osuu picture2:een tai vaikka line1:een niin tulis ajaa rivit jotka on kriteerin alla kun kuvat tai kuva osuu viivaan? En löydä kriteeriä millä se tulis sillon kun picture osuu toisiinsa :/

rndprogy [31.01.2004 23:45:18]

#

Jos haluat sen osuvan seinään sitten riittää vain yksi koordinaatti. tai käytä AND operaattoria näin:
if x > 100 and x < 150
tuolloin on isompi kuin 100 ja pienempi kuin 150.

Picture1 koordinaatti törmää picture2 koordinaattiin.

Jen0va [05.02.2004 23:43:12]

#

hymm. En osaa paikantaa paikantaa kordinaatteja tossa ohjelmassa miten ne sais tarkkaa selville ;P ?

Bill Keltanen [06.02.2004 08:18:31]

#

lainaus:

print "Ja näin tapahtui"

Toi print-kohta on juuri se, eli mitä pitää laittaa että se pysähtyy??

Jay [06.02.2004 15:18:56]

#

Kannattaa tutustua tänne:

https://www.ohjelmointiputka.net/oppaat.php

ja sieltä kohta Visual Basic -opas

Jen0va [28.02.2004 13:46:45]

#

Jay kerro mistä kohtaa kyseistä opasta löytyy kriteeri sille kun kuva koskettaa toista. Eli pitäisi saada vaan tietää miten kirjoittaa kun kuva koskettaa toista kuvaa ohjelma ajaa rivit... Silloin voisi piirtää viivoja aina kun kuva koskettaa niitä ohjelma jaa tietyt rivit... Toivottavasti tajuutte

remontti-reiska [28.02.2004 13:54:19]

#

If pelaaja.Top < (hirviö.Top + hirviö.Height) Then
If (pelaaja.Top + pelaaja.Height) > hirviö.Top Then
If pelaaja.Left < (hirviö.Left + hirviö.Width) Then
If (pelaaja.Left + pelaaja.Width) > hirviö.Left Then

' Tähän ne rivit mitkä astuu voimaan, kun kuva osuu kuvaan

End If
End If
End If
End If

pelaaja ja hirviö ovat pictureboxien nimiä. Tuo siis toteuttaa rivit kun kuva osuu kuvaan, kuten halusit.

Jen0va [28.02.2004 15:43:05]

#

Kiitos todella paljon!

remontti-reiska [28.02.2004 17:37:51]

#

Oleppa hyvä :).


Sivun alkuun

Vastaus

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

Tietoa sivustosta