使用wpf制作贪吃蛇(全)

实现的功能

1:开始 暂停按钮 控制蛇是否移动;

			//开始按钮
            Button but = new Button();
            but.Width = 100;
            but.Height = 50;
            but.Content = "开始游戏";
            but.FontSize = 17;
            Canvas.SetLeft(but,1340);
            Canvas.SetTop(but, 100);
            she.Children.Add(but);
            but.Click += But_Click;
            
            //暂停按钮
            Button bur = new Button();
            bur.Width = 100;
            bur.Height = 50;
            bur.Content = "暂停游戏";
            bur.FontSize = 17;
            Canvas.SetLeft(bur, 1340);
            Canvas.SetTop(bur, 200);
            she.Children.Add(bur);
            bur.Click += Bur_Click;
            
  		private void Bur_Click(object sender, RoutedEventArgs e)
        {
   
            timer1.Stop();
        }

        private void But_Click(object sender, RoutedEventArgs e)
        {
   
            timer1.Start();
        }

2:增加记分功能;

		 Label fen = new Label();
       	 fen.Width = 100;
         fen.Height = 50;
         fen.FontSize = 15;
         fen.Content = "红蛇得分:   "+fs;
         Canvas.SetLeft(fen, 1340);
         Canvas.SetTop(fen, 300);
         she.Children.Add(fen);
         
         int fs = 0;
         fs += 1;
         fen.Content = "红蛇得分   " + fs;

3:实现不同场景 蛇的移动速度不同

			ComboBox cj = new ComboBox();
            cj.Items.Add("天空之蛇");
            cj.Items.Add("海洋之蛇");
            //cj.Text = "草丛之蛇";
            cj.SelectionChanged += Cj_SelectionChanged;
            cj.Width = 100;
            cj.Height = 20;
            Canvas.SetLeft(cj, 1340);
            Canvas.SetTop(cj, 430);
            she.Children.Add(cj);
            
	private void Cj_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
   
            if (cj.Text == "海洋之蛇")
            {
   
                timer1.Interval = TimeSpan.FromMilliseconds(500);
              

                ImageBrush ximgBrush = new ImageBrush();

                Uri xuri = new Uri("E:/wpf练习/贪吃蛇/贪吃蛇/20bc00e671e5d197.jpg", UriKind.Absolute);       

                ximgBrush.ImageSource = new BitmapImage(xuri);

                she.Background = ximgBrush;

                fen.Foreground = Brushes.Green;
                fe.Foreground = Brushes.Green;
            }
            if (cj.Text == "天空之蛇")
            {
   
                timer1.Interval = TimeSpan.FromMilliseconds(800);
                ImageBrush haiyang = new ImageBrush();

                Uri xuri = new Uri("E:/wpf练习/贪吃蛇/贪吃蛇/5147614374084986616.jpg", UriKind.Absolute);

                haiyang.ImageSource = new BitmapImage(xuri);

                she.Background = haiyang;
                fen.Foreground = Brushes.Red;
                fe.Foreground = Brushes.Red;
            }
        }

4:蛇撞到墙 、撞到另一条蛇、撞到自身、蛇吃到黑色的毒食物结束游戏;

具体代码

namespace 贪吃蛇
{
   
    /// <summary>
    /// MainWindow.xaml 的交互逻辑
    /// </summary>
    public partial class MainWindow : Window
    {
   
        public MainWindow()
        {
   
            InitializeComponent();
            //设置窗口边框样式
            //this.WindowStyle = WindowStyle.None;

            //设置窗口是否支持透明度  
            //this.AllowsTransparency = true;
        }
        //设置食物的大小
        int SumX = 50;
        int SumY = 35;
        Random sj = new Random();
        double gs = 20;
        DispatcherTimer timer1 = new DispatcherTimer();
        //表示泛型  list表示集合
        List<Border> sn = new List<Border>();
        List<Border> sk = new List<Border>();
        private void Window_Loaded(object sender, RoutedEventArgs e)
        {
   
            //设置窗口大小及样式
            this.Background = Brushes.YellowGreen;
            //设置窗口最大化
            //this.WindowState = WindowState.Maximized;
            this.Width = 1500;
            this.Height = 800;
            this.Left = 0;
            this.Top = 0;
            
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值