Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: QB: mäkihyppypeli

Sivun loppuun

vmjs [23.02.2003 16:05:03]

#

Ajattelin tehdä jonkun alkeellisen mäkihyppypelin, mutta törmäsin tälläseen ongelmaan:

Minkä käskyn kirjoitan että ylöspäinnappia painaessa x:n arvo nousee esim. 2:lla.

trinit [23.02.2003 16:14:34]

#

lainaus:

Minkä käskyn kirjoitan että ylöspäinnappia painaessa x:n arvo nousee esim. 2:lla.

Vähän tarkemmin voisit kertoa mitä haluaisit tietää, ylöpäinnapin scan-koodin vai miten x:ään lisätään 2? Viimeiseen vastaus on "x = x + 2" ;)

Niin ja mikä kieli?

vmjs [23.02.2003 16:25:50]

#

Kieli on Qbasic

mikä lause (input, ...)??

X on esim. suksen takapää ja y etupää. Kun painaa ylöspäinnappia x "kasvaa". Ja hyppääjä nousee..

meenekö se jotenki

o = inkey$
input ,o Vai kuinka???

Antti Laaksonen [23.02.2003 17:34:30]

#

Sinun pitää lukea painettuja näppäimiä jollakin tapaa. Yksi mahdollisuus on INKEY$-erikoismuuttuja, toinen mahdollisuus on suoraan portista 60h lukeminen. Esimerkki kummastakin ja näppäinkoodilista löytyy tuolta:

https://www.ohjelmointiputka.net/oppaat/opas.php?tunnus=napk

lainaus:

X on esim. suksen takapää ja y etupää. Kun painaa ylöspäinnappia x "kasvaa". Ja hyppääjä nousee..

Oletko aivan varma, että tiedät, mitä olet tekemässä? :)

vmjs [23.02.2003 17:49:44]

#

lähes varma, en varmasti osannut selittää sitä oikein?..

trinit [23.02.2003 18:30:21]

#

lainaus:

X on esim. suksen takapää ja y etupää. Kun painaa ylöspäinnappia x "kasvaa". Ja hyppääjä nousee..

Hetkinen, mitähän nyt tällä oikein tarkoitit? QB:ssa näytön koordinaatit menevät niin, että X-akseli on vaakasuorassa ja Y-akseli pystysuorassa jolloin vasen yläkulma on koordinaatteina esitettynä 0,0 (X,Y) ja oikea alakulma 320,200 kun käytetään SCREEN 13 näyttötilaa.

Joten "hyppääjän" noustessa Y-arvoa pitää pienentää.

vmjs [23.02.2003 21:06:57]

#

Joo multa puuttu tuos et yytäki pitää vähentää

Kun x:ä suurennetaan ja y:tä vähennetään hyppääjä nousee etuviistoon.

Mutta voisko joku antaa esimerkin kuinka mä kirjotan sen et ku painaa ylöspäin niin toi tapahtuu? ;)

Teme [23.02.2003 22:05:27]

#

Tässä on nyt jokin pätkä mut jos siin on jotain vikaa ni trinit tai Laaksonen varmaankin korjaa jutun ;)

IF INP(&H60) = 80 THEN //Alespäin-nappia painettu
Y = Y - 2
ELSEIF INP(&H60) = 72 THEN //Ylöspäin-nappia painettu
Y = Y + 2
ELSEIF INP(&H60) = 75 THEN //Vasemmalle-nappia painettu
X = X - 2
ELSEIF INP(&H60) = 77 THEN //Oikealle-nappia painettu
X = X + 2
END IF

Tossa koodissa voi olla häikkää, voit muunnella sitten noita X:n ja Y:n arvoja miten haluat. Tässä SCAN-systeemissä ei vissinkään pysty lukemaan kahta näppäintä samaan aikaan (Esim. Vasen ja Ylös), vai? Jos pystyy niin sitten näin:

IF INP(&H60) = 72 AND INP(&H60) = 75 THEN //Ylös ja Vasen painettu
Y = Y + 2
X = X - 2
END IF

trinit [23.02.2003 22:06:51]

#

lainaus:

x:ä suurennetaan ja y:tä vähennetään hyppääjä nousee etuviistoon

DO
    nappi$ = INKEY$

    SELECT CASE nappi$
        ' Nuolinäppäin ylös
        CASE CHR$(0) + CHR$(72)
            x = x + 2
            y = y - 2
        CASE CHR$(27)
            EXIT DO
    END SELECT
LOOP

Eiköhän se noin mennyt muistaakseni.

thefox [24.02.2003 12:22:44]

#

Suosittelen joko _todella_ yksinkertaista mäkihyppypeliä tai projektin hylkäämistä jos tiedot ovat tuolla tasolla.

vmjs [24.02.2003 14:22:06]

#

muut tiedot on kunnos paitsi nuo just.

vmjs [09.03.2003 22:13:27]

#

Käykääs porukat kattoos: http://www.riseskijump.cjb.net :)

Blaze [10.03.2003 02:03:11]

#

Kuis pitkästi tossa pääsee? Mun enkat on hurjat 36m :)

vipemype [10.03.2003 16:25:50]

#

Mullaki on ennätys 36 metriä. Yks miinus on ainaki välkkyvät grafiikat.

vmjs [10.03.2003 16:54:47]

#

Joo, kuinkas sen sais että noi grafiikat ei välky? :(

KemXy [10.03.2003 17:00:55]

#

Ns. kaksoispuskurointi vois auttaa. En kyllä itse tiedä, miten kaksoispuskuroinnin saa tehtyä ainakaan screen 13h:ssa, mitta muistelen että se onnistuu olikohan screen 7:ssa? Eli kaksi screeniä ja ne vaihdetaan Swap:lla. En kyllä muista...

Vilikki [10.03.2003 19:10:12]

#

Eiköhän sen kaksoispuskuroinnin voisi saada 13h:ssakin jotenkin kikkailemalla, en ole tarkemmin tutustunut...

KemXy [11.03.2003 14:39:17]

#

Pitäisi varmaan varata muistia tarpeeksi suurelle alueelle(320*200 pikseliä). Kirjoittaa sinne poke:lla ja kopioida koko homma näyttömuistuiin. Kokeilin assemblerilla, mutta jokin meni varmaan vikaan kun en saanut toimimaan?

thefox [11.03.2003 20:53:12]

#

Meni varmaankin ;) Kaksoispuskurointi mode13h:ssa onnistuu tosiaan varaamalla 320x200-tavuisen bufferin. Kannattaa kehitellä bufferin flippaamiseen joku asm-funktio koska QB:llä loopissa pokettaminen on melko hidasta ;)
Tuossa on tietysti miinuspuolena se, että QB:n perus graffakomentojen output-bufferia ei voi säätää, joten ne piirtävät aina suoraan ruutuun.

apocalypse [11.03.2003 21:12:48]

#

Saisko ton pienellä virityksellä toimii xp:lle??

vmjs [13.03.2003 20:48:07]

#

Sanokaas mielipiteenne mäkieditorista.
Se on versios 0.011, joka löytyy: http://koti.mbnet.fi/vmjs/RISE_011.EXE

Jogge [14.03.2003 17:00:02]

#

En oikein tykännyt tuosta, koska se vilkkuminen ei ole kovin kivan näköistä, toimii liian lujaa minun koneellani ja muutenkin paranteluja tarvitaan.


Sivun alkuun

Vastaus

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

Tietoa sivustosta