65.9K
CodeProject 正在变化。 阅读更多。
Home

简单的箭头动画

2006 年 6 月 20 日

CPOL

1分钟阅读

viewsIcon

42491

downloadIcon

566

本文和代码解释了如何在不需要太多技术技能的情况下实现简单的动画。

Sample Image

引言

这个简单的程序解释了如何使用for循环等实现简单的动画。

背景

实际上,这个程序是为我的即时通讯客户端 - Gaim 制作的。我需要知道我的老板何时上线以及何时下线。Gaim 具有一个名为“Buddy Pounce”的功能,允许用户触发事件。根据我的逻辑,当用户登录时,我的应用程序会通过一个从右下角飞到左上角的箭头来向我发出信号。当他下线时,箭头从左上角移动到右下角。

使用代码

图像存储为资源,我根据Status的值来调用它们。

this.BackgroundImage = Resource1.arrow2;

我使用这段代码来检查用户是否已登录或已注销。它接受命令行参数。当Status为 true 时,表示“登录”,否则表示“注销”。

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

动画逻辑放置在Timer_Tick方法内部。在方法内部,屏幕的宽度和高度都会被验证,因此该程序可以在所有屏幕分辨率下工作。在两者之间放置了一个Application.DoEvents();调用,以避免系统只专注于此应用程序。

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;
    }
}

历史

这是我这个程序的第二个版本,但这是我这篇文章的第一个版本。

© . All rights reserved.