Un début pour les jeux, sourtou pour ceux qui ont horreur des matrice (ou tableaux)

Soyez le premier à donner votre avis sur cette source.

Vue 3 148 fois - Téléchargée 287 fois

Description

Ce n'est que pour détecter si un rectangle recouvre partiellement un autre
sans utiliser de matrice.

Il n'est pas trops compliqué

J'ai pris les "shapes" de VB

Attention c'est en VB3

Vous devez creer une form avec n'importe quel nom
un shape avec comme nom player
des shape avec comme nom chateau(0),chateau(1)... (objets indexé)

Pour ceux qui ne veullent pas faire ça ===> ZIP (Attention VB3)

Source / Exemple :


Sub Form_KeyDown (keycode As Integer, Shift As Integer)
Const vitesse = 50 'C'est la vitesse de déplacement
x = player.Left
y = player.Left
Select Case keycode 'C'est l'analogue de switch en javascript, c'est un branchement conditionel en fonction de la valeure de "keycode"
Case 39 'si keycode=39 alors
 player.Move player.Left + vitesse, player.Top 'fin de if
 If test() = True Then player.Left = player.Left - vitesse 'si colision alors retour position de départ !!
Case 40 'si keycode=40 alors
 player.Move player.Left, player.Top + vitesse 'fin de if
 If test() = True Then player.Top = player.Top - vitesse 
Case 38
 player.Move player.Left, player.Top - vitesse
 If test() = True Then player.Top = player.Top + vitesse
Case 37
 player.Move player.Left - vitesse, player.Top
 If test() = True Then player.Left = player.Left + vitesse
End Select

End Sub

Function test ()
Dim vartest As Integer ' vous allez comprendre son utilitée
For ix = 0 To 2
If vartest = True Then Exit Function ' si vartest est a true alors on quite la "function" en lui attribuant "true" comme valeure
If player.Left + player.Width > chateau(ix).Left And player.Top + player.Height > chateau(ix).Top And player.Left < chateau(ix).Left + chateau(ix).Width And player.Top < chateau(ix).Top + chateau(ix).Height Then
test = True
vartest = True
Else
test = False
End If
Next
End Function

Conclusion :


On peut faire assez de choses avec VB3 !!!
Attention : ce code est très très lent mais c'est un début ...
Remarquez qu'il vaut mieux utiliser " ' " que "REM" pour la coloration !

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

Messages postés
33
Date d'inscription
mardi 4 novembre 2003
Statut
Membre
Dernière intervention
4 décembre 2005

ok merci beaucoup
Messages postés
88
Date d'inscription
jeudi 26 décembre 2002
Statut
Membre
Dernière intervention
2 janvier 2007

mikaeloff, je ne pense pas que se soit d'une grande importance :)
Et puis après tout, bien lire et bien comprendre

J'enlèverais bien le zip...

Quand j'aurai le temps [et l'envie] pour ça je le ferai :) et tu serras averti :) [si j'y pense mais j'y penserai]
Messages postés
33
Date d'inscription
mardi 4 novembre 2003
Statut
Membre
Dernière intervention
4 décembre 2005

pouquoi pas en vb1 ou2
nen je decone mais ça cerait bien que tu fasse une petite mise a jour
Messages postés
368
Date d'inscription
dimanche 24 juin 2001
Statut
Membre
Dernière intervention
7 décembre 2015

Super avec le nouveau VB ... VB 3 lol !
On est kand même arrivé au double mé bon ;)
Messages postés
75
Date d'inscription
mardi 5 mars 2002
Statut
Membre
Dernière intervention
5 octobre 2005

Tu utilise DirectX avec le type Rect, c'est beaucoup plus rapide :) Mais bon faut tuiliser directX

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.