SOS PC - Tworzymy na życzenie oprogramowanie. Realizujemy projety informatyczne, elektroniczne oraz automatyki przemysłowej. Tel: 600526066, 605117493
Prosta gra w C#

Prosta gierka napisana w C# :)

Pobierz kod wykonywalny

Tron c#

Kod źródłowy

using System;
using System.Collections.Generic;
using System.Drawing;
using System.Windows.Forms;
namespace Snake
{
public partial class SnakeWindow : Form
{
private const int Y_ekranu = 480 - 34;
private const int X_ekranu = 640 - 8;
private Timer t = new Timer();
private Point dir = new Point(0, 10);
private LinkedList snake = new LinkedList();
private Label Info = new Label();
private MainMenu menu1 = new MainMenu();
private MenuItem menuItem1 = new MenuItem();
private int punkty = 0;
private bool koniec = false;

public SnakeWindow()
{
//etykieta jak nie chcesz jej i wolisz messgebox to usuń to
this.Info.Visible = false;
this.Info = new System.Windows.Forms.Label();
this.Info.AutoSize = true;
this.Info.Name = "label2";
this.Info.Size = new System.Drawing.Size(35, 13);
this.Info.TabIndex = 0;
this.Info.Text = "";
this.Info.Font = new System.Drawing.Font("Microsoft Sans Serif", 14.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(238)));
this.Info.Location = new System.Drawing.Point(113, 89);
this.Info.ForeColor = System.Drawing.Color.Red;
this.Info.Top = 5;
this.Info.Left = 50;

//okno aplikacji
this.ClientSize = new System.Drawing.Size(X_ekranu, Y_ekranu);
this.FormBorderStyle = FormBorderStyle.FixedSingle;
this.Name = "Tron";
this.Text = "Tron C# Poziom trudniści 1";
this.MaximumSize = new System.Drawing.Size(X_ekranu, Y_ekranu);
this.Paint += new PaintEventHandler(SnakeWindow_Paint);
this.KeyDown += new KeyEventHandler(SnakeWindow_KeyDown);
this.Menu = menu1;
this.Controls.Add(this.Info); //dodanie etykiety do formularza

//menu
this.menuItem1.Text = "Poziom trudności";
this.menuItem1.MenuItems.Add("Poziom 1", P1OnClick); //tworzenie menu + przypisana funkca obsługi zdarzenia onclick
this.menuItem1.MenuItems.Add("Poziom 2", P2OnClick);
this.menuItem1.MenuItems.Add("Poziom 3", P3OnClick);
this.menuItem1.MenuItems.Add("Poziom 4", P4OnClick); this.menu1.MenuItems.Add("Start", StartOnClick);
this.menu1.MenuItems.Add("Pause", StopOnClick);
this.menu1.MenuItems.Add("Restart", RestartOnClick);
this.menu1.MenuItems.Add("");
this.menu1.MenuItems.Add(menuItem1);
this.menu1.MenuItems.Add("");
this.menu1.MenuItems.Add("Wyjscie", WyjscieOnClick);

//timer
t.Tick += new EventHandler(t_Tick);
t.Interval = 300; //domyślny interwał timera co 400[ms]
snake.AddFirst(new Point(10, 10));
}

void WyjscieOnClick(object sender, EventArgs e)
{
this.Close();
}

void StartOnClick(object sender, EventArgs e)
{
if (koniec)//jesli byl koniec to zrestartuj gre
{
RestartOnClick(sender, e);
koniec = false;
}
else
{
t.Start();
}
}

void StopOnClick(object sender, EventArgs e)
{
t.Stop();
}
void P1OnClick(object sender, EventArgs e) //poziom 1
{
t.Interval = 300; //czas interwału timera;
this.Text = "Tron C# Poziom trudniści 1";
}
void P2OnClick(object sender, EventArgs e) //poziom 2
{
t.Interval = 200;
this.Text = "Tron C# Poziom trudniści 2";
}
void P3OnClick(object sender, EventArgs e) //poziom 3
{
t.Interval = 100;
this.Text = "Tron C# Poziom trudniści 3";
}
void P4OnClick(object sender, EventArgs e) //poziom 4
{
t.Interval = 50;
this.Text = "Tron C# Poziom trudniści 4";
}

void RestartOnClick(object sender, EventArgs e)
{
t.Stop(); //stop timer
snake.Clear();//czyszczenie listy pozycji węża
snake.AddFirst(new Point(10, 10)); //inicajacja pierwszej wartości w listcie pozycji
punkty = 0;
dir = new Point(0, 10); //inickjcja kierunku poruszania sie węża
//Info.Visible = false; //wyłączenie etykietki informacyjnej
t.Start();//start timer
koniec = false;
}
void SnakeWindow_KeyDown(object sender, KeyEventArgs e) //Zmiana kierunku
{
if (e.KeyCode == Keys.Left) { dir = new Point(-10, 0); }
if (e.KeyCode == Keys.Right) { dir = new Point(10, 0); }
if (e.KeyCode == Keys.Up) { dir = new Point(0, -10); }
if (e.KeyCode == Keys.Down) { dir = new Point(0, 10); }
}

void SnakeWindow_Paint(object sender, PaintEventArgs e)
{

int i = 0;
foreach (Point cur in snake) //Rysowanie węża i sprawdzanie kolizji
{
e.Graphics.FillRectangle(Brushes.Black, cur.X, cur.Y, 10, 10); //rysowanie węża
if (koniec == false) //test czy już nie wystąpiła kolizja
{
if ((i != 0) && (snake.First.Value.X == cur.X) && (snake.First.Value.Y == cur.Y)) //detekcja kolizji
{
koniec = true;
t.Stop();
// albo etykieta
//Info.Text = "Koniec gry. Ilość zdobytych punktów: " + punkty.ToString();
//Info.Visible = true;
// albo messageBox
MessageBox.Show("Koniec gry. Ilość zdobytych punktów: " + punkty.ToString(), "info", MessageBoxButtons.OK);
}
if ((i != 0) && ((cur.X >= X_ekranu) || (cur.Y >= (Y_ekranu)) || (cur.X <= 0) || (cur.Y <= 0))) //detekcja przejscia granicy ekranu
{
koniec = true;
t.Stop();
//Info.Text = "Koniec gry. Ilość zdobytych punktów: " + punkty.ToString(); //
//Info.Visible = true;
MessageBox.Show("Koniec gry. Ilość zdobytych punktów: " + punkty.ToString(), "info", MessageBoxButtons.OK);

}
}
i++;
}
}
void t_Tick(object sender, EventArgs e) //ruch węża
{
punkty++;
snake.AddFirst(new Point(snake.First.Value.X + dir.X, snake.First.Value.Y + dir.Y)); //dodanenie nowej pozycji do tablicy śladu węża
this.Refresh(); //odswierzenie ekranu
}
}
}

Strona główna
Oferta
Linki
Kontakt
Mapa serwisu
Nowości

Solar Manager

Karta Katalogowa Solar Manager, SPA, Fitness club
Oprogramowanie

Rejestracja czasu pracy - KCP

Rejestracja czasu pracy, RCP, KCP

Masz problem z komputerem dzwoń 600526066
Pogotowie Komputerowe 24h