IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Développement 2D, 3D et Jeux Discussion :

Shoot em up et contrôle de l'avion


Sujet :

Développement 2D, 3D et Jeux

  1. #1
    Membre du Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Janvier 2013
    Messages
    57
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Janvier 2013
    Messages : 57
    Points : 44
    Points
    44
    Par défaut Shoot em up et contrôle de l'avion
    Bonjour

    je suis en train de créer un jeu en 2D avec des avions (1 que le joueur doit contrôler et divers ennemis) son but sera d’éliminer tout les ennemis qui arriveront par vagues.

    J'ai créé l'avion contrôlé par le joueur mais j'ai des problèmes au niveau du code qui fais se diriger l'avion de l' ennemis (nommé You2) toujours vers l'avion du joueur

    L'avion tourne en fonction de "Direct2" Qui est un rectangle

    le code si dessous ne fonctionne que si You2 est en haut a droite de l'avion du joueur:

    Code vb : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    Private Sub M1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles M1.Tick
            Dim cas As String = "!"
            'Principal
            If You.Top < You2.Top And You.Left < You2.Left And Direct2.Width < 8 Then cas = "+"
            If You.Top < You2.Top And You.Left < You2.Left And 16 <= Direct2.Width Then cas = "+"
            If You.Top < You2.Top And You.Left < You2.Left And 8 <= Direct2.Width < 16 Then cas = "-"
            If You.Top < You2.Top And You.Left > You2.Left And Direct2.Width < 4 Then cas = "+"
            If You.Top < You2.Top And You.Left > You2.Left And 12 <= Direct2.Width Then cas = "+"
            If You.Top < You2.Top And You.Left > You2.Left And 4 <= Direct2.Width < 12 Then cas = "-"
            If You.Top > You2.Top And You.Left < You2.Left And 4 <= Direct2.Width < 12 Then cas = "+"
            If You.Top > You2.Top And You.Left < You2.Left And Direct2.Width < 4 Then cas = "-"
            If You.Top > You2.Top And You.Left < You2.Left And 12 <= Direct2.Width Then cas = "-"
            If You.Top > You2.Top And You.Left > You2.Left And 16 <= Direct2.Width Then cas = "-"
            If You.Top > You2.Top And You.Left > You2.Left And Direct2.Width < 8 Then cas = "-"
            If You.Top > You2.Top And You.Left > You2.Left And 8 <= Direct2.Width < 16 Then cas = "+"
     
     
            If cas = "+" Then cas = cas Else If cas = "-" Then cas = cas Else er.Visible = True
            If cas = "+" Then cas = cas Else If cas = "-" Then cas = cas Else Info.Text = Info.Text + "[ErreurSup][001]Le cas de la trajectoire de You2 n'est pas égal a <<+>> ou <<->> !                   "
            If cas = "+" Then Direct2.Width = Direct2.Width + 1
            If cas = "-" Then Direct2.Width = Direct2.Width - 1
            '+++ 
            If Direct2.Width = 1 Then Direct2.Width = 17
            If Direct2.Width = 18 Then Direct2.Width = 2
            'classic
            If Direct2.Width = 2 Then You2.Top = You2.Top + 0
            If Direct2.Width = 2 Then You2.Left = You2.Left + 4
            If Direct2.Width = 3 Then You2.Top = You2.Top - 2
            If Direct2.Width = 3 Then You2.Left = You2.Left + 4
            If Direct2.Width = 4 Then You2.Top = You2.Top - 4
            If Direct2.Width = 4 Then You2.Left = You2.Left + 4
            If Direct2.Width = 5 Then You2.Top = You2.Top - 4
            If Direct2.Width = 5 Then You2.Left = You2.Left + 2
            If Direct2.Width = 6 Then You2.Top = You2.Top - 4
            If Direct2.Width = 6 Then You2.Left = You2.Left + 0
            If Direct2.Width = 7 Then You2.Top = You2.Top - 4
            If Direct2.Width = 7 Then You2.Left = You2.Left - 2
            If Direct2.Width = 8 Then You2.Top = You2.Top - 4
            If Direct2.Width = 8 Then You2.Left = You2.Left - 4
            If Direct2.Width = 9 Then You2.Top = You2.Top - 2
            If Direct2.Width = 9 Then You2.Left = You2.Left - 4
            If Direct2.Width = 10 Then You2.Top = You2.Top + 0
            If Direct2.Width = 10 Then You2.Left = You2.Left - 4
            If Direct2.Width = 11 Then You2.Top = You2.Top + 2
            If Direct2.Width = 11 Then You2.Left = You2.Left - 4
            If Direct2.Width = 12 Then You2.Top = You2.Top + 4
            If Direct2.Width = 12 Then You2.Left = You2.Left - 4
            If Direct2.Width = 13 Then You2.Top = You2.Top + 4
            If Direct2.Width = 13 Then You2.Left = You2.Left - 2
            If Direct2.Width = 14 Then You2.Top = You2.Top + 4
            If Direct2.Width = 14 Then You2.Left = You2.Left + 0
            If Direct2.Width = 15 Then You2.Top = You2.Top + 4
            If Direct2.Width = 15 Then You2.Left = You2.Left + 2
            If Direct2.Width = 16 Then You2.Top = You2.Top + 4
            If Direct2.Width = 16 Then You2.Left = You2.Left + 4
            If Direct2.Width = 17 Then You2.Top = You2.Top + 2
            If Direct2.Width = 17 Then You2.Left = You2.Left + 4
     
    End Sub

    Merci de vos réponses
    je reviendrais régulièrement voir les nouvelles réponses

  2. #2
    Expert éminent

    Profil pro
    Fabricant et casseur d'avions
    Inscrit en
    Avril 2004
    Messages
    3 813
    Détails du profil
    Informations personnelles :
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Fabricant et casseur d'avions
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2004
    Messages : 3 813
    Points : 7 638
    Points
    7 638
    Par défaut
    Salut

    Tout d'abord, bienvenue chez nous...

    Ensuite, pour un premier post, tu fais fort... dis abruptement, ton code est une ignominie... qui ne donne pas envie de réfléchir plus de 2 secondes 37 à éventuellement penser à oser chercher un début de solution...
    Et toutes mes condoléances aux familles de développeurs qui viennent de succomber à une crise cardiaque...

    Serait-il possible, soit d'avoir l'algorithme, ce qui je pense serait plus compréhensible (... mais qu'au vu du code je soupçonne de ne pas exister...), soit d'avoir un minimum d'explication sur ce que ces 50 "if" sont sensés faire???

    Sinon on n'est pas méchant ici, hein, c'est juste que là, c'est un peu violent comme question...
    "Errare humanum est, sed perseverare diabolicum"

    Ma page sur DVP.com

  3. #3
    Membre du Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Janvier 2013
    Messages
    57
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Janvier 2013
    Messages : 57
    Points : 44
    Points
    44
    Par défaut
    En fait la partie du code qui pose problème est le suivante,qui sert a savoir si You2 (l' ennemi)vas tourner a droite ou a gauche afin d'aller dans la direction de l'avion du joueur (nommé You). Si cas="+" alors l'avion tourne à gauche à la fin du code . Si cas="-" alors l'avion tourne a droite:


    Code vb : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    If You.Top < You2.Top And You.Left < You2.Left And Direct2.Width < 8 Then cas = "+"
            If You.Top < You2.Top And You.Left < You2.Left And 16 <= Direct2.Width Then cas = "+"
            If You.Top < You2.Top And You.Left < You2.Left And 8 <= Direct2.Width < 16 Then cas = "-"
            If You.Top < You2.Top And You.Left > You2.Left And Direct2.Width < 4 Then cas = "+"
            If You.Top < You2.Top And You.Left > You2.Left And 12 <= Direct2.Width Then cas = "+"
            If You.Top < You2.Top And You.Left > You2.Left And 4 <= Direct2.Width < 12 Then cas = "-"
            If You.Top > You2.Top And You.Left < You2.Left And 4 <= Direct2.Width < 12 Then cas = "+"
            If You.Top > You2.Top And You.Left < You2.Left And Direct2.Width < 4 Then cas = "-"
            If You.Top > You2.Top And You.Left < You2.Left And 12 <= Direct2.Width Then cas = "-"
            If You.Top > You2.Top And You.Left > You2.Left And 16 <= Direct2.Width Then cas = "-"
            If You.Top > You2.Top And You.Left > You2.Left And Direct2.Width < 8 Then cas = "-"
            If You.Top > You2.Top And You.Left > You2.Left And 8 <= Direct2.Width < 16 Then cas = "+"



    Or ce code ne fonctionne correctement que si You2 est en haut a gauche du joueur

    (Direct2.Width est une roue qui indique la direction actuelle de l'avion:si Direct2.Width=2 alors l'avion se dirige a droite(cette roue commence à 2 et se termine par 17)).

  4. #4
    Expert éminent

    Profil pro
    Fabricant et casseur d'avions
    Inscrit en
    Avril 2004
    Messages
    3 813
    Détails du profil
    Informations personnelles :
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Fabricant et casseur d'avions
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2004
    Messages : 3 813
    Points : 7 638
    Points
    7 638
    Par défaut
    Citation Envoyé par Mortlhomme Voir le message
    Or ce code ne fonctionne correctement que si You2 est en haut a gauche du joueur
    Quels sont les symptômes quand ça ne fonctionne pas correctement?


    Citation Envoyé par Mortlhomme Voir le message
    (Direct2.Width est une roue qui indique la direction actuelle de l'avion:si Direct2.Width=2 alors l'avion se dirige a droite(cette roue commence à 2 et se termine par 17)).
    Et à 17 ça va aussi à droite?
    Si ça va de 2 à 17, on va dire que la gauche est à... 10? donc pour 6, on va en haut ou en bas?
    L'axe Y est orienté vers le haut de l'écran ou vers le bas?
    "Errare humanum est, sed perseverare diabolicum"

    Ma page sur DVP.com

  5. #5
    Membre du Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Janvier 2013
    Messages
    57
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Janvier 2013
    Messages : 57
    Points : 44
    Points
    44
    Par défaut
    Les symptômes quand ça ne fonctionne pas: l'avion tourne en rond(je préciserait les sens plus tard)

    pour la roue: a 18 cela revient automatiquement a 2
    a 1 cela revient automatiquement a 17
    6 c'est vers le haut
    10 c'est a gauche
    14 c'est en bas
    (17 ce n'est pas a droite mais mais entre "en bas a droite" et "a droite")



    la coordonnée "y" d'un objet augmente lorsqu'on le déplace vers le bas.

  6. #6
    Expert éminent

    Profil pro
    Fabricant et casseur d'avions
    Inscrit en
    Avril 2004
    Messages
    3 813
    Détails du profil
    Informations personnelles :
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Fabricant et casseur d'avions
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2004
    Messages : 3 813
    Points : 7 638
    Points
    7 638
    Par défaut
    Citation Envoyé par Mortlhomme Voir le message
    Les symptômes quand ça ne fonctionne pas: l'avion tourne en rond(je préciserait les sens plus tard)
    ouaip, ne nous donne pas tous les indices de suite, des fois qu'on trouve du premier coup!

    Bon, sinon, on pourrait avoir les explications sur ce que sont sensées faire tous ces "if"? Pas le but final, ça on le sait, il faut que le vaisseau You2 aille vers You, ça ok... non, on aurait plutôt besoin des explications sur ce que font exactement les lignes de ton post de 17h14. En gros, quel est l'algorithme derrière le code... parce qu'à lire le code, je n'arrive pas à comprendre ce que ça fait (style de programmation très lourd et non optimisé, boucles if avec test complexe... pas sûr que l'ordi s'en sorte non plus!)
    "Errare humanum est, sed perseverare diabolicum"

    Ma page sur DVP.com

  7. #7
    Membre du Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Janvier 2013
    Messages
    57
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Janvier 2013
    Messages : 57
    Points : 44
    Points
    44
    Par défaut
    Bonjour

    Tout d'abord :

    Citation Envoyé par plegat Voir le message
    il faut que le vaisseau You2 aille vers You
    c'est un avion.

    Ensuite,pour les sens de rotation de You2 par rapport à You:
    Quand You est en haut a gauche de You2 :rotation dans le sens des aiguilles d'une montre
    Quand You est en haut a droite de You2 :rotation dans le sens des aiguilles d'une montre
    Quand You est en bas a droite de You2 :rotation dans le sens inverse des aiguilles d'une montre

    Enfin pour le code:

    La première partie de chaque lignes ressemble a la suivante :
    Code vb : Sélectionner tout - Visualiser dans une fenêtre à part
    If You.Top < You2.Top And You.Left < You2.Left
    Elle est censée déterminer la position de You(le joueur) par rapport à You2(le méchant (Ici si You est plus haut que You2 et You est plus a droite que You2 ... (You est donc en haut à gauche de You2))

    Ensuite la seconde partie de chaque ligne calcule dans quelle direction doit tourner l’avion afin d'atteindre la direction qui lui permet d'avoir You en face de lui le plus rapidement:
    Code vb : Sélectionner tout - Visualiser dans une fenêtre à part
    ...And 16 <= Direct2.Width Then cas = "+"
    cas indique dans quelle direction doit tourner l'avion
    cas est ensuit géré par d'autres lignes de code qui modifient la "roue"
    Code vb : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    If cas = "+" Then Direct2.Width = Direct2.Width + 1
            If cas = "-" Then Direct2.Width = Direct2.Width - 1

  8. #8
    Modérateur
    Avatar de wax78
    Homme Profil pro
    Chef programmeur
    Inscrit en
    Août 2006
    Messages
    4 074
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chef programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 074
    Points : 7 978
    Points
    7 978
    Par défaut
    Citation Envoyé par Mortlhomme Voir le message

    Tout d'abord :

    Envoyé par plegat
    il faut que le vaisseau You2 aille vers You
    c'est un avion.
    Ha c'est pas un vaisseau mais un avion, ca change tout directement .... (je blague hein)

    Si déjà tu renommais tes you et you2 en PLAYER et ENNEMI ca serait pas deluxe pour la compréhension.
    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  9. #9
    Expert éminent

    Profil pro
    Fabricant et casseur d'avions
    Inscrit en
    Avril 2004
    Messages
    3 813
    Détails du profil
    Informations personnelles :
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Fabricant et casseur d'avions
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2004
    Messages : 3 813
    Points : 7 638
    Points
    7 638
    Par défaut
    Citation Envoyé par Mortlhomme Voir le message
    Ensuite,pour les sens de rotation de You2 par rapport à You:
    Quand You est en haut a gauche de You2 :rotation dans le sens des aiguilles d'une montre
    Quand You est en haut a droite de You2 :rotation dans le sens des aiguilles d'une montre
    Quand You est en bas a droite de You2 :rotation dans le sens inverse des aiguilles d'une montre
    Manque la 3ème partie du test... si tu arrives à définir le sens de rotation rien qu'avec la position, pourquoi faire intervenir la roue?


    Citation Envoyé par Mortlhomme Voir le message
    Enfin pour le code:
    Non non, je ne parle pas du code, on a compris ce qu'il doit faire... ou ce qu'il fait en théorie... ce que j'aimerais savoir, c'est l'algorithme, bref toute la partie logique, ce qui fait que tu as tapé ce code de cette manière.

    On a bien compris que les triples tests servent à savoir dans quel sens tourner, et qu'en fonction du sens tu modifies la position de youyou2... mais pouquoi/comment?

    Par exemple, les positions "en haut à gauche" et "en haut à droite" font toutes les deux tourner dans le sens des aiguilles d'une montre d'après ce que tu écris... pourquoi?

    Si on ne comprend/connait pas ta logique, comment veux-tu qu'on trouve où ça buggue?

    Sinon, question subsidiaire, le symptome de bug est que l'avion tourne en rond... où se situe l'avion (l'autre) à ce moment là?
    "Errare humanum est, sed perseverare diabolicum"

    Ma page sur DVP.com

  10. #10
    Membre du Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Janvier 2013
    Messages
    57
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Janvier 2013
    Messages : 57
    Points : 44
    Points
    44
    Par défaut
    ceci n'est pas ce que je cherche à avoir mais ce qui se passe (le bug) et que je voudrait régler:

    Quand You est en haut a gauche de You2 :rotation dans le sens des aiguilles d'une montre
    Quand You est en haut a droite de You2 :rotation dans le sens des aiguilles d'une montre
    Quand You est en bas a droite de You2 :rotation dans le sens inverse des aiguilles d'une montre

    en rouge:La position de You



    Citation Envoyé par plegat Voir le message
    Par exemple, les positions "en haut à gauche" et "en haut à droite" font toutes les deux tourner dans le sens des aiguilles d'une montre d'après ce que tu écris... pourquoi?
    je ne sait pas puisque c'est le bug

    Citation Envoyé par plegat Voir le message
    On a bien compris que les triples tests servent à savoir dans quel sens tourner, et qu'en fonction du sens tu modifies la position de youyou2... mais pourquoi/comment?
    Pourquoi: Pour que You se retrouve le plus vite possible en face de You2
    Comment:avec le "triple test"

  11. #11
    Expert éminent

    Profil pro
    Fabricant et casseur d'avions
    Inscrit en
    Avril 2004
    Messages
    3 813
    Détails du profil
    Informations personnelles :
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Fabricant et casseur d'avions
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2004
    Messages : 3 813
    Points : 7 638
    Points
    7 638
    Par défaut
    Citation Envoyé par Mortlhomme Voir le message
    Pourquoi: Pour que You se retrouve le plus vite possible en face de You2
    Comment:avec le "triple test"
    Bon, là, je crois qu'on a un sérieux problème de communication...

    Je demande comment les triples tests servent à savoir dans quel sens tourner, tu me réponds "Comment:avec le "triple test""... je crois qu'on est bloqué là, et pas que par la neige...

    Sérieusement, au vu des personnes participant à cette discussion, il ne doit pas y avoir foule qui comprenne la logique de ton programme. Donc soit tu nous explique plus concrètement ce que tu as voulu faire avec toutes ces lignes de codes (et pas en nous disant "je veux faire tourner mon avion", ça c'est bon, je crois qu'on a tous compris depuis...) et quelle logique tu as suivi pour pondre tous ces "if". Ensuite, en faisant bien le distingo entre ce qui devrait se passer, et ce qui se passe, et ce qui buggue... Et finalement on verra si on a suffisamment de matière pour trouver ce qui coince.

    En attendant, je pars en Allemagne pour 4 jours, je passe la main jusqu'à vendredi!
    "Errare humanum est, sed perseverare diabolicum"

    Ma page sur DVP.com

  12. #12
    Expert éminent sénior
    Avatar de Mat.M
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    8 361
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 8 361
    Points : 20 381
    Points
    20 381
    Par défaut
    Salut ton code semble incroyablement compliqué !!!
    Si tu veux afficher un avion et le faire tourner selon que l'on appuie sur les touches de direction du clavier, une méthode simple c'est de
    *dessiner 360 degrés/10 soit 36 images de ton avion en rotation ; avec un logiciel de 3d comme Blender il suffit de faire tourner le modèle 3d et faire un rendu
    Si tu dessines à la main les logiciels de dessin comme Paint Shop Pro permettent de faire la rotation d'une image
    *ensuite tu as les 36 images, tu mémorises les coordonnées dans un tableau ,une List<> par exemple
    *ensuite si tu appuies sur une touche de direction eh bien la rotation effectuée sera de +-10 degrés ; donc selon l'angle de rotation il suffit d'afficher l'image d'indice angle de rotation/10 du tableau dynamique.


    Si tu veux afficher des rotations de +-5 degrés,eh bien il faudra avoir 72 images de ton avion

    Il faut éviter d'avoir 36 ou 72 images distinctes mais plutôt les placer dans une grande image ;pour initialiser le tableau de rectangles il suffit de faire des boucles.

    C'est évident qu'en 3d temps réelle il n' ya pas ce problème il suffit de faire une rotation sur l'objet 3d afficher il y a des fonctionnalités Direct3d pour ça

  13. #13
    Modérateur
    Avatar de wax78
    Homme Profil pro
    Chef programmeur
    Inscrit en
    Août 2006
    Messages
    4 074
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chef programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 074
    Points : 7 978
    Points
    7 978
    Par défaut
    Tu peux aussi avoir moins de 36 ou 72, car tu peux encore diviser par 4 et jouer en faisant des mirroir a l'affichage (ce qui ne coute pas chère en theorie, faut voir le "blitter") (si tu veux vraiment gagner en place mémoire bien entendu).
    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  14. #14
    Membre du Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Janvier 2013
    Messages
    57
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Janvier 2013
    Messages : 57
    Points : 44
    Points
    44
    Par défaut résolu
    merci mais j'ai trouvé
    (j'ai renommé tout le monde):



    Code vb : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    Private Sub TimerFurtif1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TimerFurtif1.Tick
            'dim--------------------------------------------------------------------------------------------------
            Dim x As System.Object = You
            Dim m As System.Object = Furtif1
            m.tag = Furtif1.Tag
            Dim t As String
            'dim--------------------------------------------------------------------------------------------------
            'strategie--------------------------------------------------------------------------------------------------
            If x.left < m.left And x.top < m.top Then
     
                If 7 <= m.tag And 15 > m.tag Then t = "+" Else t = "-"
            ElseIf x.left > m.left And x.top < m.Top Then
     
                If 3 <= m.tag And 11 > m.tag Then t = "-" Else t = "+"
            ElseIf x.left > m.left And x.top > m.Top Then
     
                If 7 <= m.tag And 15 > m.tag Then t = "-" Else t = "+"
            ElseIf x.left < m.left And x.top > m.Top Then
     
                If 3 <= m.tag And 11 > m.tag Then t = "+" Else t = "-"
            End If
            'strategie--------------------------------------------------------------------------------------------------
            'f(t)---------------------------------------------------------------------------------------------------
     
            If t = "+" Then m.Tag = m.tag + 1
            If t = "-" Then m.Tag = m.tag - 1
     
            If m.tag = 0 Then m.tag = 16
            If m.tag = 17 Then m.tag = 1
     
            If m.tag = 1 Then
                m.left = m.left + 0 + 0
                m.top = m.top + 0 - 4
            ElseIf m.tag = 2 Then
                m.left = m.left + 0 + 2
                m.top = m.top + 0 - 4
            ElseIf m.tag = 3 Then
                m.left = m.left + 0 + 4
                m.top = m.top + 0 - 4
            ElseIf m.tag = 4 Then
                m.left = m.left + 0 + 4
                m.top = m.top + 0 - 2
            ElseIf m.tag = 5 Then
                m.left = m.left + 0 + 4
                m.top = m.top + 0 + 0
            ElseIf m.tag = 6 Then
                m.left = m.left + 0 + 4
                m.top = m.top + 0 + 2
            ElseIf m.tag = 7 Then
                m.left = m.left + 0 + 4
                m.top = m.top + 0 + 4
            ElseIf m.tag = 8 Then
                m.left = m.left + 0 + 2
                m.top = m.top + 0 + 4
            ElseIf m.tag = 9 Then
                m.left = m.left + 0 + 0
                m.top = m.top + 0 + 4
            ElseIf m.tag = 10 Then
                m.left = m.left + 0 - 1
                m.top = m.top + 0 + 4
            ElseIf m.tag = 11 Then
                m.left = m.left + 0 - 4
                m.top = m.top + 0 + 4
            ElseIf m.tag = 12 Then
                m.left = m.left + 0 - 4
                m.top = m.top + 0 + 2
            ElseIf m.tag = 13 Then
                m.left = m.left + 0 - 4
                m.top = m.top + 0 + 0
            ElseIf m.tag = 14 Then
                m.left = m.left + 0 - 4
                m.top = m.top + 0 - 2
            ElseIf m.tag = 15 Then
                m.left = m.left + 0 - 4
                m.top = m.top + 0 - 4
            ElseIf m.tag = 16 Then
                m.left = m.left + 0 - 2
                m.top = m.top + 0 - 4
     
     
     
     
            End If
     
            'f(t)---------------------------------------------------------------------------------------------------
        End Sub

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Comment empêcher la mise à jour d'un contrôle à l'écran ?
    Par JojoLaFripouille dans le forum Composants VCL
    Réponses: 4
    Dernier message: 19/09/2003, 12h52
  2. Codes de contrôle des imprimantes
    Par hetzel dans le forum Langages de programmation
    Réponses: 3
    Dernier message: 21/03/2003, 17h17
  3. [ActiveX] Propriété "Picture" dans un contrôle util
    Par Ricou13 dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 14/12/2002, 15h59
  4. [contrôle] dbDateTimePicker ???
    Par Fizgig dans le forum Composants VCL
    Réponses: 2
    Dernier message: 28/11/2002, 15h45
  5. [Kylix] Contrôle DBGrid
    Par KThrax dans le forum EDI
    Réponses: 1
    Dernier message: 10/05/2002, 14h18

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo