Bu dersimizde bir çok kişinin beklediği oyun yapımını anlatalım.
Vereceğim tüm işlemleri index.php içinde yapalım. Daha sonra eğer kod karmaşası olduğunu düşünüyorsanız siz ayırabilir, require ile index'e çağırabilirsiniz..
Bölüm 1 : Veritabanı Bağlantısı Oluşturma Ve Kullanılacak Tablolar
olsun.. Şimdi Canavar tablosuna girelim. "8 alandan oluşan tablo yarat" diyelim
İlk alanımız otomatik index alan, yani auto_increment olan id'dir. Türünü int yapıyoruz ve auto_increment seçeneğini seçiyoruz. Diğer bütün tablolarımızın türü VARCHAR uzunluğu
255 olsun.. Diğer tablolarımızın ismi de sırayla öyle.
Yukarıda canavarlarımızı tanımlamış olduk. Sitede görünecek adı her bir canavarın kendine özgü. HP (yani canı) saldırdığımızda savunacağı savunma ve bize saldırdığında bize yapacağı saldırı değerini tanımlamak için gerekli tabloları oluşturduk. Aslında ileriki zamanlarda br admin paneli yapacağız ama oyunu denemek için phpmyadmin'den bir adet canavar ekleyelim. Canavar tablosuna tıklayıp üst tarafta ekle butonuna tıklayalım ve gerekli alanları dolduralım
Evet, ilk canavarim adında bir canavarımız hazır.
Şimdi karekter_listesi tablomuza girelim ve online oyunlarda bulunan karekter sec islemini yapalım. Örnek verecek olursak, Travian oyununda Romalı, Galyalı, Cermen gibi karakterler var ve her birinin özelliği bir diğerinden farklı. Kiminin savunması, fazla kiminin saldırısı... Biz de böyle bir şey yapalım, ama öncelikle tablomuzu oluşturalım.
Phpmyadmin'den yeni tablo oluşturalım ve ismini
karekter_listesi koyalım. Şimdi bu tablomuz içinde 5 adet alan oluşturalım.. Önceki tabloda yaptığımız gibi auto_increment ve int türlü bir id alanımız olsun. Diğer alan isimleri ise şu şekilde
olsun:
Türü VARCHAR ve uzunluk 255 unutmayın.
Bunu yaptıktan sonra kendi karekterlerimizden birini oluşturalım. Travian'dan örnek verdik, ordaki bir karekteri seçelim. karakter_listesi tablomuza tıklayıp Ekle seçeneğine girip karakterimizi oluşturalım.
olsun... İsterseniz listenizi çoğaltabilirsiniz...Ama bence admin paneli yaptığımızda elle girmek daha rahat olacaktır..
Şimdi gelelim karakter tablomuza. Bu tablomuzda 10 adet alan oluşturun. Yine id seçeneğini diğer iki tablomuz gibi yapın.. Diğer tablolarımızın ismi sırasıyla:
Burada seviye kısmını düzenleyelim. Çünkü her oyuncu ilk oyuna girdiğinde aynı seviyeyi alır. Bizde varsayılan tanımlandığı gibi ve ismi de Başlangıç olsun.
Bu dersimizde sadece kayıt işlemleri hakkında bilgi vermek istiyorum. Kullanıcının seçeceği karakterin özelliklerini nasıl alacağını anlatalım.
İlk dersimizde veritabanlarını ve bağlantısını oluşturmuştuk.. Şimdi ise oyunumuzu yavaş yavaş şekillendirelim. Daha önce dediğim gibi ben herşeyi index dosyası üzerinde yapıyorum, ama siz nasıl isterseniz öyle yapabilirsiniz.
Sayfa başına:
Bunlar tamamen görsellik için. Bu kısımları siz kendiniz düzenleyebilir, daha güzel yapılandırabilirsiniz.
Sayfanın en başına daha sonra yapacağımız giriş işlemleri için ob_start ve session_start nesnelerini ve en sonuna da ob_end_flush(); nesnesini ekliyoruz. Yani sayfanın en başına:
En sonuna ise:
kodunu ekliyoruz.
Şimdi tüm işlemlerimiz index içinde olduğu için switch yöntimini kullanalım. Mesela, switch'imiz işlem olsun. Sayfamız index.php?islem=case ile çağıracağımız işlem şeklinde olur.
İlk önce kayıt sayfamızı yapalım. Yani index.php?islem=kayit linkini hazırlayalım:
Neler Yaptık
Bir kullanıcının bilgilerini gireceği bir tablo oluşturduk.
Kullanıcının sadece adını ve şifre bilgilerini girmesine izin verdik.
Diğer özellikleri seçeceği karaktere göre otomatik yüklenecek. Mesela, biz örnek olarak Romalı oluşturmuştuk, onun özelliklerini çekip kullanıcıya verdik. Burada eğer yeni bir karekter eklersek
kodların içinde yer alan:
Bu satırı bulup hemen altına aşağıdaki mantık gibi yeni karakterimizi ekliyoruz. Bunu SQL kodlarıyla da yapabiliri,z ama elle yapmak bence daha mantıklı gibi.
şeklinde forma eklememiz lazım. Value kısmından karekterin id'sini çekip kullanıcıya entegre etmek için bunu yaptık.
--------------------------------------------------------------------------------------------------------
1 TEŞEKKÜR YETER
ALINTIDIR
Vereceğim tüm işlemleri index.php içinde yapalım. Daha sonra eğer kod karmaşası olduğunu düşünüyorsanız siz ayırabilir, require ile index'e çağırabilirsiniz..
Bölüm 1 : Veritabanı Bağlantısı Oluşturma Ve Kullanılacak Tablolar
Evet Veritabanı Bağlantımızı Oluşturduk Şimdi PhpMyAdmine Girip tablomuzu seçiyoruz ve 3 alan ekliyoruz isimleri<?php
$host = "localhost";
$kullanici ="kullanıcı adınız localhostlarda genelde root olur";
$sifre = "sifreniz";
$data = "veritabanınızdaki tablonun ismi";
$baglan =@mysql_connect($host ,$kullanici,$sifre) or die (mysql_error());
$vt_sec =@mysql_select_db($data,$baglan) or die (mysql_error());
mysql_query("SET NAMES 'latin5'");
mysql_query("SET CHARACTER SET latin5");
mysql_query("SET COLLACTION_CONNECTION = 'latin5_turkish_ci'");
?>
canavar
karekter
karekter_listesi
olsun.. Şimdi Canavar tablosuna girelim. "8 alandan oluşan tablo yarat" diyelim
İlk alanımız otomatik index alan, yani auto_increment olan id'dir. Türünü int yapıyoruz ve auto_increment seçeneğini seçiyoruz. Diğer bütün tablolarımızın türü VARCHAR uzunluğu
255 olsun.. Diğer tablolarımızın ismi de sırayla öyle.
adi
genelcan
can
savunma
saldiri
verdigi_exp
aldigi_exp
Yukarıda canavarlarımızı tanımlamış olduk. Sitede görünecek adı her bir canavarın kendine özgü. HP (yani canı) saldırdığımızda savunacağı savunma ve bize saldırdığında bize yapacağı saldırı değerini tanımlamak için gerekli tabloları oluşturduk. Aslında ileriki zamanlarda br admin paneli yapacağız ama oyunu denemek için phpmyadmin'den bir adet canavar ekleyelim. Canavar tablosuna tıklayıp üst tarafta ekle butonuna tıklayalım ve gerekli alanları dolduralım
id = 1
adi = ilkcanavarim
genelcan = 100
can = 100
savunma = 2
saldiri = 5
verdigi_exp = 5
aldigi_exp = 0
Evet, ilk canavarim adında bir canavarımız hazır.
Şimdi karekter_listesi tablomuza girelim ve online oyunlarda bulunan karekter sec islemini yapalım. Örnek verecek olursak, Travian oyununda Romalı, Galyalı, Cermen gibi karakterler var ve her birinin özelliği bir diğerinden farklı. Kiminin savunması, fazla kiminin saldırısı... Biz de böyle bir şey yapalım, ama öncelikle tablomuzu oluşturalım.
Phpmyadmin'den yeni tablo oluşturalım ve ismini
karekter_listesi koyalım. Şimdi bu tablomuz içinde 5 adet alan oluşturalım.. Önceki tabloda yaptığımız gibi auto_increment ve int türlü bir id alanımız olsun. Diğer alan isimleri ise şu şekilde
olsun:
adi
Can
Saldiri
Savunma
Türü VARCHAR ve uzunluk 255 unutmayın.
Bunu yaptıktan sonra kendi karekterlerimizden birini oluşturalım. Travian'dan örnek verdik, ordaki bir karekteri seçelim. karakter_listesi tablomuza tıklayıp Ekle seçeneğine girip karakterimizi oluşturalım.
id = 1
adi = Romalı
can = 100
Saldiri = 8
Savunma = 3
olsun... İsterseniz listenizi çoğaltabilirsiniz...Ama bence admin paneli yaptığımızda elle girmek daha rahat olacaktır..
Şimdi gelelim karakter tablomuza. Bu tablomuzda 10 adet alan oluşturun. Yine id seçeneğini diğer iki tablomuz gibi yapın.. Diğer tablolarımızın ismi sırasıyla:
şeklinde olsun. Tabi, türü VARCHAR ve uzunluk 255 unutmayın.kadi
sifre
cinsi
seviye
exp
can
max_can
saldiri
savunma
Burada seviye kısmını düzenleyelim. Çünkü her oyuncu ilk oyuna girdiğinde aynı seviyeyi alır. Bizde varsayılan tanımlandığı gibi ve ismi de Başlangıç olsun.
Bu dersimizde sadece kayıt işlemleri hakkında bilgi vermek istiyorum. Kullanıcının seçeceği karakterin özelliklerini nasıl alacağını anlatalım.
İlk dersimizde veritabanlarını ve bağlantısını oluşturmuştuk.. Şimdi ise oyunumuzu yavaş yavaş şekillendirelim. Daha önce dediğim gibi ben herşeyi index dosyası üzerinde yapıyorum, ama siz nasıl isterseniz öyle yapabilirsiniz.
Sayfa başına:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="tr" lang="tr">
<head>
<**** http-equiv="Content-Type" content="text/html; charset=iso-8859-9" />
ibaresini ekliyoruz Türkçe karakterlerimizi düzgün göstermeye çalışmak için.
Şimdi hemen bu satırdan sonra iki-üç CSS düzenlemesi yapmak için şu kodları ekleyiniz. (En sonda <body> ve <html> taglarını kapatınız)
<**** http-equiv="Content-Type" content="text/html; charset=iso-8859-9" />
<style type="text/css">
body {font: 12px 25px Arial; margin: auto}
img {border:none}
a {text-decoration: none}
:focus {outline: 0}
#uyari {background-color: #4ab4d7; padding: 20px; font-size: 17px;
font-weight: bold; color: #fff; text-align: center; border-bottom: 1px solid #337689}
#baslik {background-color: #4ab4d7; padding: 100px; font-size: 45px;
font-weight: bold; color: #fff; text-align: center; border-bottom: 1px solid #337689}
</style>
</head>
<body>
<div id="baslik">İlk Online Oyunum</div>
Bunlar tamamen görsellik için. Bu kısımları siz kendiniz düzenleyebilir, daha güzel yapılandırabilirsiniz.
Sayfanın en başına daha sonra yapacağımız giriş işlemleri için ob_start ve session_start nesnelerini ve en sonuna da ob_end_flush(); nesnesini ekliyoruz. Yani sayfanın en başına:
<?php
ob_start();
session_start(); ?>
En sonuna ise:
<?php ob_end_flush ?>
kodunu ekliyoruz.
Şimdi tüm işlemlerimiz index içinde olduğu için switch yöntimini kullanalım. Mesela, switch'imiz işlem olsun. Sayfamız index.php?islem=case ile çağıracağımız işlem şeklinde olur.
İlk önce kayıt sayfamızı yapalım. Yani index.php?islem=kayit linkini hazırlayalım:
<?php
define("OYUN",true);
$islem = @$_GET['islem'];
Switch($islem){
case "kayit";
if($_POST){
$kadi = $_POST['kadi'];
$sifre = md5($_POST['sifre']);
$karekter = $_POST['karekter'];
$cinsid = $_POST['karekter'];
$sordabak = mysql_query("Select * from karekter_listesi where id='$cinsid'");
$canobak = mysql_fetch_array($sordabak);
$cano=$canobak['Can'];
$savo = $canobak['Savunma'];
$saldo = $canobak['Saldiri'];
$bul = mysql_query("SELECT * from karekter where kadi ='$kadi'");
$say = mysql_num_rows($bul);
if(empty($kadi) || empty($sifre)){
echo'<div id="uyari">Hıı Olm Malmısın Adamı HAsta Etme Git Doldur Şu Formu</div>';
}elseif($say > 0){
echo'<div id="uyari">Bu ismi Daha Önce Başka Biri Almış La Başka İsim Bul Kenden</div>';
}elseif($karekter == 'sec'){
echo'Karakter Seç sene';
}else{
$sql = mysql_query("insert into karekter (kadi,sifre,cinsi,can,savunma,saldiri,max_can) values('$kadi','$sifre','$karekter','$cano','$savo','$saldo','$cano')");
if($sql){
echo'<div id="uyari">Kayıt Oldunuz.. Yönlendiriliyorsunuz...</div>';
header("*******:2; url=index.php");
}else{
echo'Kayıt Olamadın';
}
}
}else{
echo'<form action="" method="post">
<center><table>
<tr>
<td>Kullanıcı Adı</td><td><input type="text" name="kadi" /></td>
</tr>
<tr>
<td>Şifre</td><td><input type="password" name="sifre" /></td>
</tr>
<tr>
<td>Karekter:</td>
<td>';
echo'<center>Romalı</center><br><center><input name="karekter" type="radio" value="1" style="height:100px; width : 100px" /></center></td>
';
echo'</td>
</tr>
<tr>
<td></td><td><font style="color:red">Özellikleri:</font><br> Saldiri=7Puan<br> Savunma=3Puan<br> Can=90HP</td>
</tr>
<tr>
<td><input type="submit" value="Kayıt Ol" /></td>
</tr>
</table></center>
</form>';
}
break;
?>
Neler Yaptık
Bir kullanıcının bilgilerini gireceği bir tablo oluşturduk.
Kullanıcının sadece adını ve şifre bilgilerini girmesine izin verdik.
Diğer özellikleri seçeceği karaktere göre otomatik yüklenecek. Mesela, biz örnek olarak Romalı oluşturmuştuk, onun özelliklerini çekip kullanıcıya verdik. Burada eğer yeni bir karekter eklersek
kodların içinde yer alan:
<center>Romalı</center><br><center><input name="karekter" type="radio" value="1" style="height:100px; width : 100px" /></center></td>
Bu satırı bulup hemen altına aşağıdaki mantık gibi yeni karakterimizi ekliyoruz. Bunu SQL kodlarıyla da yapabiliri,z ama elle yapmak bence daha mantıklı gibi.
<td>Yeni KArekter Adı</center><br><center><input name="karekter" type="radio" value="karekter_listesindeki id numarası" style="height:100px; width : 100px" /></center></td>
şeklinde forma eklememiz lazım. Value kısmından karekterin id'sini çekip kullanıcıya entegre etmek için bunu yaptık.
--------------------------------------------------------------------------------------------------------
1 TEŞEKKÜR YETER
ALINTIDIR