Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: VB6: Minigolf (Basic)

Jay [11.08.2004 23:21:05]

#

Tuli mutkia matkaan. Pallo käyttäytyy aivan omituisesti. Taustaa: Minulla on muistissa värikartta-kuva, josta luetaan väriarvot muistiin ja tarkastetaan sitten...

Xs#=(Power*Sin(xAngle))
Ys#=(Power*-Cos(yAngle))
Bx=Bx+Xs
By=By+Ys

Pallo liikkuu tuolla koodinpätkällä.

;vasen reuna
If cnt(1) And cnt(8) And cnt(7)
  If xs<0
    xAngle=-xAngle
  EndIf
  Goto skip
EndIf

Tuo tarkistus toimii oikein...

;oikea yläkulma
If cnt(3)
  If xs>0
    If ys=>0 Or ys<=0
      xangle=xangle+90
      yangle=yangle+90
    EndIf
    Goto skip
  EndIf
  If ys<0
    If xs=>0 Or xs<=0
      xangle=xangle-90
      yangle=yangle-90
    EndIf
  Goto skip
  EndIf
EndIf

Tämä ei toimi... En tiedä osaako kukaan sanoa tuosta, mikä on vikana, mutta ainahan voi yrittää.

xs, ys - X ja Y nopeus
Power  - vähenee koko ajan, kun on lyöty
Cnt()  - ottaa muistiin väripisteen.. pallon ympärillä 8 kpl.
1 2 3
8 x 4   (x esittää palloa, ympärille pisteet mistä tarkastetaan väri)
7 6 5

peki [11.08.2004 23:29:29]

#

Jos en nyt ymmärrä ongelmaa aivan väärin, niin sinun pitäisi antaa nuo kulmat radiaaneissa.
tuo 90 lisäys ja vähennys viittaisi minusta asteisiin.
90 on radiaaneissa siis ½ * pii.

edit: Asteet muutat radiaaneiksi näin: aste * (pii/180).
Muista myös muuttaa nykyinen muuttuja double muotoon.

hunajavohveli [12.08.2004 17:00:49]

#

Yritä muuten kiertää Goto niin voit saada koodista selkeämpää.

Vastaus

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

Tietoa sivustosta