Karakter Atlama Oyunu (Char Jump Game) için başlangıç kodu — C#

Karakter Atlama Oyunu (Char Jump Game) için başlangıç kodu — C#

Not : Zıplama (atlama) işlemi için Boşluk (Space) tuşunu kullanınız.

[code lang=”csharp”]

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;//www.gorselprogramlama.com

using System.Drawing;

using System.Linq;

using System.Text;

using System.Windows.Forms;

namespace Char_Jump_Game

{

public partial class Form1 : Form

{

public Form1()

{

InitializeComponent();

}

List<Keys> basilanTuslar = new List<Keys>();

float startY = 0f;

float finishY = 0f;

float jumpDistance = 35f;

bool jumping = false;

bool down = false;

void ziplamaAyar()

{

startY = pbChar.Top;//www.gorselprogramlama.com

finishY = pbChar.Top – jumpDistance; // daha yukarısı

jumping = true;

down = false;

tmrZipla.Enabled = true;

}

private void timer1_Tick(object sender, EventArgs e)

{

if (jumping)

{

if (!down) // up

{

if (pbChar.Top >= finishY)

{//www.gorselprogramlama.com

pbChar.Top-=2;

}

else down = true;

}

else // down

{

if (pbChar.Top < startY)

{

pbChar.Top += 2;

//gravity();

}

else

{

jumping = false;

tmrZipla.Enabled = false;

}

}

}//www.gorselprogramlama.com

}

private void Form1_KeyDown(object sender, KeyEventArgs e)

{

if (!basilanTuslar.Contains(e.KeyCode))

{

basilanTuslar.Add(e.KeyCode);

}

}

private void Form1_KeyUp(object sender, KeyEventArgs e)

{

basilanTuslar.Remove(e.KeyCode);//www.gorselprogramlama.com

}

private void tmrTusKontrol_Tick(object sender, EventArgs e)

{

lblCharXY.Text = pbChar.Top + "," + pbChar.Left;

//gravity();

if (!jumping && basilanTuslar.Contains(Keys.Space))

{

ziplamaAyar();

}

else if (basilanTuslar.Contains(Keys.Left))

{

if (!jumping && basilanTuslar.Contains(Keys.Space))

{

ziplamaAyar();

}

//www.gorselprogramlama.com

/*if (pbChar.Left > 0)

{

pbChar.Left -= 1;

}

*/

if (pbChar.Left <= -pbChar.Width)

{

pbChar.Left = (this.Width – 8);

}

pbChar.Left -= 1;

resimKontrol(Properties.Resources.char_sol);

}

else if (basilanTuslar.Contains(Keys.Right))

{

if (!jumping && basilanTuslar.Contains(Keys.Space))

{//www.gorselprogramlama.com

ziplamaAyar();

}

/*if (pbChar.Left < (this.Width – pbChar.Width) – 10)

{

pbChar.Left += 1;

}

*/

if (pbChar.Left >= (this.Width – 8))

{

pbChar.Left = -pbChar.Width;

}

pbChar.Left += 1;

resimKontrol(Properties.Resources.char_sag);

}

}

void resimKontrol(Bitmap bmp)

{

if (pbChar.Image != bmp)

{

pbChar.Image = bmp;//www.gorselprogramlama.com

}

}

void gravity()

{

bool fall = false;

foreach (Control item in this.Controls)

{

if (item is Label)

{

if (item.Tag != null && item.Tag.ToString().StartsWith("zemin"))

{

int charTemas = pbChar.Top + pbChar.Height;

int zemin = item.Top;

float mutlakX = Math.Abs((pbChar.Left + (pbChar.Width / 2)) – (item.Left + (item.Width / 2)));

float mutlakY = Math.Abs((pbChar.Top + (pbChar.Height / 2)) – (item.Top + (item.Height / 2)));

float farkGenislik = (pbChar.Width / 2) + (item.Width / 2);

float farkYukselik = (pbChar.Height / 2) + (item.Height / 2);

if (charTemas – 1 == zemin && (farkGenislik > mutlakX) && (farkYukselik > mutlakY))

{

fall = true;

startY = item.Top – pbChar.Width;

break;//www.gorselprogramlama.com

}

else

{

fall = false;

}

}

}

}

if (!fall)

{

startY = lblPlace.Top;

}

}

private void Form1_Load(object sender, EventArgs e)

{

}

}

}

[/code]

Projeyi İNDİR

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir