Miten olisi mahdollista saada että jotain tapahtuu kun klikataan cards.dll tiedostosta ladattua pelikorttia? Kielenä VB6
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 :)
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.
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?
Aseta formin ominaisuus AutoRedraw Trueksi.
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?
Aloitusfunktio cdtInit palauttaa kortin mitat. Leveys näyttäisi olevan 71 ja korkeus 96 pikseliä.
Sain tehtyä, ei se niin vaikea juttu ollukkaa kun mietti tarkemmin :)
Aihe on jo aika vanha, joten et voi enää vastata siihen.