Kirjautuminen

Haku

Tehtävät

Keskustelu: Koodit: QB: Triangl

Sivun loppuun

scapegoat.moa [24.11.2002 15:02:18]

#

OHO jäi listaukset tosta ekasta. Joo en tiedä mitä hyötyä tästä on, mutta siinä se. Muuttakaa viivesilmukan loppu arvoa jos tökkii tai vilkkuu. Aliohjelmat olis kyllä voinu miettiä paremmin, mutta näin saadaan kolmioon hyvä satunnaisuus liikkumisen ja nopeuden suhteen!

'*************************************************************************
'Scapegoat.moa 17.11.02
'
'Ohjelma: Triangl
'*************************************************************************

DECLARE SUB AlkuPiste (x AS INTEGER, y AS INTEGER, suunta AS INTEGER, nopeus AS INTEGER)
DECLARE SUB LoppuPiste (xx AS INTEGER, yy AS INTEGER, suunta2 AS INTEGER, nopeus2 AS INTEGER)

DIM x AS INTEGER, xx AS INTEGER, y AS INTEGER, yy AS INTEGER
DIM suunta AS INTEGER, suunta2 AS INTEGER
DIM nopeus AS INTEGER, nopeus2 AS INTEGER
DIM i AS INTEGER, vari AS INTEGER
DIM viive AS DOUBLE

SCREEN 12
CLS

RANDOMIZE TIMER
x = INT(RND * 640)                                    'arvotaan.
xx = INT(RND * 640)                                   '
y = INT(RND * 480)                                    '
yy = INT(RND * 480)                                   '
suunta = INT(RND * 4) + 1                             '
suunta2 = INT(RND * 4) + 1                            '
nopeus = INT((RND * 30) + 5)                          '
nopeus2 = (RND * 30) + 5                              '

DO
  CALL AlkuPiste(x, y, suunta, nopeus)
  CALL LoppuPiste(xx, yy, suunta2, nopeus2)

  FOR i = 0 TO 24 STEP 4                              '"kopioidaan"...
      vari = i                                        'viivaa. (6 kpl).
      IF vari = 0 OR vari = 24 THEN
         vari = 9
      ELSE vari = 1
      END IF
      LINE (0, 0)-(639, 479), 1, B                    'reunaviiva.
      LINE (x - i, y - i)-(xx - i, yy - i), vari               'ite...
      LINE (xx - i, yy - i)-(664 - x - i, 504 - y - i), vari   'kol-...
      LINE (664 - x - i, 504 - y - i)-(x - i, y - i), vari     'mio.
  NEXT
  FOR viive = 1 TO 8000
  NEXT
LOOP WHILE INKEY$ = ""
SUB AlkuPiste (x AS INTEGER, y AS INTEGER, suunta AS INTEGER, nopeus AS INTEGER)

DIM ylosvasen  AS INTEGER
DIM ylosoikea AS INTEGER
DIM alasvasen AS INTEGER
DIM alasoikea AS INTEGER

ylosvasen = 1                                         'suunnnat.
ylosoikea = 2                                         '
alasvasen = 3                                         '
alasoikea = 4                                         '

SELECT CASE suunta
       CASE ylosvasen
            CLS                                       'puhdistetaan välillä.
            x = x - nopeus
            y = y - nopeus
            IF x <= 24 THEN                           '24 0:N sijasta,...
               nopeus = INT(RND * 30) + 5             'koska viivoja...
               suunta = ylosoikea                     'on 6 kpl ja ne...
            ELSEIF y <= 24 THEN                       'ovat 4:n välein.
               nopeus = INT(RND * 30) + 5             '+ 5, jottei olisi...
               suunta = alasvasen                     'liian hidas.
            END IF
       CASE ylosoikea
            CLS                                       'ja puhdistetaan.
            x = x + nopeus
            y = y - nopeus
            IF x >= 640 THEN
               nopeus = INT(RND * 30) + 5
               suunta = ylosvasen
            ELSEIF y <= 24 THEN
               nopeus = INT(RND * 30) + 5
               suunta = alasoikea
            END IF
       CASE alasvasen
            x = x - nopeus
            y = y + nopeus
            IF x <= 24 THEN
               nopeus = INT(RND * 30) + 5
               suunta = alasoikea
            ELSEIF y >= 480 THEN
               nopeus = INT(RND * 30) + 5
               suunta = ylosvasen
            END IF
       CASE alasoikea
            x = x + nopeus
            y = y + nopeus
            IF x >= 640 THEN
               nopeus = INT(RND * 30) + 5
               suunta = alasvasen
            ELSEIF y >= 480 THEN
               nopeus = INT(RND * 30) + 5
               suunta = ylosoikea
            END IF
END SELECT

END SUB
SUB LoppuPiste (xx AS INTEGER, yy AS INTEGER, suunta2 AS INTEGER, nopeus2 AS INTEGER)

DIM ylosvasen  AS INTEGER
DIM ylosoikea AS INTEGER
DIM alasvasen AS INTEGER
DIM alasoikea AS INTEGER

ylosvasen = 1
ylosoikea = 2
alasvasen = 3
alasoikea = 4

SELECT CASE suunta2
       CASE ylosvasen
            xx = xx - nopeus2
            yy = yy - nopeus2
            IF xx <= 24 THEN
               nopeus2 = INT(RND * 30) + 5
               suunta2 = ylosoikea
            ELSEIF yy <= 24 THEN
               nopeus2 = INT(RND * 30) + 5
               suunta2 = alasvasen
            END IF
       CASE ylosoikea
            xx = xx + nopeus2
            yy = yy - nopeus2
            IF xx >= 640 THEN
               nopeus2 = INT(RND * 30) + 5
               suunta2 = ylosvasen
            ELSEIF yy <= 24 THEN
               nopeus2 = INT(RND * 30) + 5
               suunta2 = alasoikea
            END IF
       CASE alasvasen
            xx = xx - nopeus2
            yy = yy + nopeus2
            IF xx <= 24 THEN
               nopeus2 = INT(RND * 30) + 5
               suunta2 = alasoikea
            ELSEIF yy >= 480 THEN
               nopeus2 = INT(RND * 30) + 5
               suunta2 = ylosvasen
            END IF
       CASE alasoikea
            xx = xx + nopeus2
            yy = yy + nopeus2
            IF xx >= 640 THEN
               nopeus2 = INT(RND * 30) + 5
               suunta2 = alasvasen
            ELSEIF yy >= 480 THEN
               nopeus2 = INT(RND * 30) + 5
               suunta2 = ylosoikea
            END IF
END SELECT

END SUB

scapegoat.moa [25.11.2002 10:50:22]

#

Viivoja muuten onkin 7. Kolmio saattaa mennä vähän reunojen yli.

mikkot [25.11.2002 16:31:30]

#

Mikä tuo kuvaus on?

Antti Laaksonen [25.11.2002 18:22:27]

#

Mielenkiintoista grafiikkaa, tosin vähän vilkkuvaa (ainakin minulla).

KimmoKM [25.11.2002 18:54:58]

#

Hieno ohjelma

scapegoat.moa [26.11.2002 11:42:53]

#

Joo ei kovin kuvaa kuvaus, mutta jokin kolmio se on. Vilkkumisen saa säädettyä mm. viivesilmakan loppuarvoa muuttamalla. (minulla ei vilkkunut). Jos tökkii mutta ei vilku --> muuta aliohjelmien (nopeus ja nopeus2) vitonen vaikka kympiksi! Kiitoksia kommenteista!!

kala [27.11.2002 15:09:36]

#

olisit voinu kyllä esittää paremman kuvauksen

scapegoat.moa [29.11.2002 09:57:49]

#

Joo niin olisin voinut kuvailla. Eli "3d" huom. "" kolmion kaksi kulmaa saavat satunnaisen suunnan ja nopeuden alustuksessa. Kaksi kulmaa saavat kimpoamis suunnan reunaan törmätessään. Ne saavat myös uuden satunnaisen nopeuden. Näyttö putsataan vain, kun alkupiste osuu reunaan suunnasta ylövasen tai ylösoikea. Kolmio on itseasiassa vain viiva, jolle lasketaan alku ja loppu pisteet.

Gwaur [08.10.2003 23:16:29]

#

Tässä olis hyvä kuvaus:

Sellainen pyörivä ja pomppiva kolmiokasa niinkuin windowsin yks näytönsäästäjä. Saattaa vilkkua ja välkkyä.

Dude [31.08.2007 19:53:17]

#

Vähä outo. Tuo on vähä niinku vaeltavat kuviot-näytönsäästäjä.

gamehouse [19.10.2007 11:00:38]

#

Niinpä..


Sivun alkuun

Vastaus

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

Tietoa sivustosta