欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程语言 > C# >内容正文

C#

C#实现简单气泡屏保(一)

发布时间:2023/12/18 C# 44 豆豆
生活随笔 收集整理的这篇文章主要介绍了 C#实现简单气泡屏保(一) 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

本次使用一个Timer实现

首先简单分析下气泡屏保原理

  • 对窗体进行变形(圆形)
  • 通过控制气泡与屏幕左边缘(this.Left)以及上边缘的距离(this.Top)进而使气泡运动
  • 气泡碰到屏幕四周进行反弹
  • 通过对屏幕四个边缘来分析(屏幕每个边缘都有两个方向碰撞)

    具体实现代码如下:
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using System.Drawing.Drawing2D;//要应用GraphicsPath这个类,命名空间中必须有Drawing.Drawing2D,因为原命名空间中没有,所以需要自行添加此命名空间.namespace Test2_气泡窗口 {public partial class Form1 : Form{public Form1(){InitializeComponent();}private void Form1_Load(object sender, EventArgs e){//去掉Form1边框this.FormBorderStyle = FormBorderStyle.None;//设置Form1初始位置this.Location = new Point(0,0);//设置Form1大小this.Size = new Size(200, 200);//设置Form1背景颜色this.BackColor = Color.DeepPink;//设置label1内容(气泡内部字体)label1.Text = "深夜食堂";//设置label1字体label1.Font = new Font("楷体", 20);//确保字体显示完整,调整空间大小label1.AutoSize = true;//设置启动Timer1timer1.Start();//实例化GraphicsPathGraphicsPath bianxing = new GraphicsPath();//设置实例化后的对象为圆形-->宽高与窗体相同即为圆(窗体内切圆)bianxing.AddEllipse(0, 0, this.Width, this.Height);//应用圆形(设置与窗体关联窗口区域-->圆形与窗体关联)this.Region = new Region(bianxing);//不透明度为0.8,透明度为0.2this.Opacity = 0.8;}//声明变量用于小球移动int x = 4;int y = 4;private void timer1_Tick(object sender, EventArgs e){//控制小球运动方向this.Left += x;this.Top += y;//碰底部if (this.Top + this.Height >= Screen.PrimaryScreen.WorkingArea.Height){if (x > 0 && y > 0)//气泡右下方向碰底部{this.BackColor = Color.Blue;x = 4;y = -4;}if (x < 0 && y > 0)//气泡左下方向碰底部{this.BackColor = Color.Red;x = -4;y = -4;}}//碰右边if (this.Left + this.Width >= Screen.PrimaryScreen.WorkingArea.Width){if (x > 0 && y > 0)//气泡右下方向碰右边{this.BackColor = Color.DarkOrchid;x = -4;y = 4;}if (x > 0 && y < 0)//气泡右上方向碰右边{this.BackColor = Color.Yellow;x = -4;y = -4;}}//碰顶部if (this.Top <= 0){if (x > 0 && y < 0)//气泡右上方向碰顶部{this.BackColor = Color.Orange;x = 4;y = 4;}if (x < 0 && y < 0)//气泡左上向碰顶部{this.BackColor = Color.DeepSkyBlue;x = -4;y = 4;}}//碰左边if (this.Left <= 0){if (x < 0 && y < 0)//气泡左上方向碰左边{this.BackColor = Color.Green;x = 4;y = -4;}if (x < 0 && y > 0)//气泡左下方向碰左边{this.BackColor = Color.Purple;x = 4;y = 4;}}}} }

看完记得点赞嗷,后面还会有精彩素材!!!

总结

以上是生活随笔为你收集整理的C#实现简单气泡屏保(一)的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。