«یا اللهُ یا رَبِّ یا حَیُّ یا قَیّوم یا ذَالجَلالِ وَ الاکرام اَسئَلُکَ بِاسمِکَ اَلعَظیم اَلاَعظَم اَن تَرزُقَنی رِزقاً حَلالاً طَیِّباً بِرَحمَتِکَ الواسِعَه یا اَرحَمَ الرّاحِمِین.»
گیم میکر :: گیم اور

گیم اور


خصوصی نظر نذارید نمی تونیم جواب بدیم.

عضو کانال تلگرام ما بشید توش گروه هم می گیم

لینک کانال خصوصی گیم اور :

https://t.me/gameoverblog

پیوندهای روزانه
پیوندها

۱۱۵ مطلب با موضوع «گیم میکر» ثبت شده است

gameover.blog.ir

۰ نظر موافقین ۱ مخالفین ۰ ۱۳ مهر ۹۵ ، ۲۱:۱۸
Microsoft Games

gameover.blog.ir

۰ نظر موافقین ۰ مخالفین ۰ ۱۳ مهر ۹۵ ، ۲۱:۰۵
Microsoft Games

gameover.blog.ir

۱ نظر موافقین ۰ مخالفین ۰ ۰۴ خرداد ۹۵ ، ۱۷:۴۳
مدیرکل

gameover.blog.ir

به آدرس زیر رفته و فایلهای داخلش رو پاک کنید:

my Documents\GameMaker\Backups

C:\Users\userName\Documents\GameMaker\Backups

C:\Users\userName\AppData\Local\Temp\msdtadmin


به جای userName پوشه ای که ام کاربری هست رو باز کنید.

۰ نظر موافقین ۰ مخالفین ۰ ۱۹ فروردين ۹۵ ، ۰۹:۴۷
مدیرکل
هرچند گیم میکر منسوخ شده ولی به درخواست دوستان گذاشتم :


execute_program('uploader.exe','',false)


۰ نظر موافقین ۰ مخالفین ۰ ۰۱ اسفند ۹۴ ، ۱۴:۵۴
مدیرکل
۰ نظر موافقین ۰ مخالفین ۰ ۰۱ اسفند ۹۴ ، ۱۴:۳۵
مدیرکل

دانلود کتاب LEvel up شامل نکات ابتدایی ساخت بازی ها

http://s6.picofile.com/file/8238758676/level_up.jpg

http://opizo.com/OUJdvH

۰ نظر موافقین ۰ مخالفین ۰ ۲۵ بهمن ۹۴ ، ۰۸:۴۷
مدیرکل
gameover.blog.ir
به لینک برید و چند ثانیه صبر و رد تبلیغ رو بزنید:
http://opizo.com/HQwAFc

۰ نظر موافقین ۰ مخالفین ۰ ۱۱ بهمن ۹۴ ، ۰۳:۲۶
مدیرکل

منبع:gameover.blog.ir

قبلا از دستور sleep استفاده میشد . ورودی بر حسب میلی ثانیه بود. هر ثانیه معادل 1000 میلی ثانیه بود و برای اینکه بگیم 3 ثانیه صبر کن بعد برو خط بعدی می گفتیم sleep(3000) اما الان قضه فرق داره هر 30 واحد زمان(چون سرعت پیشرفض روم هست 30 و اگه تغییرش بدیم باید تغییر بدیم کد رو ) برای آلارم معال یک ثانیه هست. پس 3 ثانیه میشه 3*30=90 واحد زمانی.

مثال: پروژه ای در گیم میکر /استادیو بسازید که بعد از 3 ثانیه یک نمونه از object2 روی room ایجاد بشه.

حل:

ابتدا دو ابجکت روی room می ذاریم. object1 و object2

به object1 رویداد create و alarm[0] اضافه کنید و به ترتیب کد های زیر رو برای هر بخش نسبت بدید:

//رویداد ایجاد شی یک
seconds=3
alarm[0]=room_speed*seconds



//رویداد آلارم صفر
instance_create(10,10,object2);

دقت کنید به کد و توضیحاتی که دادم.

اینم فایل sample:


اما قاعده ی کلی:
به جای اون 30 بهترین کار اینه که از room_speed استفاده کنیم که متغیر تعریف شده هست و سرعت روم رو تغییر هم بدیم خودش میشناسه.
فرمول کلی هم اینه سرعت روم ضرب در تعداد ثانیه. مثال:
alarm[0]=room_speed*3 باعث میشه بعد از 3 ثانیه  آلارم صفر اجرا بشه.

مثال کلی :
seconds=3
instance_deactivate_all(self); alarm[0]=seconds*room_speed;//This will un-pause the game in the amount of time you selected
در مثال بالا دستور اول همه ی موجودیت ها رو غیر فعال می کنه به جز self یعنی خود گیم ابجکت فعلی رو .
وقتی همه چیز غیر فعال شد بعدش آلارم صفر رو اجرا می کنه بعد از تعداد ثانیه ای هایی که در متغیر seconds می ریزیم.(متغیر seconds دلخواه هست و در اینجا عدد 3 رو بهش دادیم)



منابع:

http://docs.yoyogames.com/source/dadiospice/002_reference/objects%20and%20instances/instances/deactivating%20instances/instance_deactivate_all.html

http://gmc.yoyogames.com/index.php?showtopic=554091

۰ نظر موافقین ۰ مخالفین ۰ ۲۴ دی ۹۴ ، ۱۴:۵۸
مدیرکل

نکته:اولا این کتاب خیلی کمیاب هست و حتی توی سایت های خارجی هم بسیار نادر هست ولی ما این کتاب رو به رایگان براتون می ذاریم تا دانلود بفرمایید.

تعداد صفحه: نزدیک 800 


نکته ی مهم : افراد عادی که با انجین های بازی سازی unity کار نکردن یا کلا قصد ساخت بازی (چه دو بعدی چه سه بعدی) رو دارن نیازی به این کتاب نیست و باید اول بدون درگیر شدن با جزئیات،برن مستقیم با یونیتی کار کنن .



چون در openGL فقط کارهای گرافیک رو انجام میدیم تحت Visual c ++ و خروجی اندروید و غیره هم در کار نیست.(و الان هم واسه عهد بوقه و شما بهتره برید سمت unity)، یه خروجی صرفا EXE می سازیم که کتابخانه ها و فایل های DLL و Lib یا ... رو به محیط ویژوال استادیو add reference و تیک می زنیم و فایل dll رو در c:\windows\system32 میریزیم و lib رو هم در پوشه ی include و الی آخر... .

این کتاب برای زمانی هست که شما حرفه ای یونیتی یا انیجن های دیگه می شید.بین انجین های دیگه مثل cry یا unreal و unity و game maker studio (خود گیم میکر منسوخ هست و حتما استادیو خروجی اندروید میده) و OGRE و torque 3d و  S2Engine HD  هم هم خودتون مختارید با چی کار کنید. اما بنده توصیه ام اینه که شروع کارتون با unity باشه بعدش حالا خواستید برید سمت انجین های دیگه تا تست کنید و خودتون تشخیص بدید برتری های یونیتی رو. فقط فیزیک یونتیی کمی توی قسمت Rigid body و سرعت های بالا ممکنه ضعیف عمل کنه که اونا رو باید با تکنیک پیاده سازی کرد و شاید آنریل توی سیستم های فیزیک قوی تر باشه.اما باز هم شروع کار یونیتی از نظر ما.


بعد از تسلط به یونیتی و شروع بازی سازی،اونجایی که دوست دارید مطالعات آزاد تری رو در زمینه ی کدنویسی سخت تر با open GL انجام بدید(هر چند منسوخ هست) فقط به صرف اینکه ایده های ساخت انجین های بازی سازی رو درک کنید می تونید از کتب openGL مثل این و سایر کتب و directX و .... کمک بگیرد.(فرق open GL هم با directX اینه که openGL از توابع بیشتری استفاده می کنه و اشیای سه بعدی و ترسیمات texture و فایل های عکس و انداخت اونا روی مدل و shader ها(متریال های روی مدل ها) و نورپردازی ها و سایه گذاری ها و به طور کلی فقط کار گرافیک رو انجام میده و با صدا و سایر جنبه ها کاری نداره.(مباحث دیگه مثل openAL یا Cross Platform 3D Audio مربوط به صدا) و Directx هم جزو برنامه نویسی های حرفه ای تر هست که مستقیما با سحت افزار درگیر می شید و اونجا برای حرفه ای ها هست که دوست دارن کدهاشون با سرعت بیشتری بدون تبدیلات اضافه به فرمت اجرایی روی سیستم عامل ویندوز در بیاد و الی آخر...)

این شما و این یکی از بهترین کتاب های openGL (فقط حرفه ای ها مطالعه کنن و مبتدیان سعی کنید درگیر جزئیات این کتاب نشید که چطوری بازی بسازیم و از کجا شروع کنیم.اگه سوالی در رابطه با بازی سازی دارید در وبلاگ نظر بدید بنده ی حقیر راهنماییتون خواهم کرد انشاءا... . چون خودم مدت ها سر در گم بودم و چندین سال در این باب تحقیق کردم و البته باز هم بی سواد هستم در برابر اساتید و تمام شما بزرگواران. .و من ا... توفیق):


http://pxhst.co/avaxhome/ad/ac/0014acad_medium.jpeg

http://opizo.com/yrsFmQ

۱ نظر موافقین ۰ مخالفین ۰ ۱۹ دی ۹۴ ، ۱۱:۴۸
مدیرکل

منبع:gameover.blog.ir

http://www.mediafire.com/download/re9k885kapwhvs8/CustomHiScoreStudio.zip


HiscoreNew.png


http://software4me.org/dload/files/tutorials/CustomHiScoreStudio.zip


منبع:

http://gmc.yoyogames.com/index.php?showtopic=533357

http://docs.yoyogames.com/source/dadiospice/002_reference/social%20gaming/achievements%20and%20leaderboards/local%20high%20scores/index.html

۱ نظر موافقین ۰ مخالفین ۰ ۱۳ دی ۹۴ ، ۰۴:۴۱
مدیرکل

منبع:gameover.blog.ir

بای اینکار باید با پهنا و ارتفاع view بازی کنیم.

مثال :

رویداد Step:


if distance_to_object(obj_player)<=30 //////or put the whatever you want
{
view_hview[0]=360//////360 is the zoom out height
view_wview[0]=360//////360 is the zoom out width
}


if distance_to_object(obj_player)>=30
{
view_hview[0]=320/////set it back again to it's default
view_wview[0]=320/////set it back again to it's default
}

توضیحات بیشتر:
http://gmc.yoyogames.com/index.php?showtopic=510479
۰ نظر موافقین ۰ مخالفین ۰ ۰۶ دی ۹۴ ، ۰۱:۴۸
مدیرکل

منبع:gameover.blog.ir

http://s6.picofile.com/file/8229729568/shib.jpg

الان گیم میکر منسوخ هست و گیم میکر استادیو و یونیتی معمول تره. اما بازم این سورس رو برای شما میذاریم.

http://s6.picofile.com/file/8229729576/shib.gm81.html

۰ نظر موافقین ۰ مخالفین ۰ ۰۴ دی ۹۴ ، ۰۶:۲۰
مدیرکل
منبع :gameover.blog.ir

نکته : گروه ما یونیتی رو توضیه می کنه اما چون مبتدیان گیم میکر کار می کنن بعضی اوقات پاسخ گوی سوالات اونا هستیم.
(البته گیم میکر استادیو هم هنوز برای بازی سازی جایگاهی داره به شرطی که توی کدنویسی لمسی و ... بیشتر تحقق کنید)
با استفاده از این آموزش می تونید با php ارتباط بگیرید:
http://promakers.ir/showthread.php?tid=10070

<?php
//get.php
//Author:Sajjad3011
if (isset($_POST["x"]) && isset($_POST["y"]  )
{
$x=$_POST["x"];
$y=$_POST["y"];
}
   $dbhost = 'اسم هاست مای اس کیو ال';
   $dbuser = 'نام کاربری که برای دیتابیس نسبت دادیم روی هاست';
   $dbpass = 'رمز';
   $conn = mysql_connect($dbhost, $dbuser, $dbpass);
   

   if(! $conn )
   {
      die('Could not connect to host : ' . mysql_error());
   }
   
   $sql = 'INSERT INTO tableName '.
      '(x,y) '.
      'VALUES ( $x, $y )';
      
   mysql_select_db('test_db');
   $result= mysql_query( $sql, $conn );
   
   if(! $result )
   {
      die('Could not enter data: ' . mysql_error());
   }
   
   echo "Entered data successfully\n";
   
   mysql_close($conn);
?>

۰ نظر موافقین ۰ مخالفین ۰ ۲۹ آذر ۹۴ ، ۲۳:۵۵
مدیرکل
منبع:gameover.blog.ir
سلام دوستان.

اگه سوالی می پرسید لطفا پیام  رو خصوصی نذارید.

عمومی بذارید تا بتونیم پاسخ بدیم.

یکی از دوستان به نام حمید ش ق پیام گذاشته بود در مورد گیم میکر استادیو.سوالشم این بود :

- نحوه ورود رندوم و خودکار ماهی ها به بازی
2- دادن امتیاز + و - به ماهیا
3- حرکت صفحه بازی
خواهشا کمکم کنین برای پروژمه عجله دارم

--

اما پاسخ:

باید از توابع random یا irandom_range استفاده کنید  یا غیره.

مثال:




Create Event:

CODE
speed=3+random(2)
direction=round(random(360))
alarm[0]=50+random(150)



اینم برای آلارم :
Alarm 0 Event:
CODE
direction=round(random(360))
alarm[0]=50+random(150)




http://z11.invisionfree.com/GameMaker_Central/ar/t20.htm



اما راه دیگه :
برای دشمن این کد رو بذارید :
توی create:
مثال :
v_speed=2

توی step هم اینو :
اگر y>room_height شد x=random(room_width و  y=-50


کد بالا باعث میشه دشمن از بالا ی صحنه حرکت کنه به سمت پایین و وقتی y از ارتفاع روم(اتاق) بیشتر شد دوباره از بالا یعنی -50 شروع کنه.
x هم بین صفر تا حداکثر اندازه ی پهنای روم تنظیم میشه به صورت تصادفی.
سوالی بود بذارید.
۰ نظر موافقین ۰ مخالفین ۰ ۲۷ آذر ۹۴ ، ۰۲:۲۴
مدیرکل
منبع :gameover.blog.ir

http://www.mediafire.com/download/njb3v1oy0tyv2ah/Rope+Physics+Tutorial.gmz


کپی:
https://www.dropbox.com/s/s18r2ecq8ueqlb4/Rope%20Physics%20Tutorial.gmz
۰ نظر موافقین ۰ مخالفین ۰ ۱۴ آذر ۹۴ ، ۲۲:۵۰
مدیرکل
منبع:gameover.blog.ir

get name of  the other object name after collision with it,in game maker/studio


Collision Event :

در رویداد برخورد (collision) این کد رو بذارید:

with other
{
show_message(object_get_name(object_index)); }

۰ نظر موافقین ۰ مخالفین ۰ ۲۲ مهر ۹۴ ، ۰۲:۲۱
مدیرکل

منبع :gameover.blog.ir

هر چند game maker  و construct و ..... منسوخ هستن از نظر ما اما به علت درخواست دوستان فقط بعضی سوالات گیم میکر/استادیو رو پاسخ میدیم. و بیشتر تاکید ما روی یونیتی هست.

اما پاسخ:

فرض کنید هلیکپتر یک alarm داره هر چند ثانیه تیر ایجاد می کنه و می خوایم تیر بره سمت سرباز دشمن.

مثال می زنم باقیش با خودتون :

واسه هلی کوپتر یه الارم بذار هر چند ثانیه تیر ایجاد کنه(instance_create که احتمالا همینکار رو می کنی)
توی رویداد ایجاد(create) از ابجکت تیر هم کدی بنویس که حرکت کنه به سمت سرباز دشمن مثال:

کد :

if(instance_exists(sarbaz_obj))
{
move_towards_point(sarbaz_obj.x,sarbaz_obj.y,sarbaz_obj)
direction=point_direction(x,y,sarbaz_obj.x,sarbaz_obj.y)
speed =7
}
۰ نظر موافقین ۰ مخالفین ۰ ۲۲ مهر ۹۴ ، ۰۱:۵۲
مدیرکل
۰ نظر موافقین ۰ مخالفین ۰ ۲۱ مهر ۹۴ ، ۰۰:۴۷
مدیرکل

منبع:gameover.blog.ir

کلمه ی global و بعدش یه نقطه (.) و سپس اسم متغیر رو بنویس تمام.
مثال:
دو ابجکت ساز به نام های obj1 و obj2 .
دو روم بساز به اسم room1 و room2 .
obj1 رو بذار روی room1
obj2 رو بذار روی room2
--
obj1:
create:

کد :

global.My_cash=56 
mouse global left pressed:
کد :

room_goto(room2);
Draw:
کد :

draw_text(10,20,"room1" + "          :"+ string(global.My_cash));

obj2:
mouse global left pressed:
کد :

room_goto(room1);
draw:
کد :
draw_text(10,20,"room2" + "          :"+ string(global.My_cash));

اجرا بگیر و روی یک جای روم کلیک کن تا بین روم ها حرکت کنی و نتیجه رو ببینی.
اینم سورس با گیم میکر 8.1 (البته سورس مهم نیست چون توضیحات کامل بود و توی گیم میکر استادیو و ... هم می تونید استفاده کنید احتمالا اگه منسوخ نباشه)
http://s6.picofile.com/file/8215594726/globalVars.gm81.html
۰ نظر موافقین ۰ مخالفین ۰ ۱۳ مهر ۹۴ ، ۰۲:۰۸
مدیرکل
۰ نظر موافقین ۰ مخالفین ۰ ۱۲ مهر ۹۴ ، ۱۴:۲۷
مدیرکل
۰ نظر موافقین ۰ مخالفین ۰ ۱۱ مهر ۹۴ ، ۰۷:۵۱
مدیرکل
منبع:gameover.blog.ir
اگه یک متن طولانی داشته باشیم روی خط افقی می ره جلو و از room می زنه بیرون. برای جلوگیری از این مشکل باید هر جا خواستیم بره خط بعدی از کاراکتر "#" استفاده کنیم. (برای رفتن به خط بعدی باید بین متن علامت "#" بذارید.)
مثال :
توی رویداد DRAW اینو بذار تست بگیر تا متوجه منظورم بشید:
کد :
// alamate "#" baraye raftan be Next Row
draw_text(10,5,"salammercsalammercsalammercsalammercsala#mmercsalammercsalammercs#alammercsalamm ​ ercsalammercsalammercsalamme#rcsalammercsalammercsalammercsalammercsa#lammercsal ​ ammercsalammercsalamme#rcsalammercsalammercsalammercsalammercsalammercsalammercs ​ alammercsalammercsalammercsala#mmercsalammercsala#mmercsalammercsalammercsalamme ​rcsalammercsalammerc");

۱ نظر موافقین ۰ مخالفین ۰ ۱۱ مهر ۹۴ ، ۰۰:۳۱
مدیرکل
۰ نظر موافقین ۰ مخالفین ۰ ۱۰ مهر ۹۴ ، ۱۷:۵۱
مدیرکل


منبع : gameover.blog.ir

لینک پیکو فایل:

http://opizo.com/MyGezd

لینک کمکی مدیافایر:

http://opizo.com/HX5q7d


request_webPage_in_game_maker.pdf:


http://opizo.com/338X1g

تشکر یادتون نره.
۰ نظر موافقین ۰ مخالفین ۰ ۰۹ مهر ۹۴ ، ۲۳:۱۷
مدیرکل
۰ نظر موافقین ۰ مخالفین ۰ ۰۶ مهر ۹۴ ، ۰۴:۲۸
مدیرکل
draw_text(100,100, chr(97));
draw_text(100,150, ord('a'));
کپی از : gameover.blog.ir
ord('A');//out: 65

chr('65')';//out: 'A'
۰ نظر موافقین ۰ مخالفین ۰ ۲۹ شهریور ۹۴ ، ۱۸:۵۰
مدیرکل
14 ثانیه صبر و رد تبلیغ رو بزنید :

http://opizo.com/JQrH7Q


۰ نظر موافقین ۰ مخالفین ۰ ۲۵ شهریور ۹۴ ، ۲۱:۰۰
مدیرکل
منبع: gameover.blog.ir
برای اینکار باید به قسمت Global Game settings سربرگ Other برید.

http://s6.picofile.com/file/8209107150/disableDefautKey.jpg


البته بهتره با game maker studio کار کنید و همچنین یادتون باشه کدهای save نداریم و باید از توابع و فایل های ini استفاده کنید.
۰ نظر موافقین ۰ مخالفین ۰ ۰۷ شهریور ۹۴ ، ۱۹:۰۱
مدیرکل

منبع : gameover.blog.ir


توی رویداد key press Any key از گیم میکر استادیو اینو بذارید :


کد :

window_set_captionstring(keyboard_lastkey));//room_caption = string(keyboard_lastkey) ;
۰ نظر موافقین ۰ مخالفین ۰ ۰۱ شهریور ۹۴ ، ۰۲:۱۶
مدیرکل

منبع : gameover.blog.ir

بعضی از پروژه های گیم میکر استادیو هستن که توی خروجی apk خطای کامپایلر null زیر رو نشون می دن و build failed میشه.

کد:
BUILD FAILED
C:\Users\User\AppData\Local\Android\android-sdk\tools\ant\build.xml:650: The following error occurred while executing this line:
C:\Users\User\AppData\Local\Android\android-sdk\tools\ant\build.xml:691: null returned: 1
اما پروژه های دیگه شما بدون خطا به apk بیلد میشه.

هیچکس دلیل رو نمی دونه یا اکثرا می گن برو SDK یا JDK رو عوض کن یا گیم میکر استادیو رو حذف و نصب و .. کن.

اما علت اصلی از خود پروژه شماست.

علت اصلی این خطا در اغلب پروژه ها اینه که Display name و Package name رو درست ندادید.

باید برید به مسیر Global game Options->Android Tab->Display name و اسم مناسبی با کاراکتر های مجاز بدید.

مثلا نباید اسم دارای پرانتز باشه یا  فاصله یا حروف بزرگ یا کاراکترهای غیرمجاز و .... big grin

با تغییر اسم می تونید به راحتی خروچی apk بگیرید.

امیدوارم این آموزش مفید بوده باشه.winking
۱ نظر موافقین ۰ مخالفین ۰ ۳۱ مرداد ۹۴ ، ۱۵:۴۶
مدیرکل
اینو توی رویداد Step بذارید:
if (mouse_check_button_pressed(mb_left) && position_meeting(mouse_x,mouse_y,obj_knight)// && is a logical operator equivalent too 'and', when you have and it returns if both are true else //false
    {
        //code
    }

۰ نظر موافقین ۰ مخالفین ۰ ۲۹ مرداد ۹۴ ، ۲۱:۴۷
مدیرکل
۱ نظر موافقین ۰ مخالفین ۰ ۲۸ مرداد ۹۴ ، ۰۵:۳۱
مدیرکل
x رو به توان n می رسونه :

power(x, n);


۰ نظر موافقین ۰ مخالفین ۰ ۲۷ مرداد ۹۴ ، ۱۹:۲۴
مدیرکل

ویرایش شد:( یکشنبه - ۲۵ مرداد ۱۳۹۴)

ابتدا اسپرایت منوی ثابت رو با نام  s_menu ایجاد کنید سپس یک ابجکت به نام o_control بذارید روی room و سپس:

ابتدا کد غلط :

اینو بذارید توی رویداد Draw  :

x1=view_xview+ window_get_width()/2-sprite_get_width(s_icon)/2
y1=view_yview + sprite_get_height(s_icon)/2+10
draw_sprite_ext(s_menu,image_index,x1,y1,image_xscale,image_yscale,image_angle,image_blend,image_alpha)

[تصویر: menuSabet.gif]

---

اما کدهای بالا یک باگ بزرگ داشت .
 اصلاح :

نکته بسیار مهم:
به جای window_get_width حتما از view_wport[0] و به جای window_get_height حتما از view_hport[0] استفاده کنید چون وقتی روم رو full screen می کنید ممکنه به هم بریزه. اما با view_hport و view_wport به هم نمی ریزه.winking

مثال :
توی رویداد Draw اسپرایت spr_menu رو اینطوری در بالا و وسط room و view ی فعلی نمایش میدیم:
کد درست اینه :
x1=view_xviewview_wport[0]/2-sprite_get_width(spr_menu)/2
y1
=view_yview sprite_get_height(spr_menu)/2+10
draw_sprite_ext
(spr_menu,image_index,x1,y1,image_xscale,image_yscale,image_angle,image_blend,image_alpha

امضا:
۰ نظر موافقین ۰ مخالفین ۰ ۲۵ مرداد ۹۴ ، ۰۴:۱۸
مدیرکل

 منبع :gameover.blog.ir

برای اینکه دکمه توی صفحه view بمونه و حتی راه بری بازم از صفحه خارج نشه باید به طور داینامیک توی رویداد draw بیای x و y آبجکت دکمه رو بذاری توی x و y دوربین(view):

کد PHP:
x=view_xview+window_get_region_width()/2-sprite_width/2
y
=view_yview 
view_xview و y=view_yview مختصات ابتدای view رو می ده(بالا و سمت چپ)
-
window_get_region_width()/2-sprite_width/2 فرمولی هست که نصف پهای پنجره رو منهای نصف پهنای اسپرایت می کن تا ابجکت از لحاظ عرضی در وسط صفحه بیفته و بالای صفحه.
فرمول بالا واسه اسپرایت بود . اگه بخوای دکمه رو بذاری اینطوری بذار:

اینم سورس کامل برای ساخت دکمه ی لمسی یا کلیدهای مجازی اندریود در گیم میکر استادیو:
[تصویر: spr_Down_0.jpg][تصویر: spr_Up_0.jpg][تصویر: spr_Right_0.jpg][تصویر: spr_Left_0.jpg]
http://s6.picofile.com/file/8192395026/T...l.zip.html

--
اینم توضیحات امین بلاگ 76 :

ساخت کلید مجازی با روش ساده ی خود گیم میکر استدیو:
1.یک آبجکت به اسم دلخواه مثلا obj_vkey_crtl بسازید
2.برای ایجاد کردن هر کدوم از کلید های دلخواه باید از تابع زیر استفاده کنید و مقدار دهی کرده و داخل یک متغیر بریزید
تابع:
کد:
virtual_key_add(x, y, w, h, keycode);
x,y :مختصات قرار گرفتن کلید ها داخل رابط کاربری (gui) هست
w,h :طول و عرض کلید ها
keycode: کلیدی که قراره کلید مجازی ما نماینده اون کلید باشه مثلا vk_left
مثال:
کد:
up = virtual_key_add(32, 32, 64, 64, vk_up);

3.الان کلید مجازی ساخته شده و فقط کافیه اون رو داخل GUI بازی به روشی که الان میگم draw کنید:
داخل ایونت Draw GUI همون آبجکت برای نمایش کلید ها باید از تابع زیر استفاده کنید:
کد:
virtual_key_show(key)
که به جای key باید متغیری که کلید ساخته شده رو داخلش ریختیم بنویسیم مثلا ما در مثال ساخت کلید ، کلید ساخته شده رو داخل متغیری به اسم up ذخیره کردیم بنابر این در تابع ذکر شده باید به جای key ، نام متغیر یعنی up رو بنویسیم
(لازم به ذکره که بگم بخش سوم این آموزش الزامی نیست یعنی میتونید کلید ها رو قابل نمایش نذارید)
[تصویر: vkek.gif]
سورس گرافیکی امین بلاگ 76 :
http://s4.picofile.com/file/7858193759/android_virtual_key_aminblog76_.rar.html


http://s4.picofile.com/file/7858145585/1.jpg

http://s4.picofile.com/file/7858148602/2.jpg

در مورود سورس امین بگم کار بهینه ای کرده.

کارش به این صورته که اومده فقط یه اسپرایت فلش جهت دار گذاشتی و در چهار جهت اونو چرخش داده. این کارو به وسیله ی تغییر پارامتر (پارامتر دوم) subimage در تابع draw_sprite مقدار دادن 0(باعث چرخش اسپرایت به بالا میشه) و 1(پایین) و 2(چپ) و 3(راست). اون قسمت کد که توضیح دادم اینه :
کد PHP:
draw_sprite(spr_keys,0,32*3,32)

//virtual_key_show(key_down)
draw_sprite(spr_keys,1,32*3,32*5)

//virtual_key_show(key_left)
draw_sprite(spr_keys,2,32,32*3)

//virtual_key_show(key_right)
draw_sprite(spr_keys,3,32*5,32*3

منبع :

http://promakers.ir/showthread.php?tid=5761&pid=69129#pid69129
۲ نظر موافقین ۰ مخالفین ۰ ۱۸ مرداد ۹۴ ، ۱۵:۰۰
مدیرکل

 منبع :gameover.blog.ir

توی کد فلش چپ اینو بذارید

image_scale = -1

توی کد فلش راست اینو:

image_scale =+1

اجرا کنید .

وقتی فلش چپ می زنید کاراکتر به چپ نیگا می کنه و وقتی فلش راست می زنید کاراکتر به راست نیگا می کنه.

اگه نمونه یونیتی رو خواستید باید با transform.localScale فکر می کنم کار کنید. سوال بود بپرسید

۰ نظر موافقین ۰ مخالفین ۰ ۱۸ مرداد ۹۴ ، ۱۰:۳۹
مدیرکل

منبع :gameover.blog.ir
این سورس رو مدت ها قبل به درخواست mgood ساخته بودم.
درخواست کننده:alibar80
سازنده:sajjad3011

شات:
[تصویر: light_small.gif]
http://s3.picofile.com/file/8205001718/light.gif
سورس:
http://opizo.com/RrHWa1


توضیح:
در این سورس،توی اتاق تاریک نور آبی ایجاد می کنیم که هرجا player می ره دورش هست و اون ناحیه رو روشن می کنه.با گیم میکر 8.1 و ورژن های بالاتر باز کنید یا پسوند رو عوض کنید.

۰ نظر موافقین ۰ مخالفین ۰ ۱۷ مرداد ۹۴ ، ۱۶:۲۵
مدیرکل

 منبع :gameover.blog.ir

درخواست کننده:yasa
سازنده: sajjad3011
شات:

:
[تصویر: shot_small.gif]
http://s3.picofile.com/file/8204983168/shot.gif
سورس:
http://s6.picofile.com/file/8204983150/i...1.zip.html
توضیح :
در این سورس می تونید با کلیک توی جاهای خالی هر room ستاره ایجاد کنید و با راست کلیک روی ستاره ها اونا رو destroy(حذف و نابود) کنید.
با فشردن دکمه ی next به room بعدی و با فشردن دکمه ی previous به room قبلی می ریم.
بعد از ایجاد ستاره در هر room برای ذخیره ی دائم و حتی بازیابی پس از بستن بازی و اجرای مجدد باید روی دکمه ی ذخیره کلیک کنید.
اسم روم ها رو هم هرچی دوست دارید بذارید.سورس انعطاف لازم رو داره و اسم روم ها رو به صورت داینامیک تشخیص میده.
-
هر سورسی خواستید پ.خ کنید تا من بسازم.

۰ نظر موافقین ۰ مخالفین ۰ ۱۷ مرداد ۹۴ ، ۱۶:۲۵
مدیرکل

instance_count تعداد ابجکت ها رو بر می گردونه.


مثال : کد زیر حدود 100 ابجکت ایجاد می کنه:


Example:

while (instance_count < 100)
   {
   instance_create(random(room_width), random(room_height), obj_Star);
   }
 منبع :gameover.blog.ir
۰ نظر موافقین ۰ مخالفین ۰ ۱۷ مرداد ۹۴ ، ۰۵:۰۴
مدیرکل

تا آخرش بخونید لطفا

http://gameover.blog.ir

منبع :

http://promakers.ir/showthread.php?tid=10091&pid=108607

در کدهای ارائه قبلی توسط سایر دوستان،تولید اعداد تصادفی محدود بود اما اینجا من یاد میدیم تا تعداد تقریبا نامحدود عدد تصادفی تولید کنیم.
اینم الگوریتم و کد کاملا تست شده ای که بعد از چند روز فکر کردن بالاخره نوشتمش.

//game maker script
//Generating random numbers without repeating
//Author:sajjad3011....gameover.blog.ir....
//
n=8
a[0]=irandom_range(0,n)
for(i=1;i<=n;i++)
{
a[i]=irandom_range(0,n);
for(j=0;j<=(i-1);j++)
 {
   if(a[i]==a[j])
   {
    a[i]=irandom_range(0,n);
    j=0;i--;
   }//if
  }//for j
}//for i
-----------
حالا برای VB6 :

یک listview و یک command button بذارید روی فرم حله

http://s5.picofile.com/file/8153302468/random_bi_tekrar_vb6.jpg

اینم کد دیگه چی میخوایدbig grin :

کد:
'Author:sajjad3011
Private Sub Command1_Click()
List1.Clear

Const n = 9
Dim a(0 To n) As Integer


' Generate random value between 1 and n
a(1) = CInt(Int((n * Rnd()) + 1))

For i = 2 To n
a(i) = CInt(Int((n * Rnd()) + 1))
For j = 1 To i - 1
   If (a(i) = a(j)) Then
  
   a(i) = CInt(Int((6 * Rnd()) + 1))

    j = 1
    i = i - 1
   End If 'if
  Next j 'or j
Next i 'for i

For i = 1 To UBound(a)
List1.AddItem (a(i))
Next i
End Sub




'----------------------------
حالا بهترین الگوریتم برای تولید اعداد تصادفی :
منبع :
https://en.wikipedia.org/wiki/Fisher%E2%80%93Yates_shuffle
در روش های قبلی از همون اول عناصر رو به رندوم تولید می کردیم و بررسی می کردیم و به صورت غیر تکراری توی عناصر آرایه می ریختیم این کار بهینه نیست.
در این روش  دو مرحله ی ساده رو انجام می دیم:

1. ابتدا اعداد 0 تا n-1 رو می ریزیم توی خونه های آرایه.
2. سپس می یایم محتوای خونه های آرایه رو به صورت رندوم جابجا می کنیم با هم.
اینم الگوریتمش :
for i from 0 to n − 2 do
       j ← random integer such that i ≤ j < n
       exchange a[j] and a[i]
نکته:
توی یونیتی تابع تولید عدد تصادفی اینه (خودتون می تونید ازش الگو بگیرید با الگوریتم بالا):

Random.Range(min,max)




مثال سیشارپ:

for(k=0;k<myarr.length-2;k++)
{
a = random.range(0,n);
b = random.range(0,n);

temp=myarr[a];
myarr[a]=myarr[b];
myarr[a]=temp;

}
۱ نظر موافقین ۰ مخالفین ۰ ۱۴ مرداد ۹۴ ، ۱۱:۱۱
مدیرکل
۰ نظر موافقین ۰ مخالفین ۰ ۱۰ مرداد ۹۴ ، ۰۳:۰۲
مدیرکل

http://promakers.ir/showthread.php?tid=11780

---

اینو بذار توی رویداد mouse Global Left Button(اشتباهی توی Mouse LEft نذاری حتما باید Global باشه یعنی توی سراسر room که کلیک می کنیم) :
کد :
x_clicked=mouse_x;
y_clicked=mouse_y;
direction=point_direction(x,y,x_clicked,y_clicked)
image_angle=direction;
harkat=true
//move_towards_point(mouse_x,mouse_y,4) 

اینم بذار توی Step :
کد :
if(harkat==true){
room_caption="true";
if 
speed>10 speed-=0.5;

if(
distance_to_point(x_clicked,y_clicked)<10
{
speed=0
harkat
=false;
}
else

speed+=0.5;
}


اینم توی Create(یعنی وقتی ابجکت ایجاد میشه تازه موقع اجرا روی روم لود میشه):
کد :
globalvar harkat,x_clicked,y_clicked;
harkat=false;
۰ نظر موافقین ۰ مخالفین ۰ ۰۸ مرداد ۹۴ ، ۲۱:۴۹
مدیرکل

میخواستم ببینم تو گیم میکر امکانش هست از کدی به عنوان شبیه ساز کلیدی از کیبورد استفاده کرد؟ چنین چیزی اصلا امکان پذیر هست؟


آره هست.
مختصات ناحیه ی مستطیلی اسپرایت دکمه رو که می خوای روش کلیک بشه کار فلان کلید رو انجام بده ربط می دی بهش اینطوری:

کد :
virtual_key_add(xywhkeycode); 

مثلا می خوای اگه روی اسپرایت  spr_Left
 [تصویر: spr_Left.gif]
که در محدوده ی x=32,y=32 و width=64,height=64 هست کلیک کردیم رویداد vk_left اجرا بشه داریم :
کد :
virtual_key_add(32326464vk_left);
یا
virtual_key_add
(objButtonLeft.xobjButtonLeft.yobjButtonLeft.sprite_widthobjButtonLeft.sprite_heightvk_left); 

فرض کردم ابجکتی دارم که عکس یا اسپرایت فلش چپ روشه و اسمش objButtonLeft هست.



http://s4.picofile.com/file/7858145585/1.jpg

http://docs.yoyogames.com/source/dadiosp...y_add.html
۱ نظر موافقین ۰ مخالفین ۰ ۰۲ مرداد ۹۴ ، ۰۲:۳۵
مدیرکل

باید اولا یه اسپرایت(فایل gif حاوی انیمیشن راه رفتن) از قبل بسازی
بعدش add کنی روی sprite ات.
بعدش image_speed و sprite_index و set کنی .
image_speed سرعت حرکت بین فریم های gif رو مشخص می کنه.

مثلا واسه فلش چپ یا رویداد left اینو بذار:

کد PHP:
sprite_index=spr_left
image_speed
=0.5
speed
=-
واسه راه رفتن به راست در رویداد right اینو بذار:
کد PHP:
sprite_index=spr_right
image_speed
=0.5
speed
=
واسه رویداد no key هم اینو:
کد PHP:
image_speed=0
speed
=
دو تا اسپرایت هم واسه راه رفتن چپ و راست بساز با اسمهای spr_right و spr_left که توی کد اوردمشون.
اینا رو به player ات نسبت بده .
سوال بود بپرس
speed یعنی سرعت حرکت ابجکت
image_speed یعنی سرعت جرکت انیمیشن gif اسپرایت
sprite_index هم یعنی اندیس یا ادرس فریمی که باید اجرا بشه که ما مستقیم با اسم اسپرایت مربوط اونو set می کنیم و خودش خودکار می فهمه روی کدوم فریم هست یا از اولش اجرا می کنه
۰ نظر موافقین ۰ مخالفین ۰ ۳۱ تیر ۹۴ ، ۱۶:۴۶
مدیرکل

فرض کنید من می خوام متن html سایت google رو get کنم و توی گیم میکر نمایش بدم.
--
یک room بسازید.

یک ابجکت بسازید و بذارید روی Room.

توی رویداد Create اینو بذارید :

//author:Sajjad3011
//promakers.ir
url="http://www.google.com/";
if(os_is_network_connected()==true) 
{
globalvar player_name,player_score;
str1="";
post = http_post_string(url, str1); 
}

رویداد asyncron HTTP (درخواست هایی که نیاز به انتظار دارن رو می گیم آسنکرون یا async):

var r_str = "null";
if ds_map_find_value(async_load, "id") == post
   {
   if ds_map_find_value(async_load, "status") == 0//status rooye Server tarif shode hast
      {
      r_str = ds_map_find_value(async_load, "result");//result rooye Server tarif shode hast
show_message(r_str);
      }
   }


اجرا کنید و منتظر باشید تا متن html سایت گوگل رو دریافت و روی message box نشون بده :

خروجی :


http://s3.picofile.com/file/8201162942/get_google.gif


اینم سورس همون چیزی که بالا گفتم. سعی کنید خودتون کد رو بنویسید و سورس رو تا می تونید استفاده نکنید ولی اینم واسه اینکه شاید وقتتون کمه و نیاز دارید :

http://s3.picofile.com/file/8201165834/get_web.gmz.html

۰ نظر موافقین ۰ مخالفین ۰ ۲۹ تیر ۹۴ ، ۱۴:۴۸
مدیرکل

این کلیپ رو ببینید تا ایده ی خوبی رو دریافت کنید:

http://s3.picofile.com/file/8201152650/render_sprite_for_game_maker.gif

https://www.mediafire.com/?e8qk8hb8jj71c3y

۰ نظر موافقین ۰ مخالفین ۰ ۲۹ تیر ۹۴ ، ۱۳:۵۴
مدیرکل

http://s5.picofile.com/file/8149102168/book.jpg

در سایت زیر بیشتر کتب برنامه نویسی مربوط به بازی سازی از جی مانکی گرفته تا استنسیل و گیم میکر و تورک 3Dو فلش و ایکس ان ای و کرای انجین و یو دی کی و یونیتی و خلاصه هرچی که فکرشو می کنید توی این سایت کتابش رایگان هست.
برید حالشو ببرید.

http://it-ebooks.info

۰ نظر موافقین ۰ مخالفین ۰ ۲۸ تیر ۹۴ ، ۰۰:۴۴
مدیرکل

gameover.blog.ir

نام محصول:

سورس انگری بردز در گیم میکر استادیو

قیمت:

1000 تومان

https://encrypted-tbn2.gstatic.com/images?q=tbn:ANd9GcQhpXMSJazwYEXBHDQhXy4JbajL8FCchhN5CojjStJaJqvaPIkcHQ


برای خرید رو دکمه ی زیر کلیک کنید و پس از پرداخت، لینک در اختیار شما قرار می گیره. هر مشکلی توی دانلود بود سریع پیام بذارید رفع کنم. آیدی تلگرامتون و یا شمارتون بذارید تو تلگرام پیام میدیم.

http://s3.picofile.com/file/8200115534/1.gif


۰ نظر موافقین ۰ مخالفین ۰ ۲۴ تیر ۹۴ ، ۰۴:۲۶
مدیرکل
۰ نظر موافقین ۰ مخالفین ۰ ۲۳ تیر ۹۴ ، ۱۳:۲۳
مدیرکل
۰ نظر موافقین ۰ مخالفین ۰ ۱۸ تیر ۹۴ ، ۲۱:۳۴
مدیرکل

http://s6.picofile.com/file/8198920142/change_enemy_sprite.jpg

در این سورس وقتی player پرش یا jump می کنه روی دشمن(enemy) ، دشمن اسرایتش تغییر می کنه و بعد از ضربه ی دوم از بین میره.توی بازی ماریو (قارچ خور)ازش استفاده شده بود.


http://s3.picofile.com/file/8198919934/taghyir_enemy.zip.html

۰ نظر موافقین ۰ مخالفین ۰ ۱۸ تیر ۹۴ ، ۲۱:۱۱
مدیرکل
۰ نظر موافقین ۰ مخالفین ۰ ۱۰ تیر ۹۴ ، ۰۳:۴۳
مدیرکل
۰ نظر موافقین ۰ مخالفین ۰ ۱۰ تیر ۹۴ ، ۰۳:۴۰
مدیرکل
۰ نظر موافقین ۰ مخالفین ۰ ۱۰ تیر ۹۴ ، ۰۳:۴۰
مدیرکل
۰ نظر موافقین ۰ مخالفین ۰ ۱۰ تیر ۹۴ ، ۰۳:۳۶
مدیرکل
۰ نظر موافقین ۰ مخالفین ۰ ۱۰ تیر ۹۴ ، ۰۳:۳۳
مدیرکل
۰ نظر موافقین ۰ مخالفین ۰ ۱۰ تیر ۹۴ ، ۰۳:۳۱
مدیرکل
۰ نظر موافقین ۰ مخالفین ۰ ۱۰ تیر ۹۴ ، ۰۳:۲۴
مدیرکل
۰ نظر موافقین ۰ مخالفین ۰ ۱۰ تیر ۹۴ ، ۰۳:۲۳
مدیرکل
۰ نظر موافقین ۰ مخالفین ۰ ۱۰ تیر ۹۴ ، ۰۳:۱۵
مدیرکل

if sound_exists(global.Music)
   {
   sound_loop(global.Music);
   }
else
   {
   global.Music = sound_add(working_directory + "\MainMusic.mp3", 1, 0);
   sound_loop(global.Music);
   }


منبع :
http://docs.yoyogames.com/source/dadiospice/002_reference/game%20assets/sounds/legacy%20sound/sound_exists.html

۰ نظر موافقین ۰ مخالفین ۰ ۱۰ تیر ۹۴ ، ۰۲:۲۳
مدیرکل

audio_master_gain

if keyboard_check(vk_up)
   {
   if vol < 1 vol += 0.05;
   audio_master_gain(vol);
   }
if keyboard_check(vk_down)
   {
   if vol > 0 vol -= 0.05;
   audio_master_gain(vol);
   }

بقیه توابع صدا :

http://docs.yoyogames.com/source/dadiospice/002_reference/game%20assets/sounds/index.html

۰ نظر موافقین ۰ مخالفین ۰ ۱۰ تیر ۹۴ ، ۰۲:۰۸
مدیرکل


if keyboard_check_pressed(ord("S"))
   {
   
screen_save(working_directory "\Screens\Screen_"+string(num)+".png")
   
num += 1;
   }

کد بالا رو توی Step یا Draw بذار.
هر بار که S می زنید ذخیره می کنه با نام جدید. البته روی اندروید S داریم می تونید کلیک ماوس رو بذارید

http://docs.yoyogames.com/source/dadiosp..._save.html

۰ نظر موافقین ۰ مخالفین ۰ ۰۹ تیر ۹۴ ، ۰۲:۲۳
مدیرکل

var obj;
obj chooseobj1 obj2 obj3 obj4 );
instance_createroom_width irandomroom_height ) , obj );

alarm[0] = room_speed


http://promakers.ir/showthread.php?tid=11493
۰ نظر موافقین ۰ مخالفین ۰ ۰۷ تیر ۹۴ ، ۲۱:۲۳
مدیرکل

سورس و آموزش خلاصه مالتی تاچ در گیم میکر استادیو بدون کتابخانه اضافه

http://s3.picofile.com/file/8196249076/multi_touch.jpg

http://s6.picofile.com/file/8196416118/multi_touch1.jpg

سورس و آموزش خیلی خیلی خلاصه یک صفحه ای برای اموزش مالتی تاچ در گیم میکر استادیو

--

 یک سورس gmz به همراه یک صفحه PDF توضیح خلاصه.

--

روی گوشی های مالتی تاچ و single touch جواب می ده.

---

هر مشکلی بود یا متوجه نشدید توی gameover.blog.ir مطرح کنید.


سورس + آموزش:
http://opizo.com/M0rDwR



۲ نظر موافقین ۰ مخالفین ۰ ۰۷ تیر ۹۴ ، ۰۴:۱۶
مدیرکل


توی Create:

کد :

globalvar harkat,x_clicked,y_clicked
توی رویداد global_left_mouse button اینو بذار:
دقت کنید رویداد global left mouse هست نه left mouse
کد :

//show_message("click");
x_clicked=mouse_x;
y_clicked=mouse_y;
direction=point_direction(x,y,x_clicked,y_clicked)
image_angle=direction;
harkat=true
//move_towards_point(mouse_x,mouse_y,4)
توی step اینو بذار:
کد :

if(harkat==true){
//room_caption="true";
if speed>10 speed-=0.5;

if(distance_to_point(x_clicked,y_clicked)<10) 
{
speed=0
harkat=false;
}
else
{ 
speed+=0.5;
}

منبع :
http://promakers.ir/showthread.php?tid=11518&pid=120793#pid120793
۰ نظر موافقین ۰ مخالفین ۰ ۰۶ تیر ۹۴ ، ۱۴:۴۸
مدیرکل
آموزش ساخت بازی دو بعدی توسط برنامه Game Maker
آموزش ساخت بازی دو بعدی توسط برنامه Game Maker
به روز رسانی : 1387/05/13
حجم : 554 KB
مجوز : رایگان
تعداد دانلود : 14245
تعداد بازدید : 18259
45 11


۰ نظر موافقین ۰ مخالفین ۰ ۰۶ تیر ۹۴ ، ۰۴:۱۹
مدیرکل
یه آموزش دیگه :

سوال : می خوام یک اسپرایت مثل این بسازم چیکار کنم ؟:
[تصویر: adamak.gif]

جواب:
اصلا توی پینت نباید کار کنید.
باید با فتوشاپ یک اسپرایت بسازی که دست چپ و راست و پای چپ و راست جدا ،سر جدا و بدن جدا باشه.
بعدش پس زمینه Transparent باشه.
بعدش دونه دونه از لایه های پا و دست و سر و غیره خروجی png می گیری و می بری توی anime studio و برای هر قسمت یک استخون(bone) می سازی یا بعبارت دیگه عکس هر قسمت رو زیر مجموعه ی استخون دلخواه می کنی.
سپس فریم End رو روی حداکثر 10 و نهایتا 15 بذار تا زیاد فریم ها زیاد و سنگین نشه.
توی فریم اول می تونی دست و پاها رو کمی چرخش بدی با توجه به اینکه ظاهر انسانی به هم نریزه و خود آدم جلو یا عقب نره . انگاری که مثل یک جاسوئیچی روی دیوار آویزون هست و فقط می تونه در جا بزنه یا انگاری روی تردمیل هست و با اینکه حرکت می کنه ولی جلو یا عقب نمیره و اون مکانش از نظر ما ثابت هست.
اگه 10 فریم باشه،در فریم وسط یا 5 دست ها و پا ها رو کاملا معکوس می کنیم و در فریم آخر دقیقا عین فریم اول تمام عناصر رو در جای اولیه خودش قرار می دیم انگاری که تصویر از فریم 1 کپی شده باشه.

اگه play کنید انیمیشن رو می بینید بسیار خوب در حال حرکت هست. حالا به صورت png خروجی یا export می گیریم.

فایل های png رو در گیم میکر یا گیم میکر استادیو در قسمت add sprite دونه دونه اضافه یا add می کنیم (اگه فریمی از قبل توی گیممیکر بود پاکش می کنیم) و نیگا می کنیم فریم ها بعد از همدیگه اضافه میشن و دقیقا مثل فایل gif فریم به فریم چیده میشه.

البته یادتون نره قبل از اینکار می تونید تمام 10 تصویر png ی export شده رو ببرید توی فتوشاپ و Trim کنید یا فاصله های اضافه ی اطرافشون رو پاک کنید.این دیگه به قدرت فتوشاپ شما بستگی داره که چقدر حرفه ای باشید و دقیق تر تصاویر رو درست طراحی کنید.


نکته : برای یادگیری anime studio هم اینجا رو بخونید:
http://promakers.ir/showthread.php?tid=11355&pid=119404

پیکسلی کردن عکس رو هم قبلا در این تاپیک فتوشاپ یاد دادم:
http://s5.picofile.com/file/8135367684/pixelate.jpg
http://promakers.ir/showthread.php?tid=9...#pid103257

۰ نظر موافقین ۰ مخالفین ۰ ۰۵ تیر ۹۴ ، ۲۰:۵۱
مدیرکل
[تصویر: lengthdir_image.gif]
ورودی این دو تابع فاصله(distance) و جهت(direction یا زاویه) حرکت هست.
مثلا می گیم مختصات نقطه ی به فاصله ی 10 از ابجکت فعلی رو بده.(به طوریکه این نفطه به اندازه ی زاویه ی angle حول مرکز ابجکت جاری چرخیده باشه.
داریم :
کد:
angle=90//دلخواه هست
xx = x + lengthdir_x(distance, angle);
yy = y + lengthdir_y(distance, angle);

کاربرد این توابع :
کاربردهای زیادی داره:
مثلا چسبیدن دو ابجکت به هم که اینجا قبلا گفتند دوستان:
http://promakers.ir/showthread.php?tid=8278
-
مثال دیگه : چرخیدن یک توپ حول شی جاری(چرخش سیارات در منظومه ی شمسی یا چرخش ماه یا زمین حول خورشید) و الی آخر .... :
اینم یک سورس
[تصویر: khorshid.jpg]
http://s6.picofile.com/file/8194341984/o....gm81.html

در واقع این همون بحث مثلثات هست موندم چرا تابع جدا براش ساختن !

کد:
xx = x + cos(angle)*distance
yy = y + sin(angle)*distance


یه فرمول دیگه هم داره که فیثاغویس یا معادله ی دایره هست که x^2+y^2=Radius^2 که میشه Y رو بر حسب جذر تفاضل مربعات بدست آورد .

distance همون Rیا Radius (شعاع) است.

کاربرد فیثاغورث تو بازی سازی فقط بدست آوردن فاصله ی دو نقطست.این دو تابعی که معرفی کردی دقیقا اینطوریه :

کد:
lengthdir_x(distance, angle) = cos(angle)*distance
lengthdir_y(distance, angle) = sin(angle)*distance

فک کنم تنها فرقشون اینه که زاویه رو تو sin و cos باید بر حسب رادیان (0 تا 2*pi) بنویسی ولی تو اون تابع بر حسب درجه (0 تا 360)

نکته
:یکی از کاربردهای دیگه ی این کد برای اینه که یک x و y تقریبی رو برای اینکه از روی نوک لوله ی تانک تیر بزنیم ،نسبت به مرکز یا center تانک بدست بیاریم و بعدش تیر رو از اون x و y ایجاد یا inctance_create کنیم.


http://promakers.ir/showthread.php?tid=11455
۰ نظر موافقین ۰ مخالفین ۰ ۰۵ تیر ۹۴ ، ۰۳:۰۳
مدیرکل
منبع این مطلب : وبلاگ گیم آور یکی از وبلاگ های بسیار خوب:

http://gameover.blog.ir/

ابزاری در نسخه های جدید گیم میکر استادیو هست که احتمالا برای استفاده از api های محلی خود اندروید روی دستگاه یا امکانات محلی موبایل بکار می ره.

مثال : توی b4a ما دستورات native یا بومی داشتیم که میومدیم از کادر امکان browser (مرورگر) خود گوشی برای باز کردن صفحات وب استفاده می کردیم.

این NDK توی gms هم احتمالا برای استفاده از ابزارهای توکار خود گوشی هست که روی سیستم عامل مربوط نصب شده روی گوشی وجود داره.

بعضی اوقات طبق سیستم عاملمون باید نسخه ی 32 بیتی رو نصب کنیم اگه 64 بیتی کار نکنه.

معمولا توصیه میشه محل نصب NDK رو توی C:\android-ndk\ بذاریم./

Android NDK یک سری کتابخونه ها هستند که به زبون (سی) C یا C++(سی پلاس پلاس) و زبونای یگه مثل JAVA نوشته شدند و به ARM و MIPS(میلیون دستور در ثانیه) و x86 native code کامپایل و توسط Android Native Development Kit یا NDK نصب می شن.

َARM شامل مجموعه ای از دستورات ساخت یافته هست که دستورات خلاصه و کوتاهی هستند مثل RISC و CISC که در بحث معماری کامپیوتر و پردازنده ها توضیح داده میشه و نیازی نیست همه چیز رو شما بخونید.فقط اگه به طور خلاصه بخوام توضیح بدم فکر می کنم یه سری کلاس های محلی هستن که توسط کدهای جاوا و با استفاده از System.loadLibrary فراخوانی میشوند و در حقیقت یه سری از کلاس های استاندارد JAVA ی ویژه AND roid هستند.
به هر حال طبق مستندات اندروید، NDK نباید به تنهایی برای توسعه اپلیکیشن ها بکار بره فقط به این علت که خیلی از برنامه نویسا دوست دارن پروژه های کامل و پیچیده تری در حین استفاده از NDK بسازن.
https://en.wikipedia.org/wiki/Android_so...evelopment
http://help.yoyogames.com/entries/233633...NDK-setup-
https://en.wikipedia.org/wiki/MIPS_instruction_set



۰ نظر موافقین ۰ مخالفین ۰ ۰۳ تیر ۹۴ ، ۱۵:۴۲
مدیرکل

باید اولا یه اسپرایت(فایل gif حاوی انیمیشن راه رفتن) از قبل بسازی
بعدش add کنی روی sprite ات.
بعدش image_speed و sprite_index و set کنی .
image_speed سرعت حرکت بین فریم های gif رو مشخص می کنه.

مثلا واسه فلش چپ یا رویداد left اینو بذار:

کد PHP:
sprite_index=spr_left
image_speed
=0.5
speed
=-
واسه راه رفتن به راست در رویداد right اینو بذار:
کد :
sprite_index=spr_right
image_speed
=0.5
speed
=
واسه رویداد no key هم اینو:
کد :
image_speed=0
speed
=
دو تا اسپرایت هم واسه راه رفتن چپ و راست بساز با اسمهای spr_right و spr_left که توی کد اوردمشون.
اینا رو به player ات نسبت بده .
سوال بود بپرس
speed یعنی سرعت حرکت ابجکت
image_speed یعنی سرعت جرکت انیمیشن gif اسپرایت
sprite_index هم یعنی اندیس یا ادرس فریمی که باید اجرا بشه که ما مستقیم با اسم اسپرایت مربوط اونو set می کنیم و خودش خودکار می فهمه روی کدوم فریم هست یا از اولش اجرا می کنه
http://promakers.ir/showthread.php?tid=8901
۱ نظر موافقین ۰ مخالفین ۰ ۰۳ تیر ۹۴ ، ۱۴:۳۴
مدیرکل

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

حرکت به چپ و راست رو خودتون اسکریپت نویسی کنید اون دیگه سادست(توی vk_left و vk_right می تونید کد hspeed رو عدد مثبت یا منفی بدید یا 0 کنید هر جا لازم شد و کلید release شد. سوال بود بپرسید)

http://s5.picofile.com/file/8129791800/magas.jpg

http://s5.picofile.com/file/8129791834/magas.gm81.html

۰ نظر موافقین ۰ مخالفین ۰ ۰۲ تیر ۹۴ ، ۱۷:۰۶
مدیرکل
۰ نظر موافقین ۰ مخالفین ۰ ۰۱ تیر ۹۴ ، ۱۹:۵۱
مدیرکل

برای اینکار در بخش global game settings در سربرگ android یا سربرگ خروجی دلخواه اسم رو ارسی وارد کنید.

۰ نظر موافقین ۰ مخالفین ۰ ۰۱ تیر ۹۴ ، ۰۸:۳۲
مدیرکل

رویداد draw:

draw_text_color(10,10, "salam" ,c_white,c_yellow,c_blue,c_red,1);
۰ نظر موافقین ۰ مخالفین ۰ ۰۱ تیر ۹۴ ، ۰۷:۰۶
مدیرکل

توابع تاریخ و زمان در گیم میکر استادیو :
http://docs.yoyogames.com/source/dadiosp...index.html
-
اگه تاریخ کشور دلخواه رو می خواید باید time zone یا محدوده ی local رو تنظیم کنید .
برای اینکار از تابع date_set_timezone باید استفاده کنید.
--
توابع فوق توی ورژن 1.75 کار نمی کنه و فقط توی ورژن های جدید ممکنه کار کنه.
مثال:

timezone_utc : این مقدار باعث دریافت ساعت جهانی یا Coordinated Universal Time میشه.
timezone_local: این مقدار باعث دریافت ساعت محلی میشه.
-----
اینو توی رویداد Draw بذارید:


//date_set_timezone(timezone_utc);
date_set_timezone(timezone_local);
draw_text(32, 32, "The time is " + string(current_hour) + ":" + string(current_minute) + "." + string(current_second));


date_get_timezone زمان جاری رو می گیره
۰ نظر موافقین ۰ مخالفین ۰ ۰۱ تیر ۹۴ ، ۰۵:۳۶
مدیرکل
۰ نظر موافقین ۰ مخالفین ۰ ۲۹ خرداد ۹۴ ، ۱۹:۲۹
مدیرکل
۰ نظر موافقین ۰ مخالفین ۰ ۲۹ خرداد ۹۴ ، ۱۹:۲۴
مدیرکل
۰ نظر موافقین ۰ مخالفین ۰ ۲۹ خرداد ۹۴ ، ۱۹:۲۰
مدیرکل
۰ نظر موافقین ۰ مخالفین ۰ ۲۹ خرداد ۹۴ ، ۱۹:۱۹
مدیرکل

yourname = get_string('Who are you?','nobody');

۰ نظر موافقین ۰ مخالفین ۰ ۲۸ خرداد ۹۴ ، ۱۶:۴۵
مدیرکل

یه ترفندی هست میخوام یادتون بدم.
اگه بخواید اسپرایت یا تصویر آبجکت شما در حین اجرا شفاف یا کم رنگ بشه توی رویداد draw باید کد زیر رو بنویسید :
توی رویداد draw اینو بنویسید :

کد:
draw_sprite_ext(sprite_index,image_index,x,y,image_xscale,image_yscale,image_ang​le,image_blend,image_alpha-0.5)
یعنی alpha رو باید کم کنی.
دقت کنید alpha باید بین 0 و 1 باشه. اگه 0 باشه تصویر احتمالا نامرعی هست.
از جمله کاربردهای این ترفند اینه که وقتی به حریف برخورد می کنید می تونید مثلا کاری کنید چند لحظه تصویر کمرنگ بشه و جون یا خون توی نوار سلامت کم بشه
امیدوارم به درتون بخوره.
۰ نظر موافقین ۰ مخالفین ۰ ۲۸ خرداد ۹۴ ، ۱۶:۳۶
مدیرکل

برای اینکار باید image_blend رو با رنگ دلخواه تنظیم کنیم:
مثال :
این رو بذارید توی رویداد Draw از ابجکت دلخاه تا رنگش زرد بشه :

کد PHP:
image_blend=c_yellow;
 
draw_sprite_ext(sprite_index,image_index,x,y,image_xscale,image_yscale,image_angle,image_blend,image_alpha)
۰ نظر موافقین ۰ مخالفین ۰ ۲۸ خرداد ۹۴ ، ۱۶:۳۵
مدیرکل

تابع lengthdir_x و lengthdir_y در گیم میکر

منبع : http://docs.yoyogames.com/source/dadiosp...dir_x.html
[تصویر: lengthdir_image.gif]
ورودی این دو تابع فاصله(distance) و جهت(direction یا زاویه) حرکت هست.
مثلا می گیم مختصات نقطه ی به فاصله ی 10 از ابجکت فعلی رو بده.(به طوریکه این نفطه به اندازه ی زاویه ی angle حول مرکز ابجکت جاری چرخیده باشه.
داریم :
کد:
angle=90//دلخواه هست
xx = x + lengthdir_x(distance, angle);
yy = y + lengthdir_y(distance, angle);

کد معادل :

xx = x + cos(angle)*distance
yy = y + sin(angle)*distance

کاربرد این توابع :
کاربردهای زیادی داره:
مثلا چسبیدن دو ابجکت به هم که اینجا قبلا گفتند دوستان:
http://promakers.ir/showthread.php?tid=8278
-
مثال دیگه : چرخیدن یک توپ حول شی جاری(چرخش سیارات در منظومه ی شمسی یا چرخش ماه یا زمین حول خورشید) و الی آخر .... :
اینم یک سورس
[تصویر: khorshid.jpg]
http://s6.picofile.com/file/8194341984/o....gm81.html
۰ نظر موافقین ۰ مخالفین ۰ ۲۸ خرداد ۹۴ ، ۱۶:۱۳
مدیرکل

Mouse drag movement

http://s3.picofile.com/file/8194334550/dragDrop.jpg


اسپرایتی با نام 'sprBall' بسازید و به ابجکتی به نام 'objBall' نسبت بدهید.

در رویداد Create این کد رو بذارید:

xpart=0;
ypart=0;
direction=0; 
speed=0;
friction=0.5;
grabbed=false;

در کد بالا سرعت و جهت(direction) رو صفر کردیم.و friction(اصطکاک) رو هم 0.5 . البته بعدا می تونیم طبق نیاز تغییرش بدیم.
از متغیرهای  xpart و ypart هم بعدا برای مقایسه ی مختصات ماوس و  مختصات ابجکت objBall استفاده می شود و برای حرکت درگ دقیق(drag movement) مورد نیاز می باشند.
ما متغیر grabbed را false کردیم زیرا هنوز روی objBall کلیک نشده است.

حالا که متغیرهای بالا رو تنظیم کردیم،نوبت به drag است.

یک رویداد 'Left Pressed' در زیر شاخه ی mouse بسازید و کد زیر را به آن نسبت دهید:
grabbed=true;
speed=0;
direction=0;
xpart=mouse_x-x;
ypart=mouse_y-y;


متغیر grabbed را true کردیم زیرا روی ابجکت objBall کلیک کرده ایم.
Speed و directionهر دو صفر هستند ابجکت درجا در حال حرکت است و ما می خواهیم به نقطه ای از ماوس که انجا کلیک کردیم حرکت کند.
از xpart و ypart برای تعیین میزان دوری ماوس تا ابجکت استفاده می کنیم.از این متغیرها برای تنظیم دقیق موقعیت توپ در زمان drag استفاده می کنیم.

در رویدا 'Step' این کد رو بذارید:
if grabbed=true then { 
 x=mouse_x-xpart; 
 y=mouse_y-ypart; friction=0; 
} else {
 friction=0.5; 
}

ابتدا ما بررسی می کنیم آیا objBall در حال grab(منظور همون drag و کشیدن با ماوس) است یا خیر. اگر بلی(true) ، توپ را به نقطه ای که ماوس است و objBall را به آنجا  set می کنیم.ما موقتا friction را به 0(صفر) تنظیم می نماییم.اگر grabbed=false بود بخش 'else' اجرا و friction(اصطکاک) به مقدار قبلی اش یعنی 0.5 تنظیم می شود.

کد زیر را در رویداد 'End Step' کپی کنید:
if grabbed=true then 
{
 if not mouse_check_button(mb_left) 
 then 
 {
  grabbed=false;
  direction=point_direction(xprevious,yprevious,x,y);
  speed=point_distance(xprevious,yprevious,x,y)/2;
 } 
}
 
if speed>25 then 
{
 speed=25;
}


ابتدا چک می کنیم آیا ابجکت grabbed شد یا نه. اگر نه،هیچ چیز را اجرا نمی کنیم.
سپس بررسی می کنیم آیا دکمه ی ماوس پایین(یا فشرده)هست یا خیر.اگر خیر به این معناست که کاربر کلید را رها(release) کرده ،بنابراین  objBall را به آنجا حرکت می دهیم.ما grabbed را falase می کنیم زیرا زیاد objBallرا نگه نداشته ایم.
ما directionرا با جهت ماوس تنظیم می کنیم.همچنین speed را به نصف سرعت ماوس تنظیم می کنیم.در پایان این رویداد حداکثر سرعت را روی 25 تنظیم می کنیم.(یعنی اگه سرعت بیشتر بود روی یه مقدار ماکزیمم می ذاریم تا از اون تجاوز نکنه)


ابجکت objBall  را یکبار به room اضافه کرده و بازی رو اجرا کنید. هر جا می خواید توپ رو Drag کنید.
اینم سورس برای گیم میکر 8.1 و گیم میکر 6 (توی گیم میکر استادیو هم احتمالا کار می کنه)

http://s3.picofile.com/file/8194334518/tut_mouse_drag.zip.html
۰ نظر موافقین ۰ مخالفین ۰ ۲۸ خرداد ۹۴ ، ۱۵:۳۲
مدیرکل

ویژه گیم میکر استادیو( توی گیم میکر کار نمی کنه و توابع جدید و ویژه gmS هست)


یک بک گراند بساز و بده به room و خصوصیت Stretch از سربرگ background  از room رو تیک بزن تا کش بیاد و. دقیقا اندازه ی room بشه.
یک ابجکت بساز و بذار توی room و رویداد های زیر و کد مربوط رو براش ایجاد کن:

رویداد Create :

کد :
value 

رویداد Steps:
کد:
if( keyboard_check(vk_up)or keyboard_check(vk_down) )
{
value += (keyboard_check(vk_up) - keyboard_check(vk_down)) * 0.02
background_xscale 
room_width background_width value
background_yscale 
room_height background_height value
background_x 
= (room_width background_width background_xscale) / 2
background_y 
room_height background_height background_yscale 



با F5 بازی رو اجرا کن. با فلش بالا و پایین می تونی zoom کنی
یادت باشه توی game maker studio جواب میده و توی game maker منسوخ هست.
۰ نظر موافقین ۰ مخالفین ۰ ۲۸ خرداد ۹۴ ، ۰۴:۳۹
مدیرکل
۰ نظر موافقین ۰ مخالفین ۰ ۲۶ خرداد ۹۴ ، ۲۲:۳۲
مدیرکل
یک روش استفاده از آلارم alarm هست مثلا یه آلارم می ذاریم کد دلخواه رو توش می ذاریم و ته کد می نویسیم alarm[0]=100 و بعد از 100 واحد زمانی دوباره همین آلارم فراخواهنی میشه.
بعدش هر جا نیاز بود مثلا توی رویداد create باید یه بار این آلارم رو فراخوانی کنیم که می نویسیم alarm[0]=100 یا alarm[0]=10 یا هر عددی که دوست داشتیم هر چی کمتر باشه زودتر آلارم اجرا میشه
--
روش دیگه :

sleep(1000);
instance_create(x,y,object1);
sleep(1000);
instance_create(x,y,object2);
sleep(1000)
instance_create(x,y,object3);


۰ نظر موافقین ۰ مخالفین ۰ ۲۱ خرداد ۹۴ ، ۱۷:۴۰
مدیرکل

دستور working_directory تعریف شده هست توی game maker و باعث میشه دایرکتوری جاری روی موبایل یا pc رو به ما برگردونه.

هم توی گیم میکر کار می کنه هم توی گیم میکر استادیو(یعنی خروجی اندروید هم بگیرید مشکلی نیست)

۰ نظر موافقین ۰ مخالفین ۰ ۲۱ خرداد ۹۴ ، ۰۵:۰۶
مدیرکل
۰ نظر موافقین ۰ مخالفین ۰ ۱۸ خرداد ۹۴ ، ۲۱:۰۵
مدیرکل
۰ نظر موافقین ۰ مخالفین ۰ ۱۷ خرداد ۹۴ ، ۰۲:۱۵
مدیرکل

می دونید که وقتی یه بازی رو واسه سیستم می نویسیم با کیبورد(صفحه کلید) کار می کنیم(معمولا)

برای اینکه بازی رو تحت اندروید اجرا کنیم باید با رویداد های ماوس کار کنیم.

مثلا ابجکت و  اسپرایت هایی بذاریم که با لمس اونا کد دلخواه اجرا بشه(رویداد کلیک یا ...)


http://s5.picofile.com/file/8112504876/arrow_key.jpg

برای آموزش می تونید به این دو لینک مراجعه کنید :

http://promakers.ir/showthread.php?tid=7813

http://promakers.ir/showthread.php?tid=5761


۰ نظر موافقین ۰ مخالفین ۰ ۱۴ خرداد ۹۴ ، ۱۷:۴۵
مدیرکل
۰ نظر موافقین ۰ مخالفین ۰ ۱۴ خرداد ۹۴ ، ۱۷:۴۱
مدیرکل
۱ نظر موافقین ۰ مخالفین ۰ ۰۳ خرداد ۹۴ ، ۲۰:۰۰
مدیرکل
//---harkate sarbaz be samte mouse:
if(keyboard_check(vk_control) && point_distance(sarbaz2_obj.x,sarbaz2_obj.y,mouse_x,mouse_y)>1)//age [Ctrl] ro feshar bedim sarbaz biad donbale mouse
{
sarbaz2_obj.image_speed=0.1;
sarbaz2_obj.speed=2;
sarbaz2_obj.direction=point_direction(sarbaz2_obj.x,sarbaz2_obj.y,mouse_x,mouse_y);//jahate harkat
sarbaz2_obj.image_angle=sarbaz2_obj.direction;//charkheshe tasvir be samte mouse
}
else
//----age [Ctrl] raha shod sarbaz vaste
{
sarbaz2_obj.image_speed=0;
sarbaz2_obj.speed=0;
}
۰ نظر موافقین ۰ مخالفین ۰ ۰۳ خرداد ۹۴ ، ۰۸:۰۰
مدیرکل

کد زیر رو توی رویداد step بذارید.(یا فقط می تونید view_angle += 90 رو بذارید توی رویداد press از کلید R):

if (keyboard_check_pressed(ord("R")))
{
    view_angle += 90 //counterclockwise
}

این کد باعث میشه با فشردن کلید R ، محتوای room به اندازه ی 90 درجه بچرخه.

http://s3.picofile.com/file/8189901668/view_angle.jpg

سورس gm81:

http://s6.picofile.com/file/8189902034/view_angle.gm81.html

۱ نظر موافقین ۰ مخالفین ۰ ۰۲ خرداد ۹۴ ، ۱۶:۲۵
مدیرکل
اسم اسپرایت چپ و راست رو بذارید spr_Left و spr_Right
  رویداد keyboard_left :
کد :
sprite_index=spr_Left;
image_speed=0.3;
speed=-5; 
رویداد keyboard_right :
کد :
sprite_index=spr_Right;
image_speed=0.3;
speed=+5; 
  رویداد release_left و release_right :
کد :
speed=0;
image_speed=0;
 
و بقیه رو هم باید اسپرایت های دلخواه رو نام بدید و مثل همین روشی که گفتم توی اسکریپت ها تغییرات رو انجام بدین.
۰ نظر موافقین ۰ مخالفین ۰ ۰۱ خرداد ۹۴ ، ۰۱:۰۱
مدیرکل

instance_change(choose(object0,object1,object2),1);

۰ نظر موافقین ۰ مخالفین ۰ ۳۰ ارديبهشت ۹۴ ، ۰۲:۰۸
مدیرکل


http://s5.picofile.com/file/8129787600/Nardeban.jpg

به لینک زیر رفته و بعد چند ثانیه رد تبلیغ رو بزنید.



http://opizo.com/UW6OQT

۱ نظر موافقین ۰ مخالفین ۰ ۳۰ ارديبهشت ۹۴ ، ۰۲:۰۵
مدیرکل