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)
منبع: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);
seconds=3
instance_deactivate_all(self); alarm[0]=seconds*room_speed;//This will un-pause the game in the amount of time you selected
نکته:اولا این کتاب خیلی کمیاب هست و حتی توی سایت های خارجی هم بسیار نادر هست ولی ما این کتاب رو به رایگان براتون می ذاریم تا دانلود بفرمایید.
تعداد صفحه: نزدیک 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 (فقط حرفه ای ها مطالعه کنن و مبتدیان سعی کنید درگیر جزئیات این کتاب نشید که چطوری بازی بسازیم و از کجا شروع کنیم.اگه سوالی در رابطه با بازی سازی دارید در وبلاگ نظر بدید بنده ی حقیر راهنماییتون خواهم کرد انشاءا... . چون خودم مدت ها سر در گم بودم و چندین سال در این باب تحقیق کردم و البته باز هم بی سواد هستم در برابر اساتید و تمام شما بزرگواران. .و من ا... توفیق):
منبع:gameover.blog.ir
http://www.mediafire.com/download/re9k885kapwhvs8/CustomHiScoreStudio.zip
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 }
منبع:gameover.blog.ir
الان گیم میکر منسوخ هست و گیم میکر استادیو و یونیتی معمول تره. اما بازم این سورس رو برای شما میذاریم.
<?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); ?>
Create Event:
CODE |
speed=3+random(2) direction=round(random(360)) alarm[0]=50+random(150) |
CODE |
direction=round(random(360)) alarm[0]=50+random(150) |
http://www.mediafire.com/download/njb3v1oy0tyv2ah/Rope+Physics+Tutorial.gmz
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
room_goto(room2);
draw_text(10,20,"room1" + " :"+ string(global.My_cash));
room_goto(room1);
draw_text(10,20,"room2" + " :"+ string(global.My_cash));
منبع:gameover.blog.ir
// 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://s17.picofile.com/file/8413050276/usersManagerPHP.zip.html
قدیما گیم میکر استادیو کار می کردیم که بعدا منسوخ شد رفتیم یونیتی .
تشکر یادتون نره.
اینم شمارم:
09358077198
ord('A');//out: 65 chr('65')';//out: 'A'
منبع : gameover.blog.ir
توی رویداد key press Any key از گیم میکر استادیو اینو بذارید :
window_set_caption( string(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
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 }
gameover.blog.ir
http://s5.picofile.com/file/8136069526/export_APK_android_in_GameMakerStudio_pdf.zip.html
پوشه بندی هم از اینجا چک کنید:
ویرایش شد:( یکشنبه - ۲۵ مرداد ۱۳۹۴)
ابتدا اسپرایت منوی ثابت رو با نام 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+10draw_sprite_ext(s_menu,image_index,x1,y1,image_xscale,image_yscale,image_angle,image_blend,image_alpha)
x1=view_xview+ view_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):
x=view_xview+window_get_region_width()/2-sprite_width/2
y=view_yview
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)
منبع :gameover.blog.ir
توی کد فلش چپ اینو بذارید
image_scale = -1
توی کد فلش راست اینو:
image_scale =+1
اجرا کنید .
وقتی فلش چپ می زنید کاراکتر به چپ نیگا می کنه و وقتی فلش راست می زنید کاراکتر به راست نیگا می کنه.
اگه نمونه یونیتی رو خواستید باید با transform.localScale فکر می کنم کار کنید. سوال بود بپرسید
منبع :gameover.blog.ir
این سورس رو مدت ها قبل به درخواست mgood ساخته بودم.
درخواست کننده:alibar80
سازنده:sajjad3011
شات:
http://s3.picofile.com/file/8205001718/light.gif
سورس:
http://opizo.com/RrHWa1
توضیح:
در این سورس،توی اتاق تاریک نور آبی ایجاد می کنیم که هرجا player می ره
دورش هست و اون ناحیه رو روشن می کنه.با گیم میکر 8.1 و ورژن های بالاتر
باز کنید یا پسوند رو عوض کنید.
منبع :gameover.blog.ir
درخواست کننده:yasa
سازنده: sajjad3011
شات:
:
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:
تا آخرش بخونید لطفا
منبع :
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-----------
یک listview و یک command button بذارید روی فرم حله
اینم کد دیگه چی میخواید :
'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
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
---
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)
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;
}
}
globalvar harkat,x_clicked,y_clicked;
harkat=false;
میخواستم ببینم تو گیم میکر امکانش هست از کدی به عنوان شبیه ساز کلیدی از کیبورد استفاده کرد؟
چنین چیزی اصلا امکان پذیر هست؟
آره هست.
مختصات ناحیه ی مستطیلی اسپرایت دکمه رو که می خوای روش کلیک بشه کار فلان کلید رو انجام بده ربط می دی بهش اینطوری:
virtual_key_add(x, y, w, h, keycode);
virtual_key_add(32, 32, 64, 64, vk_left);
یا
virtual_key_add(objButtonLeft.x, objButtonLeft.y, objButtonLeft.sprite_width, objButtonLeft.sprite_height, vk_left);
باید اولا یه اسپرایت(فایل gif حاوی انیمیشن راه رفتن) از قبل بسازی
بعدش add کنی روی sprite ات.
بعدش image_speed و sprite_index و set کنی .
image_speed سرعت حرکت بین فریم های gif رو مشخص می کنه.
مثلا واسه فلش چپ یا رویداد left اینو بذار:
sprite_index=spr_left
image_speed=0.5
speed=-5
sprite_index=spr_right
image_speed=0.5
speed=5
image_speed=0
speed=0
فرض کنید من می خوام متن 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 نشون بده :
خروجی :
اینم سورس همون چیزی که بالا گفتم. سعی کنید خودتون کد رو بنویسید و سورس رو تا می تونید استفاده نکنید ولی اینم واسه اینکه شاید وقتتون کمه و نیاز دارید :
این کلیپ رو ببینید تا ایده ی خوبی رو دریافت کنید:
در سایت زیر بیشتر کتب برنامه نویسی مربوط به بازی سازی از جی مانکی گرفته
تا استنسیل و گیم میکر و تورک 3Dو فلش و ایکس ان ای و کرای انجین و یو دی
کی و یونیتی و خلاصه هرچی که فکرشو می کنید توی این سایت کتابش رایگان هست.
برید حالشو ببرید.
http://it-ebooks.info
در این سورس وقتی 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); }
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;
}
var obj;
obj = choose( obj1 , obj2 , obj3 , obj4 );
instance_create( room_width , irandom( room_height ) , obj );
alarm[0] = 2 * room_speed
سورس و آموزش خیلی خیلی خلاصه یک صفحه ای برای اموزش مالتی تاچ در گیم میکر استادیو
--
یک سورس gmz به همراه یک صفحه PDF توضیح خلاصه.
--
روی گوشی های مالتی تاچ و single touch جواب می ده.
---
هر مشکلی بود یا متوجه نشدید توی gameover.blog.ir مطرح کنید.
globalvar harkat,x_clicked,y_clicked
//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)
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; }
angle=90//دلخواه هست
xx = x + lengthdir_x(distance, angle);
yy = y + lengthdir_y(distance, angle);
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
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 اینو بذار:
sprite_index=spr_left
image_speed=0.5
speed=-5
sprite_index=spr_right
image_speed=0.5
speed=5
image_speed=0
speed=0
اینم پرواز مگس از خودم که تقریبا تمام باگ هاشو گرفتم و به درخواست یکی از دوستان نوشتم.
حرکت به چپ و راست رو خودتون اسکریپت نویسی کنید اون دیگه سادست(توی vk_left و vk_right می تونید کد hspeed رو عدد مثبت یا منفی بدید یا 0 کنید هر جا لازم شد و کلید release شد. سوال بود بپرسید)
برای اینکار در بخش 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));
yourname = get_string('Who are you?','nobody');
یه ترفندی هست میخوام یادتون بدم.
اگه بخواید اسپرایت یا تصویر آبجکت شما در حین اجرا شفاف یا کم رنگ بشه توی رویداد draw باید کد زیر رو بنویسید :
توی رویداد draw اینو بنویسید :
draw_sprite_ext(sprite_index,image_index,x,y,image_xscale,image_yscale,image_angle,image_blend,image_alpha-0.5)
برای اینکار باید image_blend رو با رنگ دلخواه تنظیم کنیم:
مثال :
این رو بذارید توی رویداد Draw از ابجکت دلخاه تا رنگش زرد بشه :
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 در گیم میکر
angle=90//دلخواه هست
xx = x + lengthdir_x(distance, angle);
yy = y + lengthdir_y(distance, angle);
xx = x + cos(angle)*distance
yy = y + sin(angle)*distance
اسپرایتی با نام 'sprBall' بسازید و به ابجکتی به نام 'objBall' نسبت بدهید.
در رویداد Create این کد رو بذارید:
xpart=0;
ypart=0;
direction=0;
speed=0;
friction=0.5;
grabbed=false;
grabbed=true;
speed=0;
direction=0;
xpart=mouse_x-x;
ypart=mouse_y-y;
if grabbed=true then { x=mouse_x-xpart; y=mouse_y-ypart; friction=0; } else { friction=0.5; }
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; }
ویژه گیم میکر استادیو( توی گیم میکر کار نمی کنه و توابع جدید و ویژه gmS هست)
یک بک گراند بساز و بده به room و خصوصیت Stretch از سربرگ background از room رو تیک بزن تا کش بیاد و. دقیقا اندازه ی room بشه.
یک ابجکت بساز و بذار توی room و رویداد های زیر و کد مربوط رو براش ایجاد کن:
رویداد Create :
value = 1
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
}
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://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 درجه بچرخه.
سورس gm81:
sprite_index=spr_Left; image_speed=0.3; speed=-5;
sprite_index=spr_Right; image_speed=0.3; speed=+5;
speed=0; image_speed=0;
instance_change(choose(object0,object1,object2),1);