Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: VB.NET: (vb.net) Kortti- ja peliohjelmointi

Hellami [28.11.2003 13:18:46]

#

ANTTI!. tai joku jos lähettäisi mailissa tai pistäisi tänne jotain esimerkkejä... esim. oppaista tosta korttipeli ohjelmoinnista siitä pieni yhden kortin esimerkki, kuinka niitä voi liikutella. Jos esimerkissä olisi yksi kortti ja 3 kohtaa johon sen voi liikutta(pasianssi tyyliin). Ja jos sitten siitä tavallisesta peliohjelmoinnsita joku näyttäisi jonkun pelin pohjan (ei valmista peliä!)? Joku yksinkertainen, että saisi ideasta kiinni..

sqwiik [28.11.2003 19:14:19]

#

Ilman mitään esimerkkejä, mietitään asiaa yleisesti. Merkitään: kortin koordinaatit ovat kortti_x, kortti_y sekä korkeus ja leveys kortti_h ja kortti_w. Hiiren koordinaatit olkoot mouse_x ja mouse_y.
mouse_x,y:n päivität ajan tasalle formin MouseMove-eventissä.

Lisäksi määrittelemme muuttujan dragcard: jos arvo on nolla, korttia ei liikuteta. Muuten se on liikutuksessa.

Ensiksi sisällytä kaikki tarpeellinen korttien piirtämiseksi eli katso se Antin opas.

Seuraamme hiiren liikettä. Katsotaan missä se menee alas (MouseDown-event): jos hiiren kursori on kortin päällä niin asetamme dragcard:n arvoksi 1:

If mouse_x >= kortti_x And mouse_y >= kortti_y And _
mouse_x < kortti_x + kortti_w And mouse_y < _
kortti_y + kortti_h Then
  dragcard = 1
End If

Ja aina, kun hiiren nappi nostetaan, aseta dragcard nollaksi jos se ei jo ol (MouseUp-event)
Formilla on MouseMove-event. Laita sinne jotain seuraavaa:

'Tämä koodi pitää kortin hiiren mukana.
If dragcard = 1 Then
  kortti_x = mouse_x - Int(kortti_w / 2)
  kortti_y = mouse_y - Int(kortti_h / 2)
End If

Sitten vielä määrittele vaikka timeri, joka piirtää kortin sijaintiinsa.
Uskoisin, että tämä auttaa jos pystyt hahmottamaan ongelman hieman laajemmin. Älä jumitu näennäisiin rajoituksiin; ne voi usein kiertää terveellä maalaisjärjellä.

Vastaus

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

Tietoa sivustosta