WPF贪吃蛇
思路
1、设置游戏界面
2、创建初始蛇
3、创建食物,食物出现位置随机
4、蛇的运动,通过键盘改变蛇身的tag来改变方向
5、蛇吃到食物,原来的食物消失,从新出现食物
6、设置蛇吃到食物后的效果
7、设置蛇碰到自身或游戏边框后的效果
8、设置游戏结束的效果
代码
double size = 20;//表格单位
int SetX = 60;
int SetY = 40;
int fs = 0;//分数
Random r = new Random();
Border food = new Border();//实例化一个食物对象
DispatcherTimer timer = new DispatcherTimer();//实例化一个计时器
List<Border> snack = new List<Border>();
private void Window_Loaded(object sender, RoutedEventArgs e)
{
//创建界面
gameLoad();
//创建蛇
SetSnack();
//创建食物
SetFood();
timer.Interval = TimeSpan.FromMilliseconds(100);//计时器运行周期
timer.Tick += Timer_Tick;
this.KeyDown += MainWindow_KeyDown;//键盘点击事件
}
/// <summary>
/// 设计游戏界面
/// </summary>
private void gameLoad()
{
//界面设计
this.Background = Brushes.Transparent;
this.WindowState = WindowState.Maximized;
game.Background = new RadialGradientBrush(Colors.Firebrick, Colors.AliceBlue);
//game.Opacity = 0.6;
Border load = new Border();//实例化一个border对象作为蛇的运行区域
//区域的尺寸
load.Width = SetX * size;
load.Height = SetY * size;
//区域的边宽
load.BorderThickness = new Thickness(2);
load.BorderBrush = Brushes.Black;
//区域的位置
Canvas.SetLeft(load, 0);
Canvas.SetTop(load, 0);
//将区域放入容器
game.Children.Add(load);
//创建开始按钮
Button ks = new Button();
ks.Width = 150;
ks.Height = 60;
ks.Content = "开始游戏";
Canvas.SetLeft(ks, (SetX + 3) * size);
Canvas.SetTop(ks, 5 * size);
game.Children.Add(ks);
//创建暂停按钮
Button zt = new Button();
zt.Width = 150;
zt.Height = 60;
zt.Content = "暂停游戏";
Canvas.SetLeft(zt, (SetX + 3) * size);
Canvas.SetTop(zt, 12 * size);
game.Children.Add(zt