Tiêu đề: Code Game Rắn Săn Mồi Làm Bằng C# Sun Jul 06, 2014 1:50 am
Bạn làm theo từng bước nha!!! Đầu tiên bạn tạo 1 project với windows form application sau đó bạn hãy tạo 2 class có tên là Snake và Food Bạn Click đôi chuột vào form rùi thêm y như code dưới đây.
Code:
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 GameRan { public partial class Form1 : Form { int score = 0; Random randFood = new Random(); Food food; Graphics paper; Snake snake = new Snake();
Boolean left = false, right = false, up = false, down = false; public Form1() { InitializeComponent(); food = new Food(randFood); }
private void Form1_KeyDown(object sender, KeyEventArgs e) { if(e.KeyData == Keys.D1) { timer1.Interval = 500; } if (e.KeyData == Keys.D2) { timer1.Interval = 300; } if (e.KeyData == Keys.D3) { timer1.Interval = 100; } if (e.KeyData == Keys.D4) { timer1.Interval = 50; } if (e.KeyData == Keys.D5) { timer1.Interval = 10; } if(e.KeyData==Keys.Space) { timer1.Enabled = true; left = false; right = false; up = false; down = false; label1.Text = ""; } if(e.KeyData == Keys.Up && down == false) { up = true; down = false; left = false; right = false; } if (e.KeyData == Keys.Down && up == false) { up = false; down = true; left = false; right = false; } if (e.KeyData == Keys.Left && right == false) { up = false; down = false; left = true; right = false; } if (e.KeyData == Keys.Right && left == false) { up = false; down = false; left = false; right = true; } }
private void timer1_Tick(object sender, EventArgs e) { toolStripStatusLabelScore.Text = score.ToString(); if (down == true) { snake.moveDown(); } if (up == true) { snake.moveUp(); } if (left == true) { snake.moveLeft(); } if (right == true) { snake.moveRight(); } for (int i = 0; i < snake.SnakeRec.Length; i++) { if (snake.SnakeRec[i].IntersectsWith(food.foodRec)) { Random rd = new Random(); score += rd.Next(5,30); snake.growSnake(); food.foodLocation(randFood); } } collision(); this.Invalidate(); } public void collision() { for(int i=1; i<snake.SnakeRec.Length; i++) { if(snake.SnakeRec[0].IntersectsWith(snake.SnakeRec[i])) { timer1.Enabled = false; MessageBox.Show("Bạn đã tự cắn đít mà chết =))");
label1.Text = "Bấm Phím Cách Để Bắt Đầu Chơi"; toolStripStatusLabelScore.Text = "0"; score = 0; MessageBox.Show("Chết toi!!!\rGame Over!!!"); snake = new Snake(); //Restart();
} if(snake.SnakeRec[0].Y < 0 || snake.SnakeRec[0].Y > 290) { timer1.Enabled = false; MessageBox.Show("Bạn đã cắn vào tường rụng răng chết\rNgu vật vờ.");
label1.Text = "Bấm Phím Cách Để Bắt Đầu Chơi"; toolStripStatusLabelScore.Text = "0"; score = 0; MessageBox.Show("Chết toi!!!\rGame Over!!!"); snake = new Snake(); //Restart();
} if (snake.SnakeRec[0].X < 0 || snake.SnakeRec[0].X > 290) { timer1.Enabled = false; MessageBox.Show("Bạn đã cắn vào tường rụng răng chết\rNgu vật vờ."); label1.Text = "Bấm Phím Cách Để Bắt Đầu Chơi"; toolStripStatusLabelScore.Text = "0"; score = 0; MessageBox.Show("Chết toi!!!\rGame Over!!!"); snake = new Snake(); //Restart();
} } } void Restart() { timer1.Enabled = false; label1.Text = "Bấm Phím Cách Để Bắt Đầu Chơi"; toolStripStatusLabelScore.Text = "0"; score = 0; MessageBox.Show("Chết toi!!!\rGame Over!!!"); snake = new Snake(); }
//private void button1_Click(object sender, EventArgs e) //{ // timer1.Enabled = false; // MessageBox.Show("Phần mềm được phát triển bởi:\r" + // "Nguyễn Vũ Trường Giang\r" + // "--------------------------\r" + // "HƯỚNG DẪN CÁCH CHƠI:\r"+ // "Bạn nhấn phím cách (Space) để bắt đầu chơi.\r" // + "Sau đó hãy nhấn các phím trái phải lên xuống\r"+ // "để định hướng cho chú rắn của bạn chạy.\r"+ // "Có 5 mức độ cho bạn chọn:\r"+ // "Ấn phím số 1 để chọn chế độ dể.\r" // + "Ấn phím số 2 để chọn chế độ bình thường.\r"+ // "Ấn phím số 3 để chọn chế độ khó.\r"+ // "Ấn phím số 4 để chọn chế độ siêu khó.\r"+ // "Ấn phím số 5 để chọn chế độ thánh thức thần thánh", "Hướng Dẫn"); //}
private void label2_Click(object sender, EventArgs e) { timer1.Enabled = false; MessageBox.Show("Phần mềm được phát triển bởi:\r" + "Nguyễn Vũ Trường Giang\r" + "--------------------------\r" + "HƯỚNG DẪN CÁCH CHƠI:\r" + "Bạn nhấn phím cách (Space) để bắt đầu chơi.\r" + "Sau đó hãy nhấn các phím trái phải lên xuống\r" + "để định hướng cho chú rắn của bạn chạy.\r" + "Có 5 mức độ cho bạn chọn:\r" + "Ấn phím số 1 để chọn chế độ dể.\r" + "Ấn phím số 2 để chọn chế độ bình thường.\r" + "Ấn phím số 3 để chọn chế độ khó.\r" + "Ấn phím số 4 để chọn chế độ siêu khó.\r" + "Ấn phím số 5 để chọn chế độ thánh thức thần thánh", "Hướng Dẫn"); label1.Text = "Ấn Phím Cách Để Tiếp Tục . . ."; } } }
Tiếp theo là đến class Snake;
Code:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Drawing;
namespace GameRan { class Snake { private Rectangle[] snakeRec; public Rectangle[] SnakeRec { get { return snakeRec; } } private SolidBrush brush; private int x, y, w, h;
public Snake() { snakeRec = new Rectangle[3]; brush = new SolidBrush(Color.Black); x = 20; y = 0; w = 10; h = 10; for(int i=0; i<snakeRec.Length; i++) { snakeRec[i] = new Rectangle(x, y, w, h); x -= 10; } }
public void drawSnake(Graphics paper) { foreach(Rectangle rec in snakeRec) { paper.FillEllipse(brush, rec); } } public void drawSnakeRun() { for (int i = snakeRec.Length - 1; i > 0; i-- ) { snakeRec[i] = snakeRec[i - 1]; } }
public void moveDown() { drawSnakeRun(); snakeRec[0].Y += 10; }