Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: VB6: "Hirviöitten" lisääminen pelialueelle arpomalla

Feel Free [17.12.2004 15:34:20]

#

Eli siis miten minä saisin silleen, että kone arpoo minkälainen hirviö ja monta niitä tulee pelialueelle esim. 10 sekunnin välein. Omat yritykseni ovat suoraansanoen kauheita.

Antti Laaksonen [17.12.2004 15:35:42]

#

Miten olet toteuttanut pelialueen ja hirviöt? Ilman tätä tietoa vastaaminen on mahdotonta.

hunajavohveli [17.12.2004 15:46:06]

#

Näin on. Ja kumpi kieli on kyseessä?

Feel Free [17.12.2004 15:53:57]

#

Visual basic on kieli. pictureboxi on se pelialue .siinä motuulissa on hirviöitten tieto aliohjelmis, ja hirviöt ladataan aina noihin image kontrolleihin, joita on nimetty enemy1, enemy2 jne..

Heikki [17.12.2004 16:07:56]

#

Ensinnäkin kannattaa tehä image kontrollereista taulukko (en tosin tiedä millaisia image kontrollerit ovat, mutta pitäisi onnistua index-arvoa muuttamalla).

Sitten vain

for i=0 to hirvioita
 hirvio(i).top = int(rnd * pelialueenkorkeus)
 hirvio(i).left = int(rnd * pelialueenleveys)
next

Johonkin tohon tapaan, en ole VB:tä pitkään aikaan käyttänyt.

10s välein saat tehtyä timerillä, jonka interval on 10000.

Antti Laaksonen [17.12.2004 16:42:26]

#

Sinun kannattaa luoda jonkinlainen taulukko, jossa on jokaisen hirviön tunnusnumero ja sijainti pelialueella. Kun luot uuden hirviön, panet sen tiedot taulukon seuraavaan vapaaseen kohtaan. Kun hirviö menee pois, tyhjennät sen kohdan taulukosta. Kun on näytön päivityksen aika, siirrät kunkin kuvakontrollin oikeaan paikkaan hirviötaulukon mukaan. Kontrollit pitää järjestää taulukkoon, jotta niihin pystyy viittaamaan helposti. Toinen ja melkein aina parempi tapa on luopua kontrolleista ja piirtää hirviöt suoraan ruudulle vaikkapa WinAPIn BitBlt-funktion avulla.

Kontrollien järjestäminen taulukoihin (kappale "Ohjaintaulukot"):
https://www.ohjelmointiputka.net/oppaat/opas.php?tunnus=vbo_3
Grafiikan toteutus BitBlt-funktion avulla:
https://www.ohjelmointiputka.net/oppaat/opas.php?tunnus=spriteo

Vastaus

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

Tietoa sivustosta