Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: VB6: komponentit päällekkäin

Sivun loppuun

Zapi [20.06.2004 18:38:19]

#

Elikkä formia klikattessa pitäisi saada tapahtumaan jotain
jos kaksi komponenttia on "melkein" päällekkäin


Ei tohon tyyliin:

Private Sub Form_Click()
    if a.Height = b.Height and a.Width = b.Width then
End Sub

sqwiik [20.06.2004 18:43:23]

#

Siis osittainen päällekkyys, vai?

Zapi [20.06.2004 18:46:11]

#

Jep

sqwiik [20.06.2004 18:52:08]

#

Se on erittäin yksinkertaista... Pitemmittä puheitta, koodi on tässä. Koeta sisäistää se. Kysy jos et ymmärrä. En laita suoraan VB-koodia, koska muuten olisi liian helppoa :)

x1, y1, w1, h1 ovat objektin 1 sijainti ja koko.
x2, y2, w2, h2 taas objektin 2.

if x2 > x1 - w2 and x2 < x1 + w1 then //Horisontaalinen päällekkäisyys
  if y2 > y1 - h2 and y2 < y1 + h1 then
    //Mitä tapahtuu jos ovat päällekkkäin?
  end
end

Zapi [21.06.2004 19:57:14]

#

Voisitko tarkentaa?
eli en saanut tomimaan

tuomas [21.06.2004 20:46:52]

#

No tässä on tuo muutettuna koodiksi(et kertonut mitä komponentit ovat joten tässä on käytetty kahta pictureboxia):

If Picture2.Left > Picture1.Left - Picture2.Width And Picture2.left < picture1.left + picture1.Width then
   If picture2.Top > Picture1.Top - Picture2.Height And picture2.Top < picture1.top + picture1.Width Then
 'tapahtumat sijoitat tähän
End If
End If

Huomasin muuten juuri että olen käyttänyt samaa koodia joskus kun aloittelin koodamaan vb:llä.
Yritin tehdä silloin peliä ja käyttää tuota törmäys tarkastuksissa.
No, projekti kaatui siihen että tuota käyttämällä koodia löytyi yli 15000 riviä.
Nykyään saan saman aikaan muutamalla kymmenellä riviä koodia :)

jcd3nton [21.06.2004 20:52:03]

#

Jarska90 kirjoitti:

Voisitko tarkentaa?
eli en saanut tomimaan

Ai mitä et saanu toimimaan? Tuon "koodin" ei ole tarkoitus toimia suoraan vaan se no esimerkki mitä pitäisi tehdä. Eli luo 8 numeromuuttujaa, ja laita niihin molempien objektien x ja y sekä leveys ja korkeus ( .Width ja .Height). Sitten rupeat If lauseella vertailemaan lukuja. Sulkuja pitää muistaakseni käyttää silloin kun käytetään and:ia (muistaakseni).

~Oho tuomas kerkesi eka =)~

Zapi [22.06.2004 17:04:55]

#

Kiitos! Muuttujillahan tuo täytyy suorittaa. Koodista puuttui Do-silmukka joka aiheutti ongelmia eihän tää muuten vaikee oo


Sivun alkuun

Vastaus

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

Tietoa sivustosta