Click here to Skip to main content
6,595,854 members and growing! (21,819 online)
Email Password   helpLost your password?
Multimedia » General Graphics » Graphics     Intermediate

Simple Arrow Animation

By NinethSense

This article and code explains how we can implement simple animations with out much technical skills.
C#, .NET, Win2K, WinXP, Visual Studio, GDI+, Dev
Posted:20 Jun 2006
Views:18,486
Bookmarked:7 times
Announcements
Loading...
 
Search    
Advanced Search
Add to IE Search
printPrint   add Share
      Discuss Discuss   Broken Article?Report  
6 votes for this article.
Popularity: 1.88 Rating: 2.42 out of 5
1 vote, 16.7%
1
3 votes, 50.0%
2

3

4
2 votes, 33.3%
5

Sample Image

Introduction

This simple program explains how simple animations are implemented, using for loops etc.

Background

Actually, this program was made for my Instant Messaging Client - Gaim. I needed to know when my boss come online and when he went offline. Gaim has a feature called "Buddy Pounce" which allows users to trigger events. As per my logic, when a user logs in, my application will give me a signal by flying an arrow from right-bottom to left-top. And when he goes offline, the arrow moves from left-top to right-bottom.

Using the code

The images are stored as resources, and I call them depending on the value of Status:

this.BackgroundImage = Resource1.arrow2;

I have used this code to check whether the user is logged in or logged off. This accepts command line arguments. When Status is true, it means "LogIn", otherwise it means "LogOff".

if (args.Length > 0)
{
    if (args[0].ToString() == "logoff") 
    {
        Status = false;
    }
}

The animation logic is placed inside a Timer_Tick method. Inside the method, the screen width and height are validated, so this program will work under all screen resolutions. An Application.DoEvents(); call is placed in between, to avoid system concentrating on this app only.

private void timer1_Tick(object sender, EventArgs e)
{
    Application.DoEvents();
    
    if (Program.Status)
    {
        if (this.Top <= 0 || this.Left <= 0)
        {
            timer1.Enabled = false;
            Application.Exit();

        }
        this.Left -= 25;
        this.Top -= 15;
    }
    else
    {
        if (this.Top > Screen.GetBounds(this).Height || 
            this.Left > Screen.GetBounds(this).Width)
        {
            timer1.Enabled = false;
            Application.Exit();

        }
        this.Left += 25;
        this.Top += 15;
    }
}

History

This is my second version of this program but, this is my first version of this article.

License

This article has no explicit license attached to it but may contain usage terms in the article text or the download files themselves. If in doubt please contact the author via the discussion board below.

A list of licenses authors might use can be found here

About the Author

NinethSense


Member
Praveen.V.Nair - aka NinethSense - Microsoft MVP - is a person with an abnormal passion for technology. He has been playing with electronics from the age of 10 and with computers from the age of 14. He usually blogs at http://blog.ninethsense.com/.
Occupation: Architect
Company: PIT Solutions
Location: India India

Other popular General Graphics articles:

  • A flexible charting library for .NET
    Looking for a way to draw 2D line graphs with C#? Here's yet another charting class library with a high degree of configurability, that is also easy to use.
  • CxImage
    CxImage is a C++ class to load, save, display, transform BMP, JPEG, GIF, PNG, TIFF, MNG, ICO, PCX, TGA, WMF, WBMP, JBG, J2K images.
  • 3D Pie Chart
    A class library for drawing 3D pie charts.
  • Barcode Image Generation Library
    This library was designed to give an easy class for developers to use when they need to generate barcode images from a string of data.
  • ImageStone
    An article on a library for image manipulation.
Article Top
You must Sign In to use this message board.
FAQ FAQ 
 
Noise Tolerance  Layout  Per page   
  (Refresh) 
-- There are no messages in this forum --

General General    News News    Question Question    Answer Answer    Joke Joke    Rant Rant    Admin Admin   

PermaLink | Privacy | Terms of Use
Last Updated: 20 Jun 2006
Editor: Smitha Vijayan
Copyright 2006 by NinethSense
Everything else Copyright © CodeProject, 1999-2009
Web13 | Advertise on the Code Project