Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: *QB* Ammunta pelissä?

Sivun loppuun

gamehouse [30.04.2007 17:43:57]

#

Olen tässä rakentelemassa QB:llä peliä (nimeä ei vielä mietitty), jossa pitäisi pystyä ampumaan jonkin sortin "ohjus", niin että se näkyisi, viholliseen painamalla vaikkapa CTRL. Itse aloittlevilla QB- taidoillani en sellaista saa oikein kunnolla aikaiseksi :-( , joten voisinko saada vähän apua?

gamehouse [30.04.2007 19:02:41]

#

Osaan minä kyllä muuta QB:llä tehdä, mutta tämä tuli vain mieleen, viikon pohdiskelun jälkeen tosin...

Grez [30.04.2007 19:23:27]

#

Siis mikä osio tuossa tuottaa ongelmia? Ohjuksen koordinaattien laskeminen, ohjuksen ja vihollisen törmäyksen tunnistaminen, ohjuksen piirtäminen ruudulle (onko käytössä grafiikka vai tekstitila)?

neau33 [30.04.2007 19:31:05]

#

Moikka gamehouse!

Tutki sitä ilmaisen QBASIC:n (DOS) mukana tulevaa apinajuttua niin eiköhän ala ballistiset kuviot hahmottua...

gamehouse [30.04.2007 19:39:36]

#

No, ainakin ohjuksen koordinaattien laskeminen ja ohjuksen piirtäminen ruudulle tuottavat vaikeuksia...
Käytössä on tekstitila.

gamehouse [30.04.2007 19:53:41]

#

QB antaa virheilmoituksen gorillaz.bas- tiedostossa: Expented: statement ja korostaa sanan go jonka jälkeen tulee: = 1
Outoa...

Pekka Karjalainen [30.04.2007 20:18:29]

#

Tässä käyttäjän Heikki tekemässä oppaassa on tarvittavat perusasiat vektoreista esitetty hyvin.

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

Se on hyvä kerrata aluksi. Oppaissa on myös QB-asiaa ja -esimerkkejä, kuten selaamalla näet.

neau33 [30.04.2007 20:21:45]

#

Heippa taas!

Sorry toi sorsa olikin syvältä...tsekkaa täältä

gamehouse [30.04.2007 20:38:22]

#

Nyt toimii! Kiitos!
Mutta kuitenkin tarvitsisin sellaista, joka ampuisi suoraan eteenpäin. Esim.:
@ = hahmo ¤ = vihollinen - = ohjus

@ ¤
kun painettaisiin esim. ctrl, hahmo ampuisi, jotakuinkin tällä tavalla:
@ - ¤
...ja "ohjus" jatkaisi matkaa. En oikein osaa tätä, mutta muuta kylläkin.
Eli tarvisin apua!

nomic [30.04.2007 21:03:05]

#

ohjukselle oma x-arvo.
if suunta = "oikea" then
pyyhi "ohjus"
ohjus.x = ohjus.x + 1
piirrä "ohjus"

gamehouse [30.04.2007 21:14:09]

#

Kiitos paljon!!! Nyt tajusin tämän!
(parempia ehdotuksia voi toki lähettää)

neau33 [30.04.2007 22:53:47]

#

Heippa taas!

tässä alku...

CLS
ON KEY(2) GOSUB QUIT
KEY(2) ON
LOCATE 14, 5: PRINT "@"
LOCATE 14, 75: PRINT "Ï"

DO

IF INP(&H60) = 63 AND CHR$(SCREEN(14, 75)) <> "Ï" THEN 'F5
 KEY(2) OFF: RUN
END IF

IF INP(&H60) = 29 AND CHR$(SCREEN(14, 75)) = "Ï" THEN 'Ctrl

 FOR i% = 1 TO 69
  LOCATE 14, 5 + i%: PRINT "-"
  Delay! = .01 + TIMER
  DO WHILE Delay! > TIMER: LOOP
  LOCATE 14, 5 + i%: PRINT " "
 NEXT i%

END IF

LOOP

QUIT:
KEY(2) OFF
CLS: SYSTEM

Chaosworm [01.05.2007 09:29:39]

#

FOR i = 1 TO ammuksia
  LOCATE ay(i), ax(i)
  PRINT tyhja$
  ay(i) = ay(i) - 1
  IF ay(i) < 1 THEN
   ax(i) = ax(ammuksia)
   ay(i) = ay(ammuksia)
   ammuksia = ammuksia - 1
  END IF
  FOR j = 1 TO monkijoita
   IF ay(i) = my(i) AND ax(i) >= mx(j) AND ax(i) <= mx(j) + 2 THEN   'jos se osuu mönkijään niin
    x = mx(j)                                                        'x on mönkijän sijainti
    y = my(j)                                                        'y on mönkijän sijainti
    GOSUB Rajahdys                                                   'mennään räjäytykseen
    pisteet = pisteet + 10                                           'morescore
    IF pisteet / uusitykki = INT(pisteet / uusitykki) THEN           'ja jos pisteet ylittää uuden elmään rajat niin saa uuden elämän
    tykki = tykki + 1                                                'lisätään se elämä
    END IF                                                           'lopetetaan if
    mx(j) = mx(monkijoita)                                           'hmm...
    my(j) = my(monkijoita)                                           'se on siis se yks tietty mönkijä
    monkijoita = monkijoita - 1                                      'ja poistetaan se mönkijä
    ax(i) = ax(ammuksia)                                             'jaa ja nää sitte on että se on
    ay(i) = ay(ammuksia)                                             'se tietty ammus joka
    ammuksia = ammuksia - 1                                          'poistetaan
   END IF                                                            'lopetetaan if
  NEXT j
  IF i <= ammuksia THEN                                              'jos i on suurempi kun ammuksien määrä,
   LOCATE ay(i), ax(i)                   'niin sinne heitetään se ammus
   COLOR 14                              'keltasena
   PRINT ammus$                          'nyt
  COLOR 15                               'ja väri valkoseks
  END IF
 NEXT i
RETURN

Pieni pätkä tekemästäni space invaders - pelistä, jos siitä vaikka olisi jotain hyötyä... Edit: Miksi se ei anna heittää sitä siniselle pohjalle :( Edit 2: Aijaa, se olikin näköjään kautta-merkki eikä kenomerkki tuossa lopussa :) Edit 3: Tämä siis ei toimi yksinään...

gamehouse [01.05.2007 14:08:23]

#

Kiitos avusta! Nyt pelini etenee!


Sivun alkuun

Vastaus

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

Tietoa sivustosta