C#游戏设计大赛

本文介绍了作者在C#游戏设计大赛中的获奖作品,包括贪吃蛇和打字游戏。游戏包含丰富的功能,如音乐播放、界面皮肤更换等。在贪吃蛇游戏中,详细讲解了如何实现蛇的移动、吃食物和判断游戏结束。打字游戏中,设置了不同的难度级别和字母下落速度,并实现了背景音乐播放。整个游戏提供了一次有趣且富有挑战性的编程体验。
摘要由CSDN通过智能技术生成

       C#游戏设计大赛

此游戏是在班上一次c#游戏设计大赛做的,在此我也曾获得过奖
其中包扩两个游戏,
一个是贪吃蛇,另一个是打字游戏
其中包含有许多的功能,也运用许多知识点,
1.如何读取音乐文件:例如:贪吃蛇吃食物的声音,字体被打中的声音,游戏结束的生音...
2.如何更改界面皮肤:
3.如何在托盘中写入应用程序图标:鼠标右击右下角的图标可以选择自己喜欢的皮肤
4.对贪吃蛇可以设置蛇的颜色,也可以设置食物的颜色,还可以设置界面的背景颜色...
5.对打字游戏可以设置字体的大小,类型,游戏的背影颜色...
6.可以设置自己过关的关数,和设置过关的难度级别
7.在游戏的有上方可以看到玩过此游戏的最高分和玩家,如过您破了最高记录将会记录你的姓名和分数
8.在玩游戏中也可以设置一些自己喜欢的背景音乐,此功能相当于一个千千静听,可以循环遍历某个文件中的音乐文件
9.如何调用本机程序:我用这个知识点做了一个超链接,可以连接到我的CSDN博客
......
希望此程序能给大家带来帮助!!!

1.贪吃蛇游戏

1.3Label组成一条蛇,设置Label的相关属性,是第一个Label设为相应的颜色.

//画出一条蛇

        public bool DrawSanke()

        {

            arry_snake = new ArrayList();

            lbl1 = new Label();

            lbl2 = new Label();

            lbl3 = new Label();

            arry_snake.Add(lbl1);

            arry_snake.Add(lbl2);

            arry_snake.Add(lbl3);

            for (int i = 0; i < arry_snake.Count; i++)

            {

                Label lbl = (Label)arry_snake[i];

                lbl.BorderStyle = BorderStyle.Fixed3D;

                lbl.Width = 15;

                lbl.Height = 15;

                lbl.Left = 30 - lbl.Width * i;

                lbl.Top = 30;

                if (i == 0) //判断是否是蛇头              

                    lbl.BackColor = foodColor; //将蛇头设为红色               

                else

                    lbl.BackColor = sankeBody;

                this.pan_sanke.Controls.Add(lbl); //将蛇添加到Panel

            }

            return _isHaveSnake = true;

        }

2.用用一个Label当作一个食物,并设置它的相关属性并显示在面板中的位置

        //画食物

        public void DrawFood()

        {          

            lblFood = new Label();

            lblFood.Width = 15;

            lblFood.Height = 15;

            lbl1.BorderStyle = BorderStyle.Fixed3D;

            lblFood.BackColor = foodColor; //设置食物的颜色

            Random rdm = new Random();

            //面板中有多少个Label的宽度

            x = Convert.ToInt32(Math.Floor((double)(this.pan_sanke.Width / 15)));

            //面板中有多少个Label的高度

            y = Convert.ToInt32(Math.Floor((double)(this.pan_sanke.Height / 15)));

            Ox = rdm.Next(0, x) * 15; 

            Oy = rdm.Next(0, y) * 15;  

            lblFood.Left = Ox;    //食物离面板左边的距离上多少

            lblFood.Top = Oy;     //食物离面板上面的距离有多少

            this.pan_sanke.Controls.Add(lblFood);  //将食物添加到面板

        }

3.蛇移动的方法(最后一个Label移到第一个)

     //蛇移动的方法

        public void Move_snake(int start_snake,int end_snake)

        {

                if (snake_start == 0)   //判断第一个元素的下标是否为0

                {

                    snke_end = arry_snake.Count - 1;

                    snake_start = snke_end;      //最后一个元素移到第一个                  

                }

                else

                {

                    snke_end = snake_start - 1;

                    snake_start = snke_end;     //最后一个元素移到第一个

                }

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值