Kirjautuminen

Haku

Tehtävät

Keskustelu: Koodit: VB6: Tykkipelin alku

Sivun loppuun

sooda [19.02.2004 12:15:11]

#

Tykki joka ampuu ammuksen suht aidosti. Vasemmalla hiiren napilla ei pyyhi ammusta, oikealla pyyhkii.

Const pi = 3.14159265358979 'pii
Const g = 9.81 ' painovoima
Private TykkiX, TykkiY, ampumassa 'tykki x ja y, ampumassa on sitä varten ettei voisi ampua uudelleen jos ammus lentää jo

Private Sub Form_Load()

    ScaleMode = 3 'scalemode pixeleiksi, paljon kivempaa
    DrawWidth = 2 'selkeämpää
    TykkiX = ScaleWidth / 2 'liikutetaan tykki keskelle
    TykkiY = ScaleHeight / 2 '...
    PiirräTykki 'nimestäkin selviää mitä tehdään :D
End Sub

Private Sub PiirräTykki()

    Line (TykkiX, TykkiY)-(TykkiX - 10, TykkiY + 20) 'piirretään tykki
    Line (TykkiX, TykkiY)-(TykkiX + 10, TykkiY + 20) '...
    Line (TykkiX - 10, TykkiY + 20)-(TykkiX + 10, TykkiY + 20) '...

End Sub

Sub ammu(StartX, StartY, kulma, vauhti, suunta, pyyhikö)

    kohta = 0
    Do
        kohta = kohta + suunta 'liikutetaan ammusta
        X = vauhti * Cos(kulma * pi / 180) * kohta  'x-kohta
        Y = -1 * (vauhti * Sin(kulma * pi / 180) * kohta - 0.5 * g * (kohta * kohta)) 'ja y-kohta
        PSet (X + StartX, Y + StartY) 'piirretään ammus
        s = Timer: Do: DoEvents: Loop Until s + 0.03 < Timer 'ootetaan vähän
        If pyyhikö Then PSet (X + StartX, Y + StartY), BackColor 'jos pyyhitään niin pyyhitään
    Loop Until (Y + StartY > ScaleHeight) Or (X + StartX > ScaleWidth) Or (X + StartX < 0) 'luupataan kunnes ammus menee yli reunojen

End Sub

Private Sub Form_Mouseup(Button As Integer, Shift As Integer, X As Single, Y As Single)

    If ampumassa Then Exit Sub 'ettei voi ampua jos ammus lentää jo
    ampumassa = True
    Cls
    PiirräTykki
    a = Y - TykkiY 'yjutsku
    If a > 0 Then a = 0 'ettei voi ampua alaspäin
    b = X - TykkiX 'xjutsku
    c = Sqr(b ^ 2 + a ^ 2) 'lasketaan pituus
    If b = 0 Then 'ammutaan ylös?
        ang = 90 'kulma suoraan ylös
    Else 'muualle ku ylös
        ang = -180 / pi * Atn(a / b) 'kulma
    End If
    pow = c / 3 'ampumispoweri
    suunta = 1
    If b < 0 Then suunta = -1 'ammutaanko oikeelle?
    Caption = "Kulma: " & ang & ", voima: " & pow 'infoo
    ammu TykkiX, TykkiY, ang, pow, suunta, Button - 1 'ja ammutaan.
    ampumassa = False

End Sub

Private Sub Form_Unload(Cancel As Integer)

    End 'jotta varmana loppuisi jos vaikka ammutaan välillä niin ei sulkeudu kun se looppaa.

End Sub

TuGi [20.02.2004 10:27:15]

#

Näyttää hyvälle, mutta olispä vielä vb.netille....huoh!

The Ohjelmoija [20.02.2004 14:10:44]

#

Hmm... Hyvältä näyttää, pitääpä kokeilla joskus, jos jaksaa... =)

Gwaur [20.02.2004 15:15:17]

#

Entäs binaryä?

rndprogy [20.02.2004 16:56:57]

#

Jos oikeen muistan niin sooda ei voi tehdä exejä vb viitosellaan.

mamaze [20.02.2004 17:42:00]

#

ai eikö muka?

pitäis saada kyllä kun kolmosellaki onnistuu...vaikka siitä on aikaa kun oli kolmonen. nythän on kutonen.


se kolmonen oli muuten sellanen special versio, siinä oli erikoiskomentoja.
(= puolet enemmän kuin VB6:ssa)

ja tuo tykkipelin alku on ihan lupaava!

rndprogy [20.02.2004 18:19:16]

#

lainaus:

minulla on sama versio eikä siinäkään pysty koska se on CCE (tai joku) versio.

ai eikö muka?

sooda [20.02.2004 21:12:42]

#

just cce. control creation edition. freewarea, eli ei exeks kääntöä. joku toinen jolla on "oikea" vb voi varmaan kääntää jos tykkää :P

nomic [20.02.2004 23:14:30]

#

mä voisin muutes kääntää mutta eipä ole ole serveri-tilaa tai mitään vastaavaa =/
muutes, näytti lupaavalta ja ihan mukavan tuntuinen olikin tuosta on melko helppo vääntää omaa projektia jos vain jaksaisi, esim grafiikka jne... tyyliin joku worms tai molez tai liero, sillai et kun ammus osuu "hiekkaan" se räjähtää ja siitä jää pieni kraateri jne... :)
tuo fysiikka oli mukavasti muutes tehty, eipä pahempaa moittimista siitäkään :)
hieno ja yksinkertainen pätkä :)

sooda [21.02.2004 12:07:50]

#

jes, tulipas mukavasti kivaa kommenttia :) nomic, käännä ja anna mulle exe ni voin tunkea vaikka mun sivuille...

Bill Keltanen [21.02.2004 14:54:09]

#

iha kiva tosiaa... :)

miiro [21.02.2004 16:40:38]

#

no jaa ihan hauska

nomic [23.02.2004 07:54:27]

#

sooda, no laitan sähköpostissa tulemaan...

sooda [23.02.2004 15:10:30]

#

Nånih, binääriä löytyy tuolta: http://koti.mbnet.fi/koodaaja/tp.exe

Pasikki [16.10.2004 11:03:10]

#

mites tähän sais määritellyks sen mihin se kuula törmää, olen ite kokeillut määrittämällä neliöitä pikseleillä mutta niitten paikka muuttuu aina kun vaihtaa resoluutiota. Oisko tähän muuta keinoa, kuten että ohjelma rekisteröi onko kuula esim shape1:sen sisällä vai ulkopuolella.

sooda [16.10.2004 11:07:23]

#

Pasikki: mitä tarkoitat paikan muuttumista resoluutiolla? Jos tuota että tykki on aina formin keskellä, niin määrität vaan tykille kiinteän paikan ton tilalle että siirretään se keskelle. Ja shapeja ei kannata käyttää.

Pasikki [16.10.2004 19:17:48]

#

tarkoitan sitä että jos määritän pikseleillä paikan johon kuulalla yritetään osua ja pistän visuaalisesti sen päälle esim image1:sen, niin kun vaihdan resoluutiota kuvan paikka muuttuu. Vai voiko koodissa määrittää tietyn objektin sijainnin jotenkin?

-
tyhmiä kysymyksiä jo vuodesta 2004. C Pasikki

sooda [16.10.2004 19:51:07]

#

Miten kuvan paikka muka muuttuu resoa vaihtaessa :o ja miksi pitäs käyttää imageja :o no kuitenki: koodissa voi objujen sijainteja muuttaa .left ja .top-hommilla. Tyyliin image1.left=0 heittää image1:n formin vasempaan laitaan.


Sivun alkuun

Vastaus

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

Tietoa sivustosta