C# İle X-Ball Oyun Yapımı

Selamun Aleyküm değerli Deep-Kod okurları.Bu yazımda sizlere C# ile nasıl oyun yapılır onun hakkında bilgi vereceğim.Geniş kapsamlı yazılım programlama dili olan C# bir çok alanda kolaylık sağladığı gibi bilgisayar oyunları alanında da bizlere güzel imkanlar sağlıyor.Geniş kapsamlı bir oyun programak için genellikle Unity 2d 3d programları kullanılır.Kendi aranızda küçük bir oyun tasarlamak isterseniz C# sizlere imkan tanıyor.Aşağıda vereceğim kodları sıkıntısız girdiğiniz zaman sizde böyle imkanlardan faydalanmış oluyorsunuz.

Kodlar:

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;
using System.Collections;
namespace xball7
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
int level = 1, kutusayısı = 10;
ArrayList kutucuklar = new ArrayList();
int yerX = 5, yerY = 5, hak = 3;
private void Form1_Load(object sender, EventArgs e)
{
this.Text = “kalan hak=” + hak.ToString() + “level=” + level.ToString();
yenile();
kutucukolustur();
}
private void yenile()
{
kutusayısı = 10 * level;
Random rnd = new Random();
int x = rnd.Next(0, 50);
int y = rnd.Next(300, 350);
ball.Location = new Point(x, y);
timer1.Enabled = true;
timer1.Interval = 5;
yerX = 1 + level * 1;
yerY = -1 – level * 1;
}

private void çarpmadenetimi()
{
Rectangle r = new Rectangle();
Rectangle t = new Rectangle();
t.X = ball.Left;
t.Y = ball.Top;
t.Height = ball.Height;
t.Width = ball.Width;
for(int i=0; i < kutucuklar.Count; i++)
{
PictureBox btn = ((PictureBox)kutucuklar);
r.X = btn.Left;
r.Y = btn.Top;
r.Height = btn.Height;
r.Width = btn.Width;

if (r.IntersectsWith(t))
{
kutusayısı–;
kutucuklar.RemoveAt(i);

if (yerY > 0 && yerX > 0)
{

if (btn.Top <= ball.Bottom && btn.Left < ball.Right)
yerY = yerY * -1;
else
yerX = yerX * -1;
}
else
if (yerX > 0 && yerX < 0)
{
if (btn.Top <= ball.Bottom && btn.Right > ball.Left)
yerY = yerY * -1;
else
yerX = yerX * -1;
}
else
if (yerY<0 && yerX > 0)
{
if (btn.Bottom >= ball.Top && btn.Left < ball.Right)
yerY = yerY * -1;
else
yerX = yerX * -1;

}
else
if (yerY < 0&& yerX < 0)
{
if (btn.Bottom >= ball.Top && btn.Right > ball.Left)
yerY = yerY * -1;
else
yerX = yerX * -1;
}
btn.Dispose();
}
}
}
private void timer1_Tick(object sender, EventArgs e)
{
ballhakeket();
çarpmadenetimi();
kalanhak(sender,e);
oyunbitti(sender, e);
}
private void kalanhak(object sender, EventArgs e)
{
if (ball.Bottom>kontrol.Bottom&&!(ball.Right>=kontrol.Left&&ball.Left <= kontrol.Right))
{
hak–;
for (int i =0; i <kutucuklar.Count; i++)
{
PictureBox btn = ((PictureBox)kutucuklar);
((PictureBox)kutucuklar).Dispose();

}
kutucuklar.Clear();
timer1.Enabled = false;
DialogResult dr = DialogResult.None;
if (hak > 0)
{
dr = MessageBox.Show(“yandın=” + hak.ToString());
if (dr == DialogResult.OK)
Form1_Load(sender, e);
}
else if (hak == 0)
{
MessageBox.Show(“oyun bitti”);
this.Close();
}
}
}
private void Form1_MouseMove(object sender, MouseEventArgs e)
{
kontrol.Left = e.X;
}
private void kutucukolustur()
{
for(int j = 0; j < level; j++)
{
for(int i = 0; i < 10; i++)
{
PictureBox btn = new PictureBox();
if (level == 1)
btn.ImageLocation = “1.png”;
else if (level == 2)
btn.ImageLocation = “2.png”;
else if (level == 3)
btn.ImageLocation = “3.png”;
btn.Name = i.ToString();
btn.SizeMode = PictureBoxSizeMode.StretchImage;
btn.Size = new Size(70, 65);
btn.Location = new Point(20 + i * 120, j * 90 + 20);
btn.BackColor = Color.Transparent;
this.Controls.Add(btn);
kutucuklar.Add(btn);
}
}
}
private void oyunbitti(object sender, EventArgs e)
{
DialogResult dr = DialogResult.None;
if (kutusayısı == 0)
{
timer1.Enabled = false;
dr = MessageBox.Show(“tebrikler seviye atladınız=” + level + “tebrikler oyunu bitirdiniz”);
level++;
}
if (dr == DialogResult.OK)
Form1_Load(sender, e);
}
private void ballhakeket()
{
if (this.ClientSize.Width <= ball.Right)
yerX = yerX * -1;
else if (0 >= ball.Left)
yerX = yerX * -1;
if (this.ClientSize.Height <= ball.Bottom)
yerY = yerY * -1;
else if (0 > ball.Top)
yerY = yerY * -1;
else if (ball.Bottom >= kontrol.Top && ball.Right >= kontrol.Left && ball.Left <= kontrol.Right)
yerY = yerY * -1;
ball.Location = new Point(ball.Left + yerX, ball.Top + yerY);
}

}
}

 

 

Oyunumuz bu şekilde umarım faydalı olmuştur.Okuduğunuz için teşekkür ederim diğer bir yazımda görüşmek üzere.

Bir cevap yazın

Your email address will not be published.