Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: VB6: cards.dll click tapahtuma (vb)

Sivun loppuun

Kape [11.07.2005 19:20:58]

#

Miten olisi mahdollista saada että jotain tapahtuu kun klikataan cards.dll tiedostosta ladattua pelikorttia? Kielenä VB6

sooda [11.07.2005 19:26:50]

#

Riippuu miten se on ladattu. Oletetaan että olet piirtänys sen kuvalootaan.
Tarkistus käy niin että kun hiirellä klikkaa kuvalootaa, katsot onko hiiri kortin "sisällä", eli tarkistat sen koordinaateista että sen paikka on enemmän kun vasen nurkka ja samalla vähemmän kuin oikea nurkka... toivottavasti tajusit :)

Antti Laaksonen [11.07.2005 19:29:29]

#

Klikkaus täytyy tunnistaa siinä ohjaimessa, johon olet piirtänyt kortit. Kyseessä on siis joko lomakkeen (form) tai kuvakehyksen (picture box) tapahtuma. Koodi kannattaa kirjoittaa MouseDown-tapahtumaan, jotta hiiren koordinaatit tulevat tietoon. Tämän jälkeen pitää vielä tarkistaa, onko hiiri jonkin piirretyn kortin kohdalla. Sinulla täytyy siis olla tiedossa kunkin kortin vasemman ylänurkan ja oikean alanurkan koordinaatit, jotta voit verrata niitä hiiren koordinaatteihin. Jos korttien paikat määräytyvät jonkin kaavan perusteella, voit tietysti käyttää tätä kaavaa käänteisenä. Jos kortteja voi olla päällekkäin, tämä täytyy myös ottaa huomioon.

Kape [11.07.2005 19:32:26]

#

Kiitos nopeista vastauksista. Kortit piirretään formiin. Kokeilen tuota ehdottamaanne tapaa.

Toinen ongelma vielä. Latana kortit ja kaikki sujuu hyvin ennen kuin ohjelman pienentää. Kun ohjelman pienentää kaikki piirtämäni kortit katoavat, mikä avuksi?

hunajavohveli [11.07.2005 19:38:39]

#

Aseta formin ominaisuus AutoRedraw Trueksi.

Kape [11.07.2005 19:45:01]

#

Kiitos toimii.

Ja kolmas kysymys toden sanoo :)
Minkä kokosii noi kortit on oletuksena?

Kortit pistetään vaakasuunnassa aina monesko kortti on kyseessä kertaa 110. Eli u * 110 ja u muuttujassa on tieto monettako korttiä käydään läpi. Pystysuunnassa kortit ovat aina 220. Niin ja nuo luvut ovat siitä formista. Miten saataisiin selville onko painettu oikeassa paikkaan eli kortin päältä. Kortteja ei voi olla päällekkäin.

Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
End sub

Tuon osaan ja saan tuosta selville hiiren paikan ja sillee, mutta en oikeen tajunnut tuota miten saadaan tarkastettua onko sillä alueella?

Antti Laaksonen [11.07.2005 19:56:22]

#

Aloitusfunktio cdtInit palauttaa kortin mitat. Leveys näyttäisi olevan 71 ja korkeus 96 pikseliä.

Kape [12.07.2005 12:30:55]

#

Sain tehtyä, ei se niin vaikea juttu ollukkaa kun mietti tarkemmin :)


Sivun alkuun

Vastaus

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

Tietoa sivustosta