1. Anasayfa
  2. Visual Studio C#

C# Araba Yarışı Oyunu

C# Araba Yarışı Oyunu
C# Araba Yarışı Oyunu
7

Şimdiki C# örneğimizde araba yarışı oyunu yapacağız, amacımız diğer arabalara çarpmadan en yüksek puanı toplamak kodların arasında açıklama satılarını ekledim ama kısaca oyunu ve form tasarımını anlatayım öncelikle oyun için kullanacağımız arabaları, yolu resim olarak ayarlıyoruz bizim kullanacaklarımız ..:

Konu sonunda oyunu indirme linki mevcut oradan indirip Resources klasörü içinde resimleri görebilirisiniz..

Form üzerine 6 adet pictureBox ekliyoruz bunlardan iki tanesi yol üzerindeki arabalar için, biri bizim kontrol edeceğimiz araba, iki tanesi yol için ve sonuncuda çarpışma efekti için daha sonra birtanede Timer ekliyoruz ve kodlarımız aşağıda

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 Araba_yarisi
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            basla();
           
        }

        /*
         Program içinde kullanacağımız genel değişkenleri tanımlıyoruz...
        */
        int kazanilan_puan = 0;
        int yol_hizi = 5;
        int araba_hiz = 5;
        bool sol_yon = false;
        bool sag_yon = false;
        int diger_araba_hizi = 5;
        Random rnd = new Random();

        private void basla()
        {
            //başlat butonu ve çaprma efektini pasif yapıyoruz
            button1.Enabled = false;
            carpma.Visible = false;

            //Arabanın ve yolun aşağıya doğru kayma hızı    https://www.bilisimogretmeni.com/
            diger_araba_hizi = 5;
            yol_hizi = 5;

            kazanilan_puan = 0;

            //Arabamızın koordinatı
            bizim_araba.Left = 166;
            bizim_araba.Top = 293;

            //Kontrol tuşlarını yasif yapıyoruz
            sol_yon = false;
            sag_yon = false;

            //Diğer arabaların koordinatları
            araba1.Left = 66;
            araba1.Top = -120;
            araba2.Left = 294;
            araba2.Top = -185;

            //Zeminde hareket edecek olan yolun koordinatı
            yol1.Left = -3;
            yol1.Top = -222;
            yol2.Left = -2;
            yol2.Top = -638;
                       
            timer1.Start();

        }


        private void timer1_Tick(object sender, EventArgs e)
        {
            //Süre başladığında puan artışı ve ekrana yazdırma
            kazanilan_puan++;
            puan.Text = kazanilan_puan.ToString();

            //Yolun yukardan aşağı hareketi ve tekrar başa dönme kontrolü    https://www.bilisimogretmeni.com/
            yol1.Top += yol_hizi;
            yol2.Top += yol_hizi;
            if (yol1.Top > 630) yol1.Top = -630;
            if (yol2.Top > 630) yol2.Top = -630;

            //Yön tuşları ile arabanın hareketi 
            if (sol_yon) bizim_araba.Left -= araba_hiz;
            if (sag_yon) bizim_araba.Left += araba_hiz;
            if (bizim_araba.Left < 1) { sol_yon = false; }
            else if (bizim_araba.Left + bizim_araba.Width > 380) { sag_yon = false; }
            
            //Diğer arabaların aşağı doğru hareketi ve rastgele bir değer üretilip tekrardan ekrana gelmesi..
            araba1.Top += diger_araba_hizi;
            araba2.Top += diger_araba_hizi;
            if (araba1.Top > panel1.Height)
            {
                araba1_degistir();
                araba1.Left = rnd.Next(2, 160);
                araba1.Top = rnd.Next(100, 200) * -1;
            }

            if (araba2.Top > panel1.Height)
            {
                araba2_degistir();
                araba2.Left = rnd.Next(185, 327);
                araba2.Top = rnd.Next(100, 200) * -1;
            }

            //Arabanın diğer arabaları çarpma kontrolü ve oyun biti fonk. çalıştırılması
            if (bizim_araba.Bounds.IntersectsWith(araba1.Bounds) || bizim_araba.Bounds.IntersectsWith(araba2.Bounds))
            {
                oyunBitti();
            }



        }

        private void oyunBitti()
        {
            //Eğer çarpma olduysa ekranda puan gösterilip tekrar başlayabilmek için buton aktif hale geliyor....   https://www.bilisimogretmeni.com/
            timer1.Stop();
            button1.Enabled = true;
            carpma.Visible = true;
            bizim_araba.Controls.Add(carpma);
            carpma.Location = new Point(-8, 5);
            carpma.BringToFront();
            carpma.BackColor = Color.Transparent;
            MessageBox.Show("Tebrikler " + puan.Text + " kazandınız", "Oyun Sonu", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);

        }

        private void araba1_degistir()
        {
            //Diğer arabalar ekranda kaybolunca 1-7 arasında rastgele bir değer üretilip 
            //eklenen resimlerin ekrana getirilmesini sağlıyoruz....
            //https://www.bilisimogretmeni.com/
            int sira = rnd.Next(1, 7);
            switch (sira)
            {
                case 1:
                    araba1.Image = Properties.Resources.araba2;
                    break;
                case 2:
                    araba1.Image = Properties.Resources.araba3;
                    break;
                case 3:
                    araba1.Image = Properties.Resources.araba4;
                    break;
                case 4:
                    araba1.Image = Properties.Resources.araba5;
                    break;
                case 5:
                    araba1.Image = Properties.Resources.araba6;
                    break;
                case 6:
                    araba1.Image = Properties.Resources.araba7;
                    break;
                case 7:
                    araba1.Image = Properties.Resources.araba8;
                    break;
                default:
                    break;

            }
        }

        private void araba2_degistir()
        {
            //Diğer arabalar ekranda kaybolunca 1-7 arasında rastgele bir değer üretilip 
            //eklenen resimlerin ekrana getirilmesini sağlıyoruz....
            int sira = rnd.Next(1, 7);
            switch (sira)
            {
                case 1:
                    araba2.Image = Properties.Resources.araba2;
                    break;
                case 2:
                    araba2.Image = Properties.Resources.araba3;
                    break;
                case 3:
                    araba2.Image = Properties.Resources.araba4;
                    break;
                case 4:
                    araba2.Image = Properties.Resources.araba5;
                    break;
                case 5:
                    araba2.Image = Properties.Resources.araba6;
                    break;
                case 6:
                    araba2.Image = Properties.Resources.araba7;
                    break;
                case 7:
                    araba2.Image = Properties.Resources.araba8;
                    break;
                default:
                    break;

            }
        }
        private void Form1_KeyDown(object sender, KeyEventArgs e)
        {
            //Tuş basma olayında sağa veya sola hareketin kontrolü
            if (e.KeyCode == Keys.Left && bizim_araba.Left > 0) sol_yon = true;

            if (e.KeyCode == Keys.Right && bizim_araba.Left + bizim_araba.Width < panel1.Width) sag_yon = true;
        }

        private void Form1_KeyUp(object sender, KeyEventArgs e)
        {
            //Tuş bırakılınca arabanın hareketinin bitmesi
            if (e.KeyCode == Keys.Left) sol_yon = false;
            if (e.KeyCode == Keys.Right) sag_yon = false;
        }

        private void button1_Click(object sender, EventArgs e)
        {   //Butona basınca tekrar oyunu başlatıyoruz....
            basla();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
         
        }

        private void button2_Click(object sender, EventArgs e)
        {
           
        }
    }
}

İndir “C# Araba Yarışı Oyunu”

Araba_yarisi.zip – 5714 defa indirildi – 595,62 KB
Bu İçeriğe Tepkin Ne Oldu?
  • 19
    ba_ar_l_
    Başarılı
  • 5
    gayet_yi
    Gayet İyi
  • 6
    te_ekk_rler
    Teşekkürler
  • 5
    anlamad_m
    Anlamadım
  • 6
    yetersiz
    Yetersiz
Subscribe
Bildir
guest

Bu site, istenmeyenleri azaltmak için Akismet kullanıyor. Yorum verilerinizin nasıl işlendiği hakkında daha fazla bilgi edinin.

7 Yorum
Inline Feedbacks
View all comments
kerem

lutfen yapılışını nerde bulabılrm soyleyın lutfen

Enes

hocam
form1.cs[Design] e ulaşamıyorum onu nerden bulucam yada nerden açmam lazım

Yaren

private

void

Form1_KeyDown(

object

sender, KeyEventArgs e)
        

{
            

//Tuş basma olayında sağa veya sola hareketin kontrolü
            

if

(e.KeyCode == Keys.Left &amp;&amp; bizim_araba.Left > 0) sol_yon =

true

;
 
            

if

(e.KeyCode == Keys.Right &amp;&amp; bizim_araba.Left + bizim_araba.Width < panel1.Width) sag_yon =

true

;

&amp lerde hata veriyor sebebi nedir?

Fff

Teşekkürler güzel olmuş :)