سفارش ساخت بازی
سطح بازی مورد نظر خود را انتخاب نمایید
موتور بازی سازی مورد نظر خود را انتخاب نمایید
سبك بازی را انتخاب نمایید
نام:
نام خانوادگی:
نام مدرسه:
نام معلم:
تلفن تماس:
آی تلگرام:
توضیحات :
مدت زمان تولید دو روز كاری
هزینه تولید پروژه 300.000 تومان

موتور بازی سازی مورد نظر خود را انتخاب نمایید
سبك بازی را انتخاب نمایید
نام:
نام خانوادگی:
نام دانشگاه:
نام استاد:
تلفن تماس:
آی تلگرام:
توضیحات :
مدت زمان تولید پنج روز كاری
هزینه تولید پروژه 600.000 تومان

موتور بازی سازی مورد نظر خود را انتخاب نمایید
سبك بازی را انتخاب نمایید
نام:
نام خانوادگی:
نام دانشگاه:
نام استاد:
تلفن تماس:
آی تلگرام:
توضیحات :
مدت زمان تولید پانزده روز كاری
هزینه تولید پروژه 2.000.000 تومان

برای ساخت بازی و مشاوره رایگان با آی دی تلگرام زیر تماس بگیرید: Tfh1368
برای ساخت بازی و مشاوره رایگان با آی دی تلگرام زیر تماس بگیرید: Tfh1368


بازی های سبك پلتفرم (ساده)


بازی‌کننده در این نوع بازی مجبور به پرش از روی موانع مختلف یا بالا رفتن از سدهای فیزیکی است، مانند بازی سوپر ماریو یا بازی سونیك

گرافیك آماده
تعداد مراحل 2
منوی ورود ساده
حركات حركت به طرفین- پرش- دشمن ثابت
سورس كد
خروجی ویندوز
خروجی اندروید
صدا گذاری
درج اطلاعات شما در بازی
درج اطلاعات درخواستی


بازی های سبك پلتفرم (متوسط)


بازی‌کننده در این نوع بازی مجبور به پرش از روی موانع مختلف یا بالا رفتن از سدهای فیزیکی است، مانند بازی سوپر ماریو یا بازی سونیك

گرافیك آماده
تعداد مراحل 5
منوی ورود نیمه حرفه ای
حركات حركت به طرفین- پرش- شلیك- دشمنان متحرك
سورس كد
خروجی ویندوز
خروجی اندروید
صدا گذاری
درج اطلاعات شما در بازی
درج اطلاعات درخواستی


بازی های سبك پلتفرم (حرفه ای)


بازی‌کننده در این نوع بازی مجبور به پرش از روی موانع مختلف یا بالا رفتن از سدهای فیزیکی است، مانند بازی سوپر ماریو یا بازی سونیك

گرافیك آماده-حرفه ای
تعداد مراحل 10
منوی ورود حرفه ای
حركات حركت به طرفین- پرش- شلیك- دشمنان متحرك- دشمن تیر انداز- دشمن دارای هوش مصنوعی- حركات خاص كاراكتر- تغییر اصلحه
سورس كد
خروجی ویندوز
خروجی اندروید
صدا گذاری
درج اطلاعات شما در بازی
درج اطلاعات درخواستی


بازی های جنگی (ساده)


محوریت اصلی این نوع بازی ها بر روی پیروزی در جنگ استوار است و شما باید با غلبه بر دشمنان مراحل را به پایان برسانید. مانند جنگ هوایی یا جنگ تانكی

گرافیك آماده
تعداد مراحل 2
منوی ورود ساده
حركات حركت به طرفین- شلیك- دشمن ثابت
سورس كد
خروجی ویندوز
خروجی اندروید
صدا گذاری
درج اطلاعات شما در بازی
درج اطلاعات درخواستی


بازی های جنگی (متوسط)


محوریت اصلی این نوع بازی ها بر روی پیروزی در جنگ استوار است و شما باید با غلبه بر دشمنان مراحل را به پایان برسانید. مانند جنگ هوایی یا جنگ تانكی

گرافیك آماده
تعداد مراحل 5
منوی ورود نیمه حرفه ای
حركات حركت به طرفین-  شلیك- دشمنان متحرك- جوایز حین جنگ
سورس كد
خروجی ویندوز
خروجی اندروید
صدا گذاری
درج اطلاعات شما در بازی
درج اطلاعات درخواستی


بازی های جنگی (حرفه ای)


محوریت اصلی این نوع بازی ها بر روی پیروزی در جنگ استوار است و شما باید با غلبه بر دشمنان مراحل را به پایان برسانید. مانند جنگ هوایی یا جنگ تانكی

گرافیك آماده-حرفه ای
تعداد مراحل 10
منوی ورود حرفه ای
حركات حركت به طرفین-  شلیك- دشمنان متحرك- دشمنان ثابت- هوش مصنوعی- جوایز حین جنگ- ارتقا- تغییر صلاح
سورس كد
خروجی ویندوز
خروجی اندروید
صدا گذاری
درج اطلاعات شما در بازی
درج اطلاعات درخواستی


بازی های مسابقه ای (متوسط)


محوریت اصلی این نوع بازی ها پیروزی بر رقبا در مسابقات است معمولا مسابقات با وسایل نقلیه انجام میپذیرد.

گرافیك آماده
تعداد مراحل 5
منوی ورود نیمه حرفه ای
حركات حركت- مسابقه با رقبای كامپیوتری-
سورس كد
خروجی ویندوز
خروجی اندروید
صدا گذاری
درج اطلاعات شما در بازی
درج اطلاعات درخواستی


بازی های مسابقه ای (حرفه ای)


محوریت اصلی این نوع بازی ها پیروزی بر رقبا در مسابقات است معمولا مسابقات با وسایل نقلیه انجام میپذیرد.

گرافیك آماده-حرفه ای
تعداد مراحل 10
منوی ورود حرفه ای
حركات حركت- مسابقه با رقبای كامپیوتری- ماژول های خاص در حین مسابقه- ارتقا و شخصی سازی وسیله
سورس كد
خروجی ویندوز
خروجی اندروید
صدا گذاری
درج اطلاعات شما در بازی
درج اطلاعات درخواستی


بازی های آموزشی ای (متوسط)


محوریت اصلی این نوع بازی ها آموزش است. مانند آموزش الفبا فارسی یا انگلیسی و آموزش ریاضی

گرافیك آماده
تعداد مراحل 0
منوی ورود نیمه حرفه ای
حركات آموزش جزئی بحث
سورس كد
خروجی ویندوز
خروجی اندروید
صدا گذاری
درج اطلاعات شما در بازی
درج اطلاعات درخواستی


بازی های آموزشی ای (حرفه ای)


محوریت اصلی این نوع بازی ها آموزش است. مانند آموزش الفبا فارسی یا انگلیسی و آموزش ریاضی

گرافیك آماده-حرفه ای
تعداد مراحل 0
منوی ورود حرفه ای
حركات آموزش كلی- ثبت امتیاز
سورس كد
خروجی ویندوز
خروجی اندروید
صدا گذاری
درج اطلاعات شما در بازی
درج اطلاعات درخواستی

دسته بندی

آموزشهای تخصصی
 آموزش ساخت بازی آنلاین-نوبتی(قسمت دوم)  آموزش ساخت بازی آنلاین-نوبتی(قسمت دوم)  آموزش ساخت بازی آنلاین-نوبتی(قسمت دوم)


آموزش ساخت بازی آنلاین-نوبتی(قسمت دوم)


در این بخش قصد داریم با استفاده از php دو پلیر رو وارد یک روم کنیم که آماده مبارزه باشن.

یه اسپرایت با نام spr_loading برای زمانی که پلیر منتظر ورود پلیر دوم و شروع بازی هست میسازیم.

چهار اسپرایت با نامهای spr_h_1_stop و spr_h_2_stop و spr_h_3_stop و spr_h_4_stop برای نمایش حالت ایست کاراکتر ها ایجاد میکنیم

یه اسپرایت هم برای نمایش جان به نام spr_healthbar ایجاد میکنیم.

یه آبجکت با نام obj_loading_player ایجاد میکنیم و این آبجکت رو در لابی یا محل انتظار قرار میدیم که پلیر منتظر پلیر بعدی هست

در ایونت Create همین آبجکت کدهای زیر رو وارد میکنیم

http_get(string('https://gmstudio.ir/online_tenbase/player.php?name=')
+string(global.username)+string('&hero=')+string(global.userhero))

get = ''

image_speed=0.5

show=0
size=0


alarm[0]=150
  • خط اول , دوم اطلاعات کاربر (نام و کاراکتر انتخابیش) رو به سرور ارسال میکنیم تا ثبت بشه
  • خطوط 4 تا 9 چند متغییر ایجاد کردیم که بعدا لازممون میشه
  • خط 12 آلارم رو برابر 150 قرار میدیم که برابر 5 ثانیه میشه و قراره کدهای بررسی سرور رو در این ایونت قرار بدیم تا چک کنه ببینه کاربر دیگه ای وارد شده که بازی رو شروع کنیم یا خیر

در ایونت آلارم کدهای زیر رو قرار میدیم .

get = http_get(string("https://gmstudio.ir/online_tenbase/start.php?name=")
+string(global.username)+string('&hero=')+string(global.userhero))
alarm[0]=150
  • خط اول و دوم اطلاعات ما رو به سرور ارسال میکنه تا اطلاعات جدید رو در ایونت .http. دریافت کنیم
  • خط سوم مجددا ایونت الارم رو برابر 150 قرار میدیم یعنی 5 ثانیه.

در ایونت http کدهای زیر رو وارد میکنیم

var type = ds_map_find_value(async_load,'id');
    if type == get
    {
        if ds_map_find_value(async_load,'status') == 0
        {
            var requestResult = ds_map_find_value(async_load,'result');
            var resultMap = json_decode(requestResult);
            var list = ds_map_find_value(resultMap, "default");
            top_rank_size = ds_list_size(list);
            size=real(top_rank_size);
            for (var n = 0; n < ds_list_size(list); n++;)
            {
                var map = ds_list_find_value(list, n);
                var curr = ds_map_find_first(map);
                while (is_string(curr))
                {  
                 
                name[n] = ds_map_find_value(map, "name");
                hero[n] = ds_map_find_value(map, "hero");
                
                curr = ds_map_find_next(map, curr);
                } 
     
                show = ds_map_find_value(map, "show");                      
                    
                ds_map_destroy(map);
            }
            ds_list_destroy(list);
            ds_map_destroy(resultMap);
        }
    }
  • با استفاده از این کدها متغییر های name , hero , show رو از سرور دریافت خواهیم کرد.

در ایونت .step. کدهای زیر رو وارد میکنیم

if(show='1' or show='2')
{
global.e_username=string(name[0])
global.e_userhero=real(hero[0])

global.tern=real(show)

room_goto_next()
}
  • توی این خطوط بررسی میکنیم اگه اطلاعات از سرور دریافت شده باشه اطلاعات دشمن رو به روز کرده و میریم روم بعدی (اگه سه روم ندارین سومین روم رو هم ایجاد کنید)

یه آبجکت ایجاد کرده در روم سوم قرار میدیم با نام obj_helthbar این آبجکت برای نمایش هلث پلیر و دشمن هست

کدهای زیر رو در ایونت draw این آبجکت وارد میکنیم

draw_healthbar(x+143,y+66,x+291,y+85,global.heath,c_black,c_aqua,c_aqua,0,1,0)
draw_healthbar(x+496,y+66,x+344,y+85,global.e_heath,c_black,c_aqua,c_aqua,0,1,0)

draw_set_colour(c_white)
draw_text(x+180,y+43,global.username)
draw_text(x+457,y+43,global.e_username)

draw_sprite(sprite_index,0,x,y)

خط اول و دوم هلث پلیر و دشمن رو در مختصات خاصی رسم میکنه

خط 4 و 5 و 6 نام پلیر و نام دشمن پلیر رو با رنگ سفید رسم میکنه

خط 8 هم اسپرایتمون رو رسم میکنه برای زیبایی

یه آبجکت با نام obj_player ایجاد کرده تو روم سوم میزاریم

در ایونت Create این آبجکت کدهای زیر رو وارد میکنیم

image_speed=0.2

if(global.userhero=1)
{sprite_index=spr_h_1_stop}
if(global.userhero=2)
{sprite_index=spr_h_2_stop}
if(global.userhero=3)
{sprite_index=spr_h_3_stop}
if(global.userhero=4)
{sprite_index=spr_h_4_stop}
  • این کدها فقط بررسی میکنه کدوم کاراکتر رو انتخاب کردیم و اسپرایت همون رو برامون نمایش میده

یه آبجکت با نام obj_enemy ایجاد کرده تو روم سوم میزاریم

در ایونت Create این آبجکت کدهای زیر رو وارد میکنیم

image_speed=0.2
image_xscale=-1

if(global.e_userhero=1)<
{sprite_index=spr_h_1_stop}
if(global.e_userhero=2)
{sprite_index=spr_h_2_stop}
if(global.e_userhero=3)
{sprite_index=spr_h_3_stop}
if(global.e_userhero=4)
{sprite_index=spr_h_4_stop}
  • این کدها فقط بررسی میکنه کدوم کاراکتر رو انتخاب کردیم و اسپرایت همون رو برامون نمایش میده فقط خط دوم اسپرایتمون رو برعکس میکنه چون این ابجکت دشمنه ما هست با این خط دو کاراکتر روبه روی هم قرار میگیرن

تو سرور یا هاست یه فایل خالی با نام start.txt ایجاد میکنیم 

بعد یه فایل با نام player.php ایجاد میکنیم و کدهای زیر رو داخلش وارد میکنیم.

<?php

$user=$_GET['name'];
$hero=$_GET['hero'];

$read = file("start.txt");

foreach($read as $name)

{
$old_user=$name; 
}


$char=substr_count($old_user,"±");
if($char!=0)
{
$myfile = fopen("start.txt", "w");
fclose($myfile); 
$old_user='';
}


if($old_user!='')
{
$myfile = fopen("start.txt", "w");
fwrite($myfile,$old_user."±".$user.'°'.$hero);
fclose($myfile);
}
else
{
$myfile = fopen("start.txt", "w");
fwrite($myfile,$user.'°'.$hero);
fclose($myfile);
}

?>

 

  • خط 3 و 4 دو متغییر رو که از سمت گیم میکر ارسال شده دریافت میکنیم
  • خط 6 تا 12 محتویات فایل start.txt رو میخونیم و در متغییر $old_user ذخیره میکنیم
  • خط 15 تعداد کاراکتر ± موجود در محتویات فایل start.txt رو برمیگردونیم (چون اطلاعات دو پلیر رو با ± از هم جدا میکنیم پس اگه این کاراکتر وجود داشته باشه یعنی دوتا پلیر داریم)
  •  خط 16 تا 21 اگه تعداد این کاراکترمون صفر نباشه محتویات فایل رو خالی کرده و متغییر $old_user رو خالی میکنیم (این حالت یعنی دو پلیر قبلا وارد شده و باهم بازی کردن و این پلیر جدید باید منتظر یه پلیر دیگه باشه پس فایل رو پاک میکنیم برای ثبت اطلاعات این پلیر)
  • خط 24 بررسی میکنیم اگ فایل start.txt خالی نباشه خط 25 تا خط 29 اجرا بشه و اگه خالی باشه کدهای خط 31 تا 35 اجرا بشه.
  • خط 25 تا 29 اطلاعات پلیر منتظر (پلیر موجود) رو با ± از اطلاعات پلیر جدید از هم جدا کرده در فایل ثبت میکنیم (نام و کاراکتر انتخابی پلیر رو با استفاده از ° از هم جدا میکنیم)
  •  خط 31 تا 35 اطلاعات پلیر جدید در فایل ثبت میکنیم (نام و کاراکتر انتخابی پلیر رو با استفاده از ° از هم جدا میکنیم)

 آموزش ساخت بازی آنلاین-نوبتی(قسمت دوم)

 یه فایل دیگه با نام start.php ایجاد کرده و کدهای زیر رو داخلش وارد میکنیم

<?php

$user=$_GET['name'];

$array = array();

$read = file("start.txt");
foreach($read as $name)
{$file=$name; }


$char=substr_count($file,"±");
if($char!=0)
{

$users=explode("±",$file);

$users1=explode("°",$users[0]);
$users2=explode("°",$users[1]);

if($user==$users1[0])
{
array_push($array,array("name"=>"$users2[0]","hero"=>"$users2[1]"));
array_push($array,array("show"=>"1"));
}
else
{
array_push($array,array("name"=>"$users1[0]","hero"=>"$users1[1]"));
array_push($array,array("show"=>"2")); 
}


$print = json_encode($array);

echo $print;


}
?>

 

  •  خط سوم نام پلیر درخواست کننده رو میگیریم
  • خط 5 یه متغییر از نوع آرایه ایجاد میکنیم بعدا لازم داریم
  • خط 7 تا 9 اطلاعات فایل start.txt رو میخونیم
  • خط 12 تعداد کاراکتر ± موجود در محتویات فایل start.txt رو برمیگردونیم (چون اطلاعات دو پلیر رو با ± از هم جدا میکنیم پس اگه این کاراکتر وجود داشته باشه یعنی دوتا پلیر داریم)
  • خط 13 بررسی میکنیم اگه کاراکتر ± داخل فایل موجود باشه (یعنی اگه دو پلیر وجود داشته باشه) کدهای خطوط 23 تا 35 رو اجرا میکنیم
  • خطوط 16 و 18 و 19 به ترتیب اطلاعات دو پلیر رو از هم جدا کرده بعد نام و شماره کاراکتر پلیرها رو از هم جدا میکنیم 
  • خط 21 بررسی میکنیم اگه پلیر درخواست دهنده پلیر اول باشه کدهای خطوط 23 و 24 رو اجرا میکنیم در غیر این صورت کدهای خطوط 28 و 29 اجرا میشه
  • خط 23 و 24 نام پلیر دوم رو در متغییر ارایه خودمون برای نمایش به کاربر اول (درخواست دهنده )ذخیره میکنیم و بعد متغییر show رو برابر یک وارد میکنیم به آرایه که یعنی پلیر درخواست دهنده پلیر اول ما هست.
  •  خط 28 و 29 نام پلیر اول رو در متغییر ارایه خودمون برای نمایش به کاربر دوم (درخواست دهنده) ذخیره میکنیم و بعد متغییر show رو برابر دو وارد میکنیم به آرایه که یعنی پلیر درخواست دهنده پلیر دوم ما هست.
  •  خط 33 و 35 متغییر آرایه خودمون رو تبدیل به جیسون کرده و نمایش میدیم.

 از بازی خروجی گرفته دو بار اجرا کرده تست میکنیم نتیجه میشه این

 آموزش ساخت بازی آنلاین-نوبتی(قسمت دوم)

 فایلهای آموزش رو میتونید از لینک زیر دانلود کنید.



Download

نویسنده:

tfh1368





نظرات


نام: احمدرضا

27 آبان 1396
سلام آموزش خیلی خوب و مفیدی بود بابت زحمتش خیلی ممنون لطفا در صورت امکان آموزش های دیگه ای هم در این رابطه بگذارید با تشکر

نام: ایران رادا

7 دی 1396
حتما بخوانید با سامانه افزایش بازدید ایران رادا رتبه گوگل و الکسا سایتتان را بهبود دهید. ویژگی های استفاده از سامانه افزایش بازدید ایران رادا : 1 ) بهبود رتبه الکسا 2 ) بهبود جایگاه سایت در گوگل 3 ) قدرت بسیار زیاد نسبت به پاپ آپ 4 ) بهبود بانس ریت و پیج و ویو و تایم سایت 5 ) قیمت مناسب و تاثیر گذاری بالا به ما اعتماد کنید و یکبار تست کنید لینک سفارش : https://goo.gl/rQpcqs در صورت نیاز به هرگونه مشاوره با ما تماس بگیرید ☎️ تلفن : 03136511074 و 09395304616

نام: مهیار

29 دی 1399
سلام. خسته نباشید میخاستم بپرسم که با این کد ها یازی چند نفر میشه ساخت؟
نام: tfh1368

17 فروردین 1400
بله حتما

نام: سینا

15 خرداد 1400
با درود فراوان اول از همه بابت اموزش های بسیار مفیدتون و زحمتی که می کشید بسیار سپاسگزارم دوم اینکه هر 4 بخش اموزش لینک های دانلود اموزش فعال نیستن لطفا اگر ممکنه لینک های اموزش رو از نو بذارم با سپاس فراوان
نام: tfh1368

26 خرداد 1400
چشم

نام: مهیار

17 خرداد 1400
سلام.ببخشید فایل اموزش رو دوباره اپلود میکنید پاک شده ممنون
نام: tfh1368

26 خرداد 1400
چشم بررسی میشه

نام: majid

2 اسفند 1400
استاد لینک اموزش خرابه