using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using EmuEngine;
using EmuEngine.Media;
using System.Collections;
namespace Test
{
public partial class Form1 : Form
{
public MediaPlayer status;
public MediaPlayer eat;
public delegate void Walk(int speed);
static int speed = 0;
static int score = 0;
Walk move;
DrawingArea area;
Picture player;
Picture enemy;
Picture gameOver;
Picture gameWin;
public Form1()
{
InitializeComponent();
area = new DrawingArea(doubleBufferedPanel1);
player = new Picture("pacmanUp.GIF", 300, 100, 30, 30);
enemy = new Picture("enemy.jpg", 100, 100, 20, 23);
area.AddPicture(new Picture("Food.gif", 200, 50, 10, 10));
area.AddPicture(new Picture("Food.gif", 200, 50, 10, 10));
area.AddPicture(new Picture("Food.gif", 100, 200, 10, 10));
area.AddPicture(new Picture("Food.gif", 300, 300, 10, 10));
area.AddPicture(new Picture("Food.gif", 400, 54, 10, 10));
area.AddPicture(new Picture("Food.gif", 150, 200, 10, 10));
area.AddPicture(new Picture("Food.gif", 500, 400, 10, 10));
area.AddPicture(new Picture("Food.gif", 123, 400, 10, 10));
area.AddPicture(new Picture("Food.gif", 345, 65, 10, 10));
area.AddPicture(new Picture("Food.gif", 234, 40, 10, 10));
area.AddPicture(new Picture("Food.gif", 46, 400, 10, 10));
area.AddPicture(new Picture("Food.gif", 123, 300, 10, 10));
area.AddPicture(new Picture("Food.gif", 321, 123, 10, 10));
gameOver = new Picture("gameover.gif", 140, 100, 280, 281);
gameWin = new Picture("gamewin.gif", 140, 100, 280, 281);
area.AddPixelWall(new PixelWall(Color.LightBlue, 30,30, 5, doubleBufferedPanel1.Height - 60));
area.AddPixelWall(new PixelWall(Color.LightBlue, 30, 30, doubleBufferedPanel1.Width - 60, 5));
area.AddPixelWall(new PixelWall(Color.LightBlue, doubleBufferedPanel1.Width - 30, 30, 5, doubleBufferedPanel1.Height - 60));
area.AddPixelWall(new PixelWall(Color.LightBlue, 30, doubleBufferedPanel1.Height - 30, doubleBufferedPanel1.Width - 55, 5));
area.AddPicture(player);
area.AddPicture(enemy);
timer1.Enabled = true;
move = new Walk(player.MoveUp);
speed = 1;
score = 0;
eat = new MediaPlayer(doubleBufferedPanel1.Handle);
eat.Open("pacchomp.wav");
status = new MediaPlayer(doubleBufferedPanel1.Handle);
status.Open(@"GAMEBEGINNING.wav");
status.Play(false);
}
private void timer1_Tick(object sender, EventArgs e)
{
area.UpdateScreen();
if (area.PixelWallCollision(player) != null)
{
status.Close();
eat.Dispose();
status.Open(@"killed.wav");
status.Play();
area.DeleteAllPictures();
timer1.Enabled = false;
area.AddPicture(gameOver);
}
if (area.Collision(player) != null)
{
eat.Stop();
eat.Play();
area.DeletePicture(area.Collision(player));
if (area.Pictures.Count == 2)
{
area.DeleteAllPictures();
area.AddPicture(gameWin);
timer1.Enabled = false;
}
speed++;
score++;
label1.Text = score.ToString();
}
if (enemy.Catch(player, 2))
{
status.Close();
eat.Dispose();
status.Open(@"killed.wav");
status.Play();
area.DeleteAllPictures();
timer1.Enabled = false;
area.AddPicture(gameOver);
doubleBufferedPanel1.Invalidate();
}
move(speed);
}
private void Form1_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Up)
{
player.Image = Image.FromFile("pacmanUp.gif");
move = new Walk(player.MoveUp);
}
if (e.KeyCode == Keys.Down)
{
player.Image = Image.FromFile("pacmanDown.gif");
move = new Walk(player.MoveDown);
}
if (e.KeyCode == Keys.Right)
{
player.Image = Image.FromFile("pacmanRight.gif");
move = new Walk(player.MoveRight);
}
if (e.KeyCode == Keys.Left)
{
player.Image = Image.FromFile("pacmanLeft.gif");
move = new Walk(player.MoveLeft);
}
}
}
}