Kirjautuminen

Haku

Tehtävät

Keskustelu: Koodit: QB: Kulman laskeminen

Jogge [11.08.2002 12:07:32]

#

Tämä ohjelmanpätkä laskee kulman kahden pisteen välillä. Tämä voi olla hyödyllinen joihinkin peleihin joissa tarvitsee tietää mihin suuntaan esim. tietokonepelaaja menee. Koodiin sisältyy pieni pelin alku, jolla asian voi todeta.

DIM namiska(1 TO 4)
SCREEN 12 'vaihdetaan näyttötila
pi = 3.141592654# 'määritetään pii

'alkupaikat
x1 = 320
y1 = 240
x2 = 100
y2 = 240

PunNop = .5 'punaisen pisteen nopeus
DO 'silmukan alku

  DO: LOOP UNTIL (INP(&H3DA) AND &H8) <> 0     'hidastus


  o$ = INKEY$
  n = INP(&H60)
  xx2 = x2 'systeemi
  yy2 = y2

  'mitkä näppäimet pohjassa?
  IF n = 1 THEN END

  IF n = 72 THEN namiska(1) = 1
  IF n = 80 THEN namiska(2) = 1
  IF n = 75 THEN namiska(3) = 1
  IF n = 77 THEN namiska(4) = 1

  IF n = 200 THEN namiska(1) = 0
  IF n = 208 THEN namiska(2) = 0
  IF n = 203 THEN namiska(3) = 0
  IF n = 205 THEN namiska(4) = 0

  'liikutetaan vihreää pistettä
  IF namiska(1) = 1 THEN y2 = y2 - 1
  IF namiska(2) = 1 THEN y2 = y2 + 1
  IF namiska(3) = 1 THEN x2 = x2 - 1
  IF namiska(4) = 1 THEN x2 = x2 + 1

  'tarkistetaan ettei vihreä piste karkaa ruudun ulkopuolelle
  IF x2 > 630 THEN x2 = 630
  IF x2 < 10 THEN x2 = 10
  IF y2 > 470 THEN y2 = 470
  IF y2 < 10 THEN y2 = 10

  'päivitetään vihreä piste näytölle
  LINE (xx2 - 1, yy2 - 1)-(xx2 + 1, yy2 + 1), 0, BF
  LINE (x2 - 1, y2 - 1)-(x2 + 1, y2 + 1), 2, BF

  'aloitetaan kaikki kulman laskemiseen liittyvät asiat
  a = x2 - x1
  b = y2 - y1

  IF a = 0 OR b = 0 THEN a = a + .0001: b = b + .0001

  k = ATN(a / b) / (pi / 180) 'lasketaan kulma...

  l = 180			'varmistetaan
  IF y1 < y2 THEN l = 0	'oikea suunta
  IF y1 = y2 THEN l = 0	'ääritilanteissa ;-D

  k = k + l
  'lopetetaan kulman laskemiseen liittyvät jutskat

  LINE (x1 - 1, y1 - 1)-(x1 + 1, y1 + 1), 0, BF 'pyyhitään punainen piste

  x1 = x1 + SIN(k * (pi / 180)) * PunNop 'liikutetaan punaista pistettä
  y1 = y1 + COS(k * (pi / 180)) * PunNop

  LINE (x1 - 1, y1 - 1)-(x1 + 1, y1 + 1), 4, BF 'piirretään punainen piste
LOOP

snakari [12.08.2002 12:10:00]

#

ihan hieno

Juhko [16.10.2006 16:00:58]

#

Hienolta näyttää, vaikka punainen piste liikkuukin väärässä kulmassa, ehkä se johtuu siitä, kun minulla on internet Macissa, ja QB Windowsissa, niin jouduin kattomaan näytöltä koodin ja kirjoittamaan sen QB:hen. Tein ehkä jonkun virheen...

Juhko [05.05.2007 17:05:44]

#

Juu, virhehän siellä. Kun copypastetin, se toimi oikein hyvin. Tein vain ihan muita pikku muutoksia että se on valmis omiin peleihin. :)

Vastaus

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

Tietoa sivustosta