Oppure

Loading
01/04/07 10:33
Matthew
Ho realizzato un semplice gioco in c# che consiste nel far atterrare una navicella (pictureBox) sulla base (pictureBox). Come faccio a fare in modo che il computer reagisca in modi diversi a seconda della velocità con la quale la navicella atterra? In altre parole, come faccio a misurare la velocità della pictureBox al momento dell'atterraggio e a confrontarla con una predefinita?:k::k::k::k:
aaa
04/04/07 7:58
Il Totem
Se la picturebox si muove devi per forza avere la sua velocità, altrimenti non si muoverebbe, quindi risolvi tutto con una serie di If. Resta da vedere com'è che fai a muovere la picturebox, ad esempio, potresti mettere questo codice:
Public Const g As Decimal = 9.81
Public v As Decimal
Public Ticks As UInt32
'...
Sub Timer_Tick(...) Handles Timer.Tick
Ticks += 1

'h = h0 - 0.5g*t*t
'h0 - h = 0.5g*t*t
Dim t As Decimal = (Ticks * Timer.Interval / 1000)
Dim dh As Decimal = 0.5 * g * t ^ 2

'v = gt
v = g * t
PictureBox.Location = New Point(X, Y - CInt(dh))
End Sub

(Non so se funziona, non l'ho provato, comunque credo di sì; ah, ricordati che X e Y sono le coordinate iniziali della pciturebox.)
Ultima modifica effettuata da Il Totem 04/04/07 8:00
aaa
05/04/07 10:25
Matthew
Grazie per il consiglio! Ora funziona. Ho inserito una funizone che inserisce i razzi di atterraggio che rallentano la navicella e le permettono di atterrare senza pericolo.:k:
aaa