Manette de jeu en francais

Soyez le premier à donner votre avis sur cette source.

Vue 5 528 fois - Téléchargée 520 fois

Description

ben j'ai tout retape le code sur les manettes sui se trouvait sur ce site
maintenant c'ets clair et simple!

ps: Geff c'ets the Killer de VBfrance, c'tencule y m'a vole une source!

Source / Exemple :


'// avant tout il faut:
        forme1
        label1 , label2
        text1, text2
        un bouton pour le commentaire: command1
        et le timer qui analyse les touches : Timer1

                    • le code pour la forme1************
'Variables Dim DirectionX As String Dim DirectionY As String Private Sub Command1_Click() A = vbCrLf MsgBox "Ben je voulais faire un Jeu utilisant la Manette" & A & "alors j'ai trouvé un code sur le Bo site de Nix , mais c'était un code trop pourri et en Anglais (Fuck les autres! Vive les Programmaurs Francais!)" & A & " Donc voila ce code Modifié, Alégé, Optimisé, Traduit par moi:" & A & "********************************" & A & "gex.rider@caramail.com" & A & "********************************" & A & A & A & "Publicité: " & A & "www.firelandteam.fr.st" & A & A & "Rq: Chez moi ca marche , j'utilise la manette deplaystation2 si avec une autre manette le code ne va pas, merci de me prevenir dans VBfrance!", vbInformation Or vbOKOnly, "***Gex Rider***" End Sub Private Sub Form_Load() Dim R1& Dim hWnd& Static TheX As Long Static TheY As Long maxmin.Xbt = 0 maxmin.Ybt = 0 maxmin.Xtp = 62 maxmin.Ytp = 64 'Analyse des Fonctions de la Manette........(ben koi? moi non plus je sais pas ce que c'est !) R1& = joySetCapture(hWnd, JOYSTICKID1, 1, 0) R1& = joyReleaseCapture(JOYSTICKID1) ' Choppe les coordonnées de la manette et les mets dans les variables theX et TheY. R1& = joyGetPosEx(JOYSTICKID1, myJoy) End Sub Public Sub LorR() myJoy.dwSize = 64 myJoy.dwFlags = JOY_RETURNALL Call LeftOrRight 'analyse les mouvements horizontaux Call HautOuBas 'idem pour les verticaux R1& = joyGetPosEx(JOYSTICKID1, myJoy) Label1.Caption = myJoy.dwButtons 'c'te ligne est la plus simple: elle affiche la some des valeurs que la manette recoit: ' exemple si elle recoit la touche qui fait 2 et la touche qui fait 8, alors la somme affichée sera 8+2=10 ' donc on peut voir que qq'un appuye sur la manette, mais il est dificile de savoir sur quelles touches quand ils y en a plusieurs End Sub Private Sub Timer1_Timer() LorR 'dedans on analyse tout les bordel Text1 = DirectionX 'puis on affiche les resultats (ici droite gauche Text2 = DirectionY 'encore un resultat (ici haut bas) Call setbuttons 'la on analyse presisement quelles touches sont enfoncées Label2.Caption = "A = " + Str(buttons.A) + vbCrLf + "B = " + Str(buttons.B) + vbCrLf + "C = " + Str(buttons.C) + vbCrLf + "D = " + Str(buttons.D) 'et pour finir on ecrit les etats de chaques touches End Sub Sub LeftOrRight() 'cette Sub analyse si on appuye sur gauche ou droite CURx = Mid$(myJoy.dwXpos, 1, 2) CURy = Mid$(myJoy.dwYpos, 1, 2) nokeyLastX = True If CURx < maxmin.Xbt + 20 Then DirectionX = "gauche" nokeyLastX = False ElseIf CURx > maxmin.Xtp - 20 Then DirectionX = "droite" nokeyLastX = False Else DirectionX = "millieu" End If End Sub Sub HautOuBas() 'ici haut ou bas, ou les 2? (les 2? c'ets rare ca????) CURx = Mid$(myJoy.dwXpos, 1, 2) CURy = Mid$(myJoy.dwYpos, 1, 2) nokeyLastX = True nokeyLastX = False nokeyLastY = True If CURy < maxmin.Ybt + 20 Then DirectionY = "haut" nokeyLastY = False ElseIf CURy > maxmin.Ytp - 20 Then DirectionY = "bas" Else DirectionY = "millieu" nokeyLastY = False End If End Sub
  • puis le code pour le module (appelé module2 =8)*********
'liste des apis 'j'ai pas fait le menage , mais y'en a les 3/4 qui servent plus a rien 'nettoyez vous! Declare Function joyGetPosEx Lib "winmm.dll" (ByVal uJoyID As Long, pji As JOYINFOEX) As Long Declare Function joyReleaseCapture Lib "winmm.dll" (ByVal id As Long) As Long Declare Function joySetCapture Lib "winmm.dll" (ByVal hWnd As Long, ByVal uID As Long, ByVal uPeriod As Long, ByVal bChanged As Long) As Long Declare Function ShowCursor Lib "user32" (ByVal bShow As Long) As Long Dim nokeyLastY As Boolean, nokeyLastX As Boolean Public Const JOYSTICKID1 = 0 Public Const JOYSTICKID2 = 1 Public NetX, NetY, OldX, OldY, OldNetX, OldNetY Public NetBX, NetBY, OldNetBX, OldNetBY Public MyY, MyX, myCuRy, myCuRx Public Const SQUARE_WID = 20 Public Const SQUARE_HGT = 20 Public Const JumpHeight = 4 Public R As Integer Public C As Integer Public Const JOY_POVCENTERED = -1 Public Const JOY_POVFORWARD = 0 Public Const JOY_POVRIGHT = 9000 Public Const JOY_POVLEFT = 27000 Public Const JOY_RETURNX = &H1& Public Const JOY_RETURNY = &H2& Public Const JOY_RETURNZ = &H4& Public Const JOY_RETURNR = &H8& Public Const JOY_RETURNU = &H10 Public Const JOY_RETURNV = &H20 Public Const JOY_RETURNPOV = &H40& Public Const JOY_RETURNBUTTONS = &H80& Public Const JOY_RETURNRAWDATA = &H100& Public Const JOY_RETURNPOVCTS = &H200& Public Const JOY_RETURNCENTERED = &H400& Public Const JOY_USEDEADZONE = &H800& Public Const JOY_RETURNALL = (JOY_RETURNX Or JOY_RETURNY Or JOY_RETURNZ Or JOY_RETURNR Or JOY_RETURNU Or JOY_RETURNV Or JOY_RETURNPOV Or JOY_RETURNBUTTONS) Public Const JOY_CAL_READALWAYS = &H10000 Public Const JOY_CAL_READRONLY = &H2000000 Public Const JOY_CAL_READ3 = &H40000 Public Const JOY_CAL_READ4 = &H80000 Public Const JOY_CAL_READXONLY = &H100000 Public Const JOY_CAL_READYONLY = &H200000 Public Const JOY_CAL_READ5 = &H400000 Public Const JOY_CAL_READ6 = &H800000 Public Const JOY_CAL_READZONLY = &H1000000 Public Const JOY_CAL_READUONLY = &H4000000 Public Const JOY_CAL_READVONLY = &H8000000 'ca, faut pas le toucher! Type JOYINFOEX dwSize As Long ' taille de la structure dwFlags As Long ' flags to indicate what to return dwXpos As Long ' x position dwYpos As Long ' y position dwZpos As Long ' z position dwRpos As Long ' rudder/4th axis position dwUpos As Long ' 5th axis position dwVpos As Long ' 6th axis position dwButtons As Long ' etats des bouttons dwButtonNumber As Long ' numero du bouton presse actuellement dwPOV As Long ' point of view state dwReserved1 As Long ' reserved for communication between winmm driver dwReserved2 As Long ' reserved for future expansion End Type Public buttons As buttons Public myJoy As JOYINFOEX Public going As going Type going Xhu As Integer Yhu As Integer lastX As Long lastY As Long End Type Public maxmin As maxmin Type maxmin Xtp As Long Xbt As Long Ytp As Long Ybt As Long Yct As Long Xct As Long End Type Type buttons A As Boolean B As Boolean C As Boolean D As Boolean End Type Public totalY@, totalX@ Sub setbuttons() 'la sa analyse touche par touche ButtonNo = myJoy.dwButtons If ButtonNo = 0 Then buttons.A = False buttons.B = False buttons.C = False buttons.D = False ElseIf ButtonNo = 1 Then buttons.A = True buttons.B = False buttons.C = False buttons.D = False ElseIf ButtonNo = 2 Then buttons.A = False buttons.B = True buttons.C = False buttons.D = False ElseIf ButtonNo = 3 Then buttons.A = True buttons.B = True buttons.C = False buttons.D = False ElseIf ButtonNo = 4 Then buttons.A = False buttons.B = False buttons.C = True buttons.D = False ElseIf ButtonNo = 5 Then buttons.A = True buttons.B = False buttons.C = True buttons.D = False ElseIf ButtonNo = 6 Then buttons.A = False buttons.B = True buttons.C = True buttons.D = False ElseIf ButtonNo = 7 Then buttons.A = True buttons.B = True buttons.C = True buttons.D = False ElseIf ButtonNo = 8 Then buttons.A = False buttons.B = False buttons.C = False buttons.D = True ElseIf ButtonNo = 9 Then buttons.A = True buttons.B = False buttons.C = False buttons.D = True ElseIf ButtonNo = 10 Then buttons.A = False buttons.B = True buttons.C = False buttons.D = True ElseIf ButtonNo = 11 Then buttons.A = True buttons.B = True buttons.C = False buttons.D = True ElseIf ButtonNo = 12 Then buttons.A = False buttons.B = False buttons.C = True buttons.D = True ElseIf ButtonNo = 13 Then buttons.A = True buttons.B = False buttons.C = True buttons.D = True ElseIf ButtonNo = 14 Then buttons.A = False buttons.B = True buttons.C = True buttons.D = True ElseIf ButtonNo = 15 Then buttons.A = True buttons.B = True buttons.C = True buttons.D = True End If End Sub '/voila c'ets tout!

Conclusion :


c'ets simple: tu branche la manette numero 1
et tu appuye sur les boutons
c'est simple?

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

Messages postés
19
Date d'inscription
jeudi 2 novembre 2000
Statut
Membre
Dernière intervention
2 octobre 2017

Bonjour,
Est-il possible d'utiliser 2 manettes avec ce bout de code?
Si oui, quelles sont les modifications à faire?

Cordialement
Messages postés
1
Date d'inscription
vendredi 9 avril 2010
Statut
Membre
Dernière intervention
9 avril 2010

bonjour,

j'ai un probleme quand je veux le convertir pour visual basic 2008 express :

Public buttons As buttons
Public myJoy As JOYINFOEX
Public going As going
Structure going
Dim Xhu As Integer
Dim Yhu As Integer
Dim lastX As Long
Dim lastY As Long
End Structure
Public maxmin As maxmin
Structure maxmin
Dim Xtp As Long
Dim Xbt As Long
Dim Ytp As Long
Dim Ybt As Long
Dim Yct As Long
Dim Xct As Long
End Structure

Structure buttons
Dim A As Boolean
Dim B As Boolean
Dim C As Boolean
Dim D As Boolean
End Structure

les erreurs sont
Erreur 1 'going' est déjà déclaré en tant que 'Public going As going' dans ce module.
Erreur 2 'maxmin' est déjà déclaré en tant que 'Public maxmin As maxmin' dans ce module.
Erreur 3 'buttons' est déjà déclaré en tant que 'Public buttons As buttons' dans ce module.

si quelqu'un peu m'aider
Messages postés
125
Date d'inscription
mardi 21 septembre 2004
Statut
Membre
Dernière intervention
9 décembre 2006

en realiter quand ca shake, si le meme pot serait utiliser comme volume de radio, tu entendrais la radio gricher quand tu change le volume...

Donc quand tu va allez acheter tes pots, je te conseille d'amener un testmetre pis de slidder le pot tres tranquillement pour voir si ton eguille vire folle quand tu le monte ou si au contraire, elle fais juste monter tres tranquilement( a la meme vitesse que tu diminue la valeur de la resistance variable...)
Messages postés
125
Date d'inscription
mardi 21 septembre 2004
Statut
Membre
Dernière intervention
9 décembre 2006

max12:

il est peut etre temp de changer les pots dans ton joystick, quand ca shake ca veux dire que la bande resistive dans le pot est scratcher...

je te conseille d'allez chez addison ou mastervox pis te pogner un pot a 5$ il doivent avoir une valeur resistive maximum de 100Komh.( je te conseil de vraiment prendre les 100k comme ca tu benificie du plein 65536(16bit) de possibilite)

en realiter ce qui fais la differance entre un bon joystick et un mauvais, cest pas le prix mais la qualiter des potentiometre dans le joystick...
Messages postés
125
Date d'inscription
mardi 21 septembre 2004
Statut
Membre
Dernière intervention
9 décembre 2006

change ton sub setbutton pour:

Sub setbuttons()

ButtonNo = myJoy.dwButtons
buttons.A = CBool(1 And myJoy.dwButtons)
buttons.B = CBool(2 And myJoy.dwButtons)
buttons.C = CBool(4 And myJoy.dwButtons)
buttons.D = CBool(8 And myJoy.dwButtons)

End Sub

comme ca tu sauves a peu pres 60 ligne et ca a l'aire plus pro...
Afficher les 12 commentaires

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.