本次使用一个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#实现简单气泡屏保(一)相关推荐

  1. c#第二课,气泡屏保

    回顾 属性赋值(4种) (1)直接赋值语法:15种数据类型 整数(8种) int uint short ushort long ulong- 浮点型(3种)double float decimal 布 ...

  2. 【JavaGUI demo】swing仿Windows气泡屏保动画(含源码)

    概述 java实现简单泡泡屏保动画及点击变实心泡泡,空格暂停动画 实现思路 采用MVC(Model-View-Controller(模型-视图-控制器))设计思路.将数据层与视图层与控制层分开. 在本 ...

  3. C#实现气泡屏保(四个timer实现)

    四个timer实现气泡屏保 using System; using System.Collections.Generic; using System.ComponentModel; using Sys ...

  4. php气泡效果,js 模拟气泡屏保效果代码_其他特效

    核心代码: var T$ = function(id) { return document.getElementById(id); } var $extend = function(des, src) ...

  5. C#实现气泡屏保(1个timer实现)

    using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...

  6. C#实现气泡屏保效果(用4个timer)

    using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...

  7. 用JavaScript写一个类似于windows的气泡屏保效果

    最近在学习JavaScript,然后在书上看到了一个简单的碰壁反弹效果,效果你们可以看一下,js代码如下: window.onload = function(){var main = document ...

  8. C#实现气泡屏保效果(用1个timer)

    using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...

  9. [ActionScript 3.0] 模拟win7彩色气泡屏保效果

    主文件: package {import com.views.BubbleView;import com.views.ColorfulBubble;import flash.display.Sprit ...

  10. 基于Win32的不规则透明窗口(模拟win7气泡屏保)——透明气泡的实现

    通过win32 API模拟透明气泡. 先看效果: 源代码下载: https://download.csdn.net/download/qq_35553864/10656109

最新文章

  1. 【Win 10 应用开发】InkToolBar——涂鸦如此简单
  2. 软件工程中的需求分析
  3. flink event-time 和连续窗口的使用
  4. vpython 贞测碰撞_python碰撞检测?
  5. 枚举:如何正确使用name()和toString()方法
  6. linux 安装ftp下载,LINUX FTP安装与配置
  7. [转]WinForm--使用C#制做进程监视器
  8. 机器学习篇—大厂笔试题
  9. vim编辑器删除空行
  10. 最强代码审查工具报告
  11. Win10桌面图标箭头去掉的方法总结
  12. html页面导出word文档
  13. 服务器备份应该怎么做
  14. UnityRenderStreaming云渲染
  15. 亚马逊erp系统详细介绍,新手第一步
  16. 根据百度地图进行IP定位获取地址
  17. 【实用教程】Xshell6远程连接阿里云轻量应用服务器
  18. Redis 之 subscribe 订阅模式封装
  19. 区块链如何支持元宇宙经济?
  20. 正则筛选图片url(js)

热门文章

  1. 日常工作计划安排工具
  2. 报名 | 智慧数据云平台与新型城镇化智库论坛
  3. 输入12V-48V输出5V-12V电流:2A
  4. flv 视频播放器代码
  5. 堆栈c语言 矩形填色,堆栈涂色官方版下载|堆栈涂色安卓版v0.1下载 - 一游网手机游戏...
  6. 可验证随机函数VRF
  7. webpack压缩图片
  8. 模拟人生java版攻略_模拟人生免费版简易攻略小技巧
  9. 【3D激光SLAM(二)】Velodyne激光SLAM学习之Velodyne-16线激光雷达在Jetson Nano上的配置使用
  10. android msf 漏洞,MSF之ms各种漏洞