实现的功能
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;