Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: VB6: Ampuminen ja maskaus

Jorgga [22.03.2007 00:44:24]

#

Eli jos formil on vaik bullet(0).picture ja tartteis luoda uusia näitä miten se onnistuisi?

ja sit mites noide kuvien maskaaminen?

Kiitän jo valmiiksi

Merri [22.03.2007 02:58:04]

#

Pidemmän päälle ainakaan uusien objektien lisääminen ei ole kovin toimiva ratkaisu (tuli kokeiltua nuoremmalla iällä: joku 1000 imagea hyydytti perus-Pentiumin ihan kokonaan).

Sen sijaan löytyy tämmöinen hieno funktio nimeltään BitBlt. Sillä onnistuu sekä maskaus että normaali piirtäminen. Ensin maskilla nollataan se alue mihin kohtaan halutaan ilmestyvän spriten pikseleitä ja sitten piirretään itse sprite.

BitBlt:lle pitäisi löytyä varsin pienellä etsintävaivalla vaikka kuinka opetusmateriaalia.

Tämän jälkeen tosin nousee tietysti kysymys, että miten pidät lukua kaikista niistä lentävistä ammuksista. Yksi tapa on käyttää user defined typejä, siis:

' suositeltuna sijaintina moduuli

Public Type Ammus
    X As Single
    Y As Single
End Type

' luo 100 ammusta; eli niitä voisi tällä tavoin olla maksimissaan 100 olemassa kerralla
Dim Ammukset(99) As Ammus

Ja tietty siinä pitäisi myös olla suunta, nopeus... ehkä myös painokin, ja animaatiotakin voisi tietty toteuttaa pyörittämällä jotakin lukua ympäri.

X ja Y -sijaintiin käytin Singleä, eli 32-bittistä liukulukumuuttujaa, koska muuten lennosta voi tulla vähän pätkivä tai ammus ei saata liikahtaa ihan hitaimmilla nopeuksilla ollenkaan mihinkään, mikä ei varmasti ole kovin kiva juttu.


Toinen juttu on sitten vielä se, että voit sisäisesti ruudulle piirtämättä liikuttaa asioita useammin kuin mitä näytät ruudulla niitä tapahtumia. Tämä lisää yllättävällä tavalla sujuvuutta ja pelaajallekin tulee pelihahmon ohjastamiseen tarkkuutta.

Vastaus

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

Tietoa sivustosta