软件编程
位置:首页>> 软件编程>> C#编程>> C#实现简单打字小游戏

C#实现简单打字小游戏

作者:oOo!!!!!----蔚楠  发布时间:2023-02-25 06:46:50 

标签:C#,打字

本文实例为大家分享了C#实现简单打字小游戏的具体代码,供大家参考,具体内容如下

C#实现简单打字小游戏

C#实现简单打字小游戏


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;

namespace 打字游戏
{
public partial class Form1 : Form
{
public Form1()
{
 InitializeComponent();
}
Random r = new Random();
//游戏区
Panel Gamearea = new Panel();
//控制区
Panel area = new Panel();
//装鸟的盒子
PictureBox Bird = new PictureBox();
//字母出现定时器
Timer zimu = new Timer();
//飞鸟与字母下落定时器
Timer fly = new Timer();
//开始/暂停按钮
Button button = new Button();
//积分器
Label scoring = new Label();
//血条
Label Bar = new Label();
//尾翼
PictureBox wei = new PictureBox();
PictureBox weiyi = new PictureBox();
//装字母的盒子
List<Label> zmbox = new List<Label>();
private void Form1_Load(object sender, EventArgs e)
{
 //button设置
 this.KeyPreview = true;
 //最大化窗口
 this.WindowState = FormWindowState.Maximized;
 //背景图
 this.BackgroundImage = Image.FromFile("../../img/背景 (2).jpg");
 //拉伸
 this.BackgroundImageLayout = ImageLayout.Stretch;
 //游戏区设置
 Gamearea.Size = new Size(1000,750);
 //游戏区位置
 Gamearea.Location = new Point(30,30);
 this.Controls.Add(Gamearea);
 Gamearea.Tag = "game";
 //控制区设置
 area.Size = new Size(300,750);
 //控制区位置
 area.Location = new Point(Gamearea.Left+Gamearea.Width+20,30);
 area.BackColor = Color.Cyan;
 this.Controls.Add(area);
 //开始/暂停按钮
 //Button button = new Button();
 button.Text = "开始";
 this .KeyPreview = true;
 //字体大小
 button.Font = new Font("",20);
 //按钮大小
 button.Size = new Size(100,50);
 //按钮颜色
 button.BackColor = Color.Blue;
 //按钮位置
 button.Location = new Point(100,20);
 area.Controls.Add(button);
 //按钮点击事件
 button.Click += Button_Click;
 //积分器
 //Label scoring = new Label();
 scoring.Text = "积分:0";
 scoring.Font = new Font("",15);
 scoring.Location = new Point(100,100);
 area.Controls.Add(scoring);
 //装鸟的盒子设置
 Bird.Tag = "niao";
 Bird.Size = new Size(200,200);
 Bird.Location = new Point(0,0);
 //动画放入盒子
 Bird.Image = imageList1.Images[0];
 Gamearea.Controls.Add(Bird);
 //飞鸟与字母下落定时器
 //Timer fly = new Timer();
 fly.Interval = 80;
 fly.Tick += Fly_Tick;
 //fly.Start();
 //字母出现定时器
 //Timer zimu = new Timer();
 zimu.Interval = 1000;
 zimu.Tick += Zimu_Tick;
 //zimu.Start();
 //键盘
 this.KeyPress += Form1_KeyPress1;
 //飞机
 //PictureBox plane = new PictureBox();
 plane.Tag = "plane";
 //盒子大小
 plane.Size = new Size(100,100);
 //放进图片
 plane.Image = Image.FromFile("../../img/RP03.png");
 //图片自适应
 plane.SizeMode = PictureBoxSizeMode.StretchImage;
 //飞机位置
 plane.Location = new Point(Gamearea.Width/2-plane.Width/2,Gamearea.Height-plane.Height-60);
 Gamearea.Controls.Add(plane);
 //血条
 //Label Bar = new Label();
 Bar.Tag = "bar";
 Bar.Size = new Size(100, 10);
 Bar.BackColor = Color.Red;
 //位置
 Bar.Left = plane.Left + plane.Width - Bar.Width;
 Bar.Top = plane.Top - Bar.Height;
 Gamearea.Controls.Add(Bar);
 //尾翼  
 wei.Tag = "wei";  
 wei.Size = new Size(30, 40);
 //位置
 wei.Left = plane.Left + plane.Width / 2;  
 wei.Top = plane.Top + plane.Height;
 //图片集放进盒子
 wei.Image = imageList3.Images[0];  
 Gamearea.Controls.Add(wei);  
 weiyi.Tag = "weiji";
 //图片集放进盒子
 weiyi.Image = imageList3.Images[0];  
 weiyi.Size = new Size(30, 40);
 //位置
 weiyi.Left = plane.Left + plane.Width /2-28;  
 weiyi.Top = plane.Top + plane.Height;
 Gamearea.Controls.Add(weiyi);
}
//按钮设置
private void Button_Click(object sender, EventArgs e)
{
 if (button.Text=="开始")
 {
 fly.Start();
 zimu.Start();
 button.Text = "暂停";
 }
 else if (button.Text=="暂停")
 {
 fly.Stop();
 zimu.Stop();
 button.Text = "开始";

}
}
//飞机
PictureBox plane = new PictureBox();
//键盘事件
private void Form1_KeyPress1(object sender, KeyPressEventArgs e)
{
 //遍历游戏区内所有控件
 foreach (Control item in Gamearea.Controls)
 {
 //找到name为Label的控件
 if (item.GetType().Name == "Label")
 {
  //判断按键与字母是否相同
  if (item.Text == e.KeyChar.ToString()&& item.Tag.ToString() == "zm")
  {
  ////消除字母
  //item.Dispose();
  plane.Left = item.Left + item.Width / 2 - plane.Width / 2;
  //血条随飞机
  Bar.Left = plane.Left + plane.Width - Bar.Width;
  Bar.Top = plane.Top - Bar.Height;
  //尾翼随飞机
  wei.Left = plane.Left + plane.Width / 2;
  wei.Top = plane.Top + plane.Height;
  weiyi.Left = plane.Left + plane.Width / 2 - 28;
  weiyi.Top = plane.Top + plane.Height;
  item.Tag = "bj";
  //创造 *
  PictureBox bullet = new PictureBox();
  bullet.Tag = "bullet";
  bullet.Size = new Size(10,30);
  //放进图片
  bullet.Image = Image.FromFile("../../img/Ammo1.png");
  //图片自适应
  bullet.SizeMode = PictureBoxSizeMode.StretchImage;
  // * 位置
  bullet.Location = new Point(plane.Left+plane.Width/2-bullet.Width/2,plane.Top-bullet.Height);
  Gamearea.Controls.Add(bullet);
  return;
  }
 }
 }
}

//字母
private void Zimu_Tick(object sender, EventArgs e)
{
 //判断飞鸟出现屏幕字母开始下落
 if (Bird.Left >= 0 && Bird.Left <= Gamearea.Width - Bird.Width)
 {
 Label zm = new Label();
 zm.Tag = "zm";
 //随机字母
 zm.Text =((char)r.Next(97,123)).ToString();
 //随机大小
 zm.Font = new Font("",r.Next(10,45));
 //字体自适应
 zm.AutoSize = true;
 //随机颜色
 zm.ForeColor = Color.FromArgb(r.Next(255), r.Next(255), r.Next(255));
 //随着鸟的位置下落
 zm.Top = Bird.Height;
 zm.Left = Bird.Left + Bird.Width / 2 - zm.Width / 2;
 //添加进游戏区
 Gamearea.Controls.Add(zm);
 zmbox.Add(zm);
 }
}
//播放飞鸟动画
int bo = 0;
//积分
int fen = 0;
int t = 0, y = 0;
private void Fly_Tick(object sender, EventArgs e)
{
 //飞鸟动画播放
 Bird.Image = imageList1.Images[bo];
 bo++;
 //图片播放完重零开始重新播放
 if (bo >= imageList1.Images.Count)
 {
 bo = 0;
 }
 //遍历控件
 foreach (Control item in Gamearea.Controls)
 {
 //鸟飞
 if (item.Tag.ToString()=="niao")
 {
  item.Left += 10;
  //超出边界重新开始飞
  if (item.Left>=Gamearea.Width)
  {
  item.Left = -item.Width;
  }
 }
 //字母下落
 if (item.Tag.ToString() == "zm"||item.Tag.ToString()=="bj")
 {
  item.Top += 10;
  //超出下边界清除
  if (item.Top+item.Height>=Gamearea.Height)
  {

item.Dispose();
  Bar.Width -= 10;
  //判断血条为零时
  if (Bar.Width==0)
  {
   fly.Stop();
   zimu.Stop();
   //弹框
   if ( MessageBox.Show("游戏结束,积分为:"+fen,"Game Over", MessageBoxButtons.RetryCancel, MessageBoxIcon.Warning) == DialogResult.Retry)
   {
   fly.Stop();
   zimu.Stop();
   //满血条
   Bar.Width = 100;
   //按钮变开始
   button.Text = "开始";
   //积分清零
   scoring.Text = "积分:0";
   //鸟回归原位
   Bird.Location = new Point(0, 0);
   //清屏
   qingping();
   }
   else
   {
   this.Close();
   }
  }
  }
 }
 // * 上升
 if (item.Tag.ToString() == "bullet")
 {
  item.Top -= 10;
  //超出上边界清除
  if (item.Top==-item.Top)
  {
  item.Dispose();
  }
  //重新遍历
  foreach (Control letter in Gamearea.Controls)
  {
  //找到字母
  if (letter.Tag.ToString() == "bj")
  {
   //判断字母与 * 相遇
   if (item.Top <= letter.Top + letter.Height && item.Left + item.Width / 2 == letter.Left + letter.Width / 2)
   {
   item.Dispose();
   letter.Dispose();
   //积分自加
   fen++;
   //写入控制区
   scoring.Text = "积分:" + fen;
   //创造 *
   PictureBox detonate = new PictureBox();
   //记录播放图片从零开始
   detonate.Tag = 0;
   //盒子大小
   detonate.Size = new Size(50,50);
   //将图片放进盒子
   detonate.Image = imageList2.Images[0];
   //图片自适应
   detonate.SizeMode = PictureBoxSizeMode.StretchImage;
   // * 位置
   detonate.Location = new Point(letter.Left + letter.Width / 2 - detonate.Width / 2, letter.Top + letter.Height / 2 - detonate.Height / 2);
   Gamearea.Controls.Add(detonate);
   // * timer
   Timer zha = new Timer();
   // * 图片放进timer
   zha.Tag = detonate;
   zha.Interval = 100;
   zha.Tick += Zha_Tick;
   zha.Start();
   }
  }
  }
 }
 //尾翼动画播放
 wei.Image = imageList3.Images[t];
 t++;
 if (t >= imageList3.Images.Count)
 {
  t = 0;
 }
 weiyi.Image = imageList3.Images[y];
 y++;
 if (y >= imageList3.Images.Count)
 {
  y = 0;
 }
 }
}

private void Zha_Tick(object sender, EventArgs e)
{
 //获取timer
 Timer zha = (Timer)sender;
 //从盒子获取图片集
 PictureBox picture = (PictureBox)zha.Tag;
 //获取imageList2中图片
 picture.Image = imageList2.Images[(int)picture.Tag];
 //图片播放
 picture.Tag = (int)picture.Tag + 1;
 //一组 * 图播完清除  
 if ((int)picture.Tag == 32)
 {
 zha.Dispose();
 picture.Dispose();

}
}
//清屏字母
private void qingping()
{
 foreach (Label lazm in zmbox)
 {
 lazm.Dispose();
 }
}
}
}

更多有趣的经典小游戏实现专题,也分享给大家:

C++经典小游戏汇总

python经典小游戏汇总

python俄罗斯方块游戏集合

JavaScript经典游戏 玩不停

java经典小游戏汇总

javascript经典小游戏汇总

来源:https://blog.csdn.net/weixin_45105458/article/details/103241880

0
投稿

猜你喜欢

手机版 软件编程 asp之家 www.aspxhome.com