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

C# Discussion :

WPF - Animer un objet


Sujet :

C#

  1. #1
    Membre à l'essai
    Profil pro
    Étudiant
    Inscrit en
    Avril 2009
    Messages
    24
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2009
    Messages : 24
    Points : 12
    Points
    12
    Par défaut WPF - Animer un objet
    Bonjour,
    Je souhaiterai faire bouger une bille dans une fenêtre tout simplement. Le problème c'est que je ne trouve rien sur le net qui explique bien comment faire cela.
    Je m'en remet donc a vous pour savoir si vous connaissez un tuto ou bien si vous avez quelque conseils.
    Merci

  2. #2
    Membre éprouvé Avatar de sisqo60
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Février 2006
    Messages
    754
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 754
    Points : 1 188
    Points
    1 188
    Par défaut
    bouger une bille, ça veut rien dire :
    en 2d, en 3d?
    Sur elle même, sur l'écran, sur le formulaire?
    Mais bon pour tout ça il va falloir que créées un storyboard (<storyboard><storyboard/>) dans lequel tu ajoutes tes animations et ensuite tu les attribue aux propriétés de tes objets en xaml...

  3. #3
    Membre à l'essai
    Profil pro
    Étudiant
    Inscrit en
    Avril 2009
    Messages
    24
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2009
    Messages : 24
    Points : 12
    Points
    12
    Par défaut
    Heu il s'agit de bouger une bille en 2D dans une fenêtre.
    Tu peut etre un peu plus précis car je fais ca pour débuter et apprendre donc a ce niveau la je pars de 0.

  4. #4
    Membre éprouvé Avatar de sisqo60
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Février 2006
    Messages
    754
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 754
    Points : 1 188
    Points
    1 188
    Par défaut
    tu fais comme ça pour créer les animations :
    Code : 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
    <Canvas>
      <Canvas.Triggers>
        <EventTrigger RoutedEvent="Canvas.Loaded">
          <EventTrigger.Actions>
            <BeginStoryboard >
              <Storyboard x:Name="storyBoard">
                <DoubleAnimation Storyboard.TargetProperty="Width" Storyboard.TargetName="largeur" From="0" To="200" Duration="0:1:0" AutoReverse="True" RepeatBehavior="Forever"/>
                <DoubleAnimation Storyboard.TargetProperty="Height" Storyboard.TargetName="longueur" From="0" To="200" Duration="0:0:30" AutoReverse="True" RepeatBehavior="Forever"/>
              </Storyboard>
            </BeginStoryboard>
          </EventTrigger.Actions>
        </EventTrigger>
      </Canvas.Triggers>
    </Canvas>
    
    Pour l'animation en elle même :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <Rectangle>
      <Rectangle.RenderTransform>
        <TransformGroup>
          <RotateTransform x:Name="Width"/>
        </TransformGroup>
      </Rectangle.RenderTransform>
    </Rectangle>
    
    c'est une rotation, mais si tu veux faire autre chose, il y a certaines propriétés à modifier...

  5. #5
    Membre à l'essai
    Profil pro
    Étudiant
    Inscrit en
    Avril 2009
    Messages
    24
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2009
    Messages : 24
    Points : 12
    Points
    12
    Par défaut
    OK merci je regarde ca et je tiens au courant.
    Merci

  6. #6
    Membre à l'essai
    Profil pro
    Étudiant
    Inscrit en
    Avril 2009
    Messages
    24
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2009
    Messages : 24
    Points : 12
    Points
    12
    Par défaut
    Bonjour,
    bon je reviens vers vous car en ayant essayer plusieurs je e comprends pas comment cela fonctionne je me suis renseigner sur internet mais je n'est rien trouver d'intéressant car souvent cela est assez complexe pour mon niveau et ne me permet pas de comprendre comment cela fonctionne.
    Bon cette fois ci je vais essayer d'être un peu plus clair car mes message auparavant laisser à désirer.

    Je souhaite dans un premier temps faire bouger une bille (c'est une image) sur l'écran (en 2D). J'arrive à faire bouger une ligne mais pas ma bille.
    Dans un second temps je voudrais que la bille rebondisse sur les rebords de la fenêtre.

    Je voudrais juste que l'on m'explique le fonctionnement d'une animation. Car même si sisqo60 m'a aidé à comprendre une partie de mon problème je ne parviens toujours pas à faire bouger ma bille.

    Merci à ceux qui me répondrons.

    Voici mon code :
    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
           <Window.Triggers>
    		<EventTrigger RoutedEvent="FrameworkElement.Loaded">
    			<BeginStoryboard>
    				<Storyboard>
    					<DoubleAnimation
    					  Duration="0:1:0"
    					  Storyboard.TargetName="AngleSecondes"
    					  Storyboard.TargetProperty="Angle"
    					  RepeatBehavior="Forever"
    					  x:Name="AnimSecondes"/>
    				</Storyboard>
    			</BeginStoryboard>
    		</EventTrigger>
    	</Window.Triggers>

    Code xml : 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
     
    <Canvas>
          <Line X1="150" Y1="150" X2="150" Y2="20"
          StrokeThickness="2" Stroke="Black">
              <Line.RenderTransform>
    		<RotateTransform Angle="0" CenterX="150"
                    CenterY="150" x:Name="AngleSecondes" />
    	   </Line.RenderTransform>
           </Line>
     
    	<Image Width="29.951" Height="29.951" Canvas.Left="135"
            Canvas.Top="22" Source="Bille.png" Stretch="Fill">
                <!--<Image.RenderTransform>
                    <RotateTransform Angle="0" CenterX="150"
                    CenterY="150" x:Name="AngleSecondes" />
                </Image.RenderTransform>-->
            </Image>
    </Canvas>

    Je précise que je ne veut pas faire les 2 transformations à la fois mais juste une seule. J'ai essayer avec une ligne car je ne comprenais pas pourquoi cela ne fonctionne pas avec la bille.

  7. #7
    Membre éprouvé Avatar de sisqo60
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Février 2006
    Messages
    754
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 754
    Points : 1 188
    Points
    1 188
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    <Window.Triggers>
    <EventTrigger RoutedEvent="FrameworkElement.Loaded">
    <BeginStoryboard>
    <Storyboard>
    <DoubleAnimation
      Duration="0:1:0"
      Storyboard.TargetName="AngleSecondes"
      Storyboard.TargetProperty="Angle"
      RepeatBehavior="Forever"
      x:Name="AnimSecondes"/>
    </Storyboard>
    </BeginStoryboard>
    </EventTrigger>
    </Window.Triggers>
    salut,
    1- déjà tu ne mets pas de "from", "to"... c'est assez important si tu veux lui faire faire une rotation.
    2-Tu as repris une source d'horloge wpf trouvée sur internet...
    Code : 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
    <Canvas>
    <Line X1="150" Y1="150" X2="150" Y2="20"
          StrokeThickness="2" Stroke="Black">
    <Line.RenderTransform>
    <RotateTransform CenterX="150"                CenterY="150" x:Name="AngleSecondes" />
    </Line.RenderTransform>
    </Line>
     
    <Image Width="29.951" Height="29.951" Canvas.Left="135"
            Canvas.Top="22" Source="Bille.png" Stretch="Fill">
    <!--<Image.RenderTransform>
    <RotateTransform CenterX="150"
                    CenterY="150" x:Name="AngleSecondes" />
    </Image.RenderTransform>-->
    </Image>
    </Canvas>
    tu as mis :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Storyboard.TargetProperty="Angle"

    donc tu n'as aucunement besoin de mettre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <RotateTransform Angle="0"


    3- C'est pas une question de niveau, moi aussi j'ai appris tout seul sur internet le wpf, je veux bien te concéder qu'il n'y a pas beaucoup de sites qui en parlent, mais personnellement, j'ai trouvé des sources, des tutos, etc... Je les ait repris et compris et j'ai essayé de refaire les mêmes choses...

  8. #8
    Membre à l'essai
    Profil pro
    Étudiant
    Inscrit en
    Avril 2009
    Messages
    24
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2009
    Messages : 24
    Points : 12
    Points
    12
    Par défaut
    Bonjour,
    Oui j'avais trouvé le source de l'horloge il ma aidé a comprendre. puis je suis tombé sur un site en anglais avec pas mal d'exemple et la j'ai commencé a les refaire. Et la je sors de la Fnac en ayant acheter un bouquin ("WPF par la pratique") et pour l'instant ça m'aide beaucoup. je te remercie d'avoir répondu mais j'ai résolu mon problème hier.
    Par contre si tu as gardé des sites avec des tutos je suis preneur car j'en est 2 ou 3 mais après comme tu le dis c'est pas facile à trouver.
    Bonne journée a toi

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

Discussions similaires

  1. [WPF-Blend] Plusieurs objets mais une seule animation
    Par Tuizi dans le forum Framework .NET
    Réponses: 12
    Dernier message: 11/12/2007, 17h10
  2. comment peut on animer un objet sur delphi?
    Par tchimou dans le forum Delphi
    Réponses: 5
    Dernier message: 11/05/2007, 23h53
  3. animer un objet
    Par jc_cornic dans le forum Flash
    Réponses: 2
    Dernier message: 17/03/2007, 20h08
  4. Comment animer un objet 3D?
    Par drcd dans le forum Développement 2D, 3D et Jeux
    Réponses: 3
    Dernier message: 10/06/2006, 04h17
  5. [FLASH MX2004] Animé un objet 3D
    Par Ticoche dans le forum Flash
    Réponses: 2
    Dernier message: 20/11/2004, 10h03

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