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
Näyttää hyvälle, mutta olispä vielä vb.netille....huoh!
Hmm... Hyvältä näyttää, pitääpä kokeilla joskus, jos jaksaa... =)
Entäs binaryä?
Jos oikeen muistan niin sooda ei voi tehdä exejä vb viitosellaan.
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!
lainaus:
minulla on sama versio eikä siinäkään pysty koska se on CCE (tai joku) versio.
ai eikö muka?
just cce. control creation edition. freewarea, eli ei exeks kääntöä. joku toinen jolla on "oikea" vb voi varmaan kääntää jos tykkää :P
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ä :)
jes, tulipas mukavasti kivaa kommenttia :) nomic, käännä ja anna mulle exe ni voin tunkea vaikka mun sivuille...
iha kiva tosiaa... :)
no jaa ihan hauska
sooda, no laitan sähköpostissa tulemaan...
Nånih, binääriä löytyy tuolta: http://koti.mbnet.fi/koodaaja/tp.exe
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.
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ää.
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
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.
Aihe on jo aika vanha, joten et voi enää vastata siihen.