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

گیم اور _ بازیسازی با unity + مطالب متفرقه

آموزش های علمی با اجازه ی خدا تقدیم به هرکس خدا بخواد

آموزش های علمی با اجازه ی خدا تقدیم به هرکس خدا بخواد

به نام خدا
--
گروه قدیم ما promakers.ir یا پرومیکرز بود که بالای هزار اموزش توش ساخته بودم به اسم sajjad3011 ولی حیف ادمین سایتش عوض کرد
حالا سوالی بود کاری بود این شمارمه

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

---
سوالی بود بذارید
نظر خصوصی نذارید
پاسخش سخته
دوست داشتید شماره بذارید تو واتساپ یا ایتا یا .... گروه بزنیم.
09358077198

بایگانی
پیوندها

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

alarm[0] = room_speed


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

Amir-h King: جم هاست - فروش هاست ارزان

http://gm-p.ir/cart.php

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

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

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



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

http://s3.picofile.com/file/8196100234/select_types.jpg

 When modeling, you will frequently switch between edit modes and so you will want to do this as quickly as possible. There are two primary ways to quickly shift edit modes. The first is through hotkeys. The function keys F8 through F11 are the default mappings for changing edit modes.

F8 is object mode,

F9 is vertex mode,

F10 is edge mode, and

F11 is face mode.

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


توی 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

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

شما ابتدا یک انیماتور ایجاد کن که حاوی مثلا دو انیمیشن باشه.
مثلا
anim_tank_loleBala شامل انیمیشن از قبل ساحته شده ی بالا رفتن لوله ی تانک
anim_tank_loleRast شامل انیمیشن از قبل ساخته شده راست رفتن لوله ی تانک
این دو تا رو بکش روی پنجره ی انیماتور (بعد از اانتخاب تانکی که قبلا کامپوننت Animator رو بهش add کردی)

http://s5.picofile.com/file/8131743118/ANIMATOR.jpg

--
این دو انیمیشن رو بکش توی پنجره ی Animator1 که قبلا کامپوننت انیماتور(دقت کن انیمار نه انیمیشن) رو به تانک اضافه کردی.
--
حالا می خوایم وقتی فلش بالا میزنیم لوله تانک بره بالا و وقتی فلش راست می زنیم لوله تانک بره راست.
--
توی پنجره ی انیمیاتور Animator1 که به تانک اضافه کردیم، یک پارامتر به اسم state از نوع integer ایجاد کن.
--
بین انیمیشن ها اتصال بده(راست کلیک می کنی و make Transition و سپس کلیک روی اون یکی و بلعکس) (مثل شکل قبلی که به هم وصل کردیم و بینشون فلش هست)
--
طبق شکل ، روی فلشی که جهتش از بالا به پایین هست کلیک کن و شرط if state=2 رو set کن :

http://s5.picofile.com/file/8131743884/state_equal_2.jpg

--
دستورات بالا می گن اگه state=2 انتقال انیمیشن طبق شکل از اون بالایی به پایینی set بشه یا state=1 شد طبق شکل انتقال انیمیشن طبق شکل از پایینی به بالایی set بشه .
---
حالا ما باید یک اسکریپت جاوا بنویسیم و بندازیم روی تانک(تانکی که توی صحنه هست و از قبل ریگ شده و شامل انیمیشن های لوله بالا و لوله راست هست و set کردن اوتا رو هم اگه بلد نیستید توی بخش انیمیاتور آموز های من بخونید توی promakers.ir)
---
اینم از کد js که اگه فلش راست زدیم مقدار متغیر state رو 2 می کنه و اگه فلش بالا زدیم state=1 می شه و بقیش دیگه مربوط به انیمیاتور هست که همه چیزو انجام میده

کد PHP:
public Animator animator;
 
void Update () {
 
if(Input.GetKey(KeyCode.UpArrow)) animator.SetInteger( "state", 1);
if(Input.GetKey(KeyCode.RightArrow)) animator.SetInteger( "state", 2);

}
--
نکته ی مهم: تیک گزینه ی اوتوماتیک Automatic رو توی انیماتور بردارید تا خودش انیمیشن ها رو خودکار اجرا نکنه .
سوالی بود و هر چی رو بلد نبودی بپرس دوست من big grin
اگه انیمیشن هم نداری و خواستی بسازی بگو یه sample بدم از روی اون کار کنی.
و باید فریم های مثلا 1 تا 10 رو واسه بالا رفتن لوله توی blender یا 3dmax بسازی اول.
بعدش فریم های 11 تا 20 رو واسه راست رفتن لوله ی تانک.
بعدش باید روی مدل ریگ شده در پنجره ی assets کلیک کنی و در پنجره inspector سه تا سربرگ Model و Rig و Animation میده که ما باید بریم روی Animation و توی اون گزینه ها یه قسمتی به اسم Clips داره که کلیپ ها یا برش های انیمیشن رو باید براش تعریف کنیم و روی فریم های 1 تا 10 و 11 تا 20 اسم بذاریم. اینم سادست روی + یا بعلاوه کلیک می کنیم و
اگه انیمیشن هم نداری و خواستی بسازی بگو یه sample بدم از روی اون کار کنی.
و باید فریم های مثلا 1 تا 10 رو واسه بالا رفتن لوله توی blender یا 3dmax بسازی اول.
بعدش فریم های 11 تا 20 رو واسه راست رفتن لوله ی تانک.
بعدش باید روی مدل ریگ شده در پنجره ی assets کلیک کنی و در پنجره inspector سه تا سربرگ Model و Rig و Animation میده که ما باید بریم روی Animation و توی اون گزینه ها یه قسمتی به اسم Clips داره که کلیپ ها یا برش های انیمیشن رو باید براش تعریف کنیم و روی فریم های 1 تا 10 و 11 تا 20 اسم بذاریم. اینم سادست روی + یا بعلاوه کلیک می کنیم و Start و End رو روی فریم های مربوط میذاریم مثلا 1 تا 10 رو اسمشو من گذاشته بودم anim_tank_loleBala و 11 تا 20 رو anim_tank_loleRast
اون انیمیشن Default رو هم می تونیم با کلیک روی منها حذف کنیم تا پیشفرضی در کار نباشه واسه اجرا
--
نکته:
گزینه has exit time رو هم تیکشو بردارید تا سوئیچ بی انیمیشن ها طول نکشه سریع باشه.
همچنین دو تا انیمیشن که روی هم هست پایان انیمیشن قبل و شروع انیمیشن بعد رو با ماوس تنظیم کنید روی یک خط باشه و زمان بینشون نباشه.

اینم حرکت دو بعدی پلیر به جایی که کلیک کردیم در حالت پلتفرم:
http://gameover.blog.ir/1394/08/23/%D8%AD%D8%B1%DA%A9%D8%AA-%D8%AF%D9%88-%D8%A8%D8%B9%D8%AF%DB%8C-%D9%BE%D9%84%D8%AA%D9%81%D8%B1%D9%85-%D8%A8%D9%87-%D8%B3%D9%85%D8%AA-%D8%AC%D8%A7%DB%8C%DB%8C-%DA%A9%D9%87-%DA%A9%D9%84%DB%8C%DA%A9-%DB%8C%D8%A7-%D8%AA%D8%A7%DA%86-%DA%A9%D8%B1%D8%AF%DB%8C%D9%85-%D8%AF%D8%B1-%DB%8C%D9%88%D9%86%DB%8C%D8%AA%DB%8C-%DA%A9%D8%AF-%D8%B3%DB%8C%D8%B4%D8%A7%D8%B1%D9%BE
۰ نظر موافقین ۰ مخالفین ۰ ۰۵ تیر ۹۴ ، ۰۴:۱۱
مدیرکل

http://dl.dehkadeyedownload.ir/music/1061.mp3

بگو سرگرم چی بودی
که اینقدر ساکت و سردی
خودت آرامشم بودی
خودت دلواپسم کردی
ته قلبت هنوز باید
یه احساسی به من باشه
چقدر باید بمونم تا
یکی مثل تو پیدا شه
*******************
تو روز و روزگار من
بی تو روزای شادی نیست
تو دنیای منی اما
به دنیا اعتمادی نیست
تو روز و روزگار من
بی تو روزای شادی نیست
تو دنیای منی اما
به دنیا اعتمادی نیست
*******************
سلام ای ناله بارون
سلام ای چشمای گریون
سلام روزای تلخ من
هنوزم دوسش دارم
سلام ای بغض تو سینه
سلام ای آه آیینه
سلام شب های دل کندن
هنوزم دوسش دارم
*******************
نمی دونی تو این روزا
چقدر حالم پریشونه
دلم با رفتنت تنگ و
دلم با بودنت خونه
خرابه حال من بی تو
نمی تونم که بهتر شم
تو دستای تو گل کردم
بزار با گریه پرپر شم
*******************
یه بی نشونم تو این خزون
یه بی نشونم تو این خزون
منو از خودت بدون
یه بی نشونم تو این خزون
یه بی قرارم یه نیمه جون
منو از خودت بدون
منو از خودت بدون
*******************
سلام ای ناله بارون
سلام ای چشمای گریون
سلام روزای تلخ من
هنوزم دوسش دارم
سلام ای بغض تو سینه
سلام ای آه آیینه
سلام شب های دل کندن
هنوزم دوسش دارم

۰ نظر موافقین ۰ مخالفین ۰ ۰۵ تیر ۹۴ ، ۰۳:۴۹
مدیرکل
[تصویر: 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
۰ نظر موافقین ۰ مخالفین ۰ ۰۵ تیر ۹۴ ، ۰۳:۰۳
مدیرکل

File.DirAssets = مسیر جاری پوشه ی Files رو بر می گرداند.
File.DirInternal
file.DirDefaultExternal
file.DirInternalCache
file.DirRootExternal

کد:
dirinternal=data/data/your.app.name/files
DirDefaultExternal=اگر اشتباه نکنم محیط حافظه اس دی هست
DirInternalCache=Returns the folder in the device internal storage that is used to save application cache data.
This data will be deleted automatically when the device runs low on storage.
DirRootExternal=اینم در مورد همون اس دی کارت هست
اینا رو تو تکست لیبل به کار ببرید ادرس بهتون میده
استس read only هست



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


خرید آموزش b4a فارسی با قیمت کم:
http://gameover.blog.ir/1395/04/03/%DA%A9%D8%AA%D8%A7%D8%A8-%D9%81%D8%A7%D8%B1%D8%B3%DB%8C-%D8%A7%D9%85%D9%88%D8%B2%D8%B4-b4a-%D8%B3%D8%A7%D8%AE%D8%AA-%DA%AF%DB%8C%D9%85-%D8%A2%D9%88%D8%B1
۰ نظر موافقین ۰ مخالفین ۰ ۰۴ تیر ۹۴ ، ۲۱:۴۵
مدیرکل
۰ نظر موافقین ۰ مخالفین ۰ ۰۴ تیر ۹۴ ، ۲۱:۱۱
مدیرکل

لینک دانلود سخنرانی در مورد اعتیاد به مواد مخدر



دانلود قسمت اول اعتیاد به مواد مخدر


حجم فایل: 5.21 مگابایت MG



دانلود قسمت دوم اعتیاد به مواد مخدر

حجم فایل: 3.36 مگابایت MG

۰ نظر موافقین ۰ مخالفین ۰ ۰۴ تیر ۹۴ ، ۲۱:۰۵
مدیرکل
منبع این مطلب : وبلاگ گیم آور یکی از وبلاگ های بسیار خوب:

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
۱ نظر موافقین ۰ مخالفین ۰ ۰۳ تیر ۹۴ ، ۱۴:۳۴
مدیرکل

 انّ الّذین یتلون کت ب اللّه و اقاموا الصلوة و انفقوا مما رزقنهم سرا و علانیة یرجون تجارة لن تبور (29)
کسانى که کتاب خدا را مى خوانند و نماز به پا مى دارند و از آنچه روزیشان داده ایم نهان و عیان انفاق مى کنند به تجارتى که نابود ى ندارد امیدوارند (29).

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

باید آموزش جستجو در دیتا بیس SQL رو بلد باشی و برنامه navicat هم باید نصبیده باشید.
این آموزش رو بخونید :

http://promakers.ir/showthread.php?tid=10325
اینجا هم تمام تاپیک ها و آموزش های قدیمی رو بخونید و یکی یکی برسید به آموزش های جدید:
http://promakers.ir/forumdisplay.php?fid=109&page=5


توضیحات:
ببین قبل از اینکه basic4android یاد بگیرید باید کمی visual basic 6 رو یاد بگیرید(حالا vb.net وی بی دات نت هم شد زیاد فرقی نداره ولی vb6 سبک تره و لینک دانلودشم توی اینترنت هست . نبود پ.خ بزنید بدم لینک رو).
-
بعدش شما باید با دستورات ساده ی SQL (یعنی Structured Query Language = زبان پرس و جوی ساختاری) رو یاد بگیری.
چیز خاصی نداره
مثال :

کد PHP:
SELECT FROM table_name 
دستور بالا برای انتخاب * یا کل ستون های جدول بکار می ره(مثل جدول که دو ستون name و fam داره و ما هم نام و هم فاملیی از تمام سطرها رو از جدول واکشی می کنیم و توی حافظه یا recordSet موقتی کاری می ذاریم)

ما کاری به بقیه چیزا نداریم.

توی هر زبون برنامه نویسی توابعی هست که SQL رو می تونیم به صورت رشته ای بکار ببریم و Execute(اجرا) کنیم.

مثال توی b4a:
ابتدا متغیرهایی از نوع کرسر و س کو ال تعریف می کنیم(در بخش global):
کد PHP:
    Dim SQL1 As SQL
    Dim cursor1 
As Cursor 
سپس با SQL و بانک اطلاعات مثل db1.db ارتباط برقرار می کنیم(در بخش ایجاد اکتیویتی یا Activity_Create):
کد PHP:
    If SQL1.IsInitialized False Then
        SQL1
.Initialize(File.DirInternal"db1.db"False)
    
End If
DBload(""
سپس برای سادگی اینکار در آخر سطر فوق DBload("") رو آوردیم و توی تابع DBload که قبلا تعریف باید کنیم،بقیه ی کدها رو برای انتخاب سطرهای جدول باید اجرا کنیم.
مثال :
کد PHP:
Sub DBload(As String)
Private 
condition As String
q
=q.Trim'remove spaces
condition="WHERE esm LIKE '
%" & q & "%'"
ListView1.Clear'
need to clear the list
cursor1 SQL1.ExecQuery("SELECT * FROM table1 " condition "ORDER BY esm")
For 
0 To cursor1.RowCount 1
cursor1
.Position i
ListView1
.AddSingleLine(cursor1.GetString("esm")& "|" &cursor1.GetString("nomre"))
ListView1.SingleLineLayout.ItemHeight 40
ListView1
.SingleLineLayout.Label.TextSize 20
ListView1
.SingleLineLayout.Label.TextColor Colors.Black
ListView1
.SingleLineLayout.Label.Color Colors.White
Next
End Sub 
به کد بالا خوب نیگا کن.

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

q.Trim باعث میشه اگه توی کادر متنی در سمت چپ و راست فضای خالی بود حذف بشه(البته از توی q)


خط بعدی این است :
کد:
condition="WHERE esm LIKE '%" & q & "%'"
به کد دقت کنید : متغیری به نام condition تعریف کردم که دستور WHERE از SQL هست که یک جور شرط هست که می گه فقط سطرهایی رو واکشی کن که ستون esm اون ها مثل(like) این q باشه یا مثل ورودی ای باشه که ما از کادر متنی خوندیم و ریختیم توی متغیر q.
علامت درصد(%) باعث میشه تا n کاراکتر در سمت چپ رشته ی ورودی بررسی بشه.مثل دستور dir در ویندوز (خط ommand prompt) که اونجا می گفتیم *ali* که این باعث میشد تمام فایل هایی که کلمه ی ali توی اسمشون باشه و اول و آخر نامشون هر تعداد کاراکتر باشه رو برگشت بده.

سپس ListView1.Clear باعث پاک کردن سطرهای لیست ویو میشه.

سپس باید SQL رو طبق شرط condition که بالاتر ساختیم اجرا کنیم و بعد از اجرا متغیر cursor(کرسر) یا اشاره گر رو اشاره می دیم به ابتدای جدولی که اطلاعات واکشی شده رو به طور موقت در اون ذخیره کرده سیستم پایگاه داده ی درونی b4a:
کد:
cursor1 = SQL1.ExecQuery("SELECT * FROM table1 " & condition & "ORDER BY esm")
به کد بالا دقت کنید:
order by esm باعث میشه که سطرهایی که واکشی شدن بر حسب ستون esm واکشی و مرتب بشن(توی جدول موقت واکشی شده)

اطلاعات از جدول table1 خوانده شد و cursor1 داره به ابتدای این حدول اشاره می کنه.

حالا باید یه حلقه ی while یا for بنویسیم که سطر به سطر از این جدول رو برای ما نمایش بده یا به لیست ویو listView1 اضافه کنه.

چون سطر اول شمارش 0 هست آخرین سطر باید n منهای 1 باشه.(cursor1.RowCount - 1)

ما هر بار با دستور cursor1.Position باید پاس بدیم به سطر بعدی و اینکار رو تا رسیدن به آخرین سطر تکرار کنیم و اسم و نمره ی دانش آموزان (واکشی شده بر حسب نام جستجو شده) رو نشون بدیم:
کد:
For i = 0 To cursor1.RowCount - 1
cursor1.Position = i
ListView1.AddSingleLine(cursor1.GetString("esm")& "|" &cursor1.GetString("nomre"))
.
.
.

سپس با دستور ListView1.SingleLineLayout.ItemHeight = 40 اندازه ی ارتفاع هر سطر از listView رو زیاد (روی 40 تنظیم)می کنیم .

سپس با دستور ListView1.SingleLineLayout.Label.TextSize = 20 اندازه ی متن رو روی size 20 تنظیم می کنیم.

سپس رنگ متن رو سیاه و پس زمینه رو سفید می کنیم :
ListView1.SingleLineLayout.Label.TextColor = Colors.Black و ListView1.SingleLineLayout.Label.Color = Colors.White

بقیه هم دیگه نیازی به توضیح نداره.

از جمله دستورانت دیگه ی SQL عبارت است از DELETE و UPDATE و INSERT که به ترتیب برای حذف و به روزرسانی(ویرایش=Edit) ودرج داده ها بکار می ره و دتورات دیگه ای که ما زیاد نیازی بهشون نداریم
http://promakers.ir/showthread.php?tid=11479&pid=120448#pid120448
۰ نظر موافقین ۰ مخالفین ۰ ۰۲ تیر ۹۴ ، ۱۷:۴۸
مدیرکل

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

حرکت به چپ و راست رو خودتون اسکریپت نویسی کنید اون دیگه سادست(توی 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 زمان جاری رو می گیره
۰ نظر موافقین ۰ مخالفین ۰ ۰۱ تیر ۹۴ ، ۰۵:۳۶
مدیرکل

ابزار عادی برای ریگ کردن و استخونبندی توی بلندر armature هست.
یکی دیگه از ابزار هایی که از روی مدل انسان استخوان بندی کامل رو داره Human-metaRig هست.
----------------------------------------------------------
توی بلندر 2.68 کلید ctrl+alt+u رو بزنید یا از منوی File گزینه ی User Preferences رو بزنید تا پنجره ی Blender user preferencs باز بشه.
----------------------------------------------------------
وارد سربرگ Addons بشید.
----------------------------------------------------------
توی کادر جستجو بنویسید Rig.
----------------------------------------------------------
گزینه ی Rigging:Rigify رو فعال کنید و Save رو بزنید و پنجره رو ببندید.
----------------------------------------------------------
Shift+A رو در حالت object mode فشار بدید و گزینه ی Armature و سپس Human(meta-Rig رو از منوی باز شده انتخاب کنید تا یه اسکلت کامل از انسان براتون بسازه. مترجک سازیشم بعدا انشاءا.... یاد بگیرید.
http://static.cloob.com//public/user_dat...7484-b.jpg
http://static.cloob.com//public/user_dat...7485-b.jpg

http://static.cloob.com//public/user_data/album_photo/3863/11587484-b.jpg

http://static.cloob.com//public/user_data/album_photo/3863/11587485-b.jpg

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


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




 

آموزش چگونگی شنا در مواقع بحرانی در دریا



جریانهای شکافنده یا به قول گیلانی ها "به در بر"به خاطر وجود دو منطقه کم عمق در بین منصقه عمیق تر پیش می آیدو نتیجه این وضعیت این است که جریان آن قسمت از آب به سمت ساحل نیست و هرچه در این جریان شنا کنی به جلو (ساحل) نمی روی و خسته خواهی شد. برای رهایی از این وضعیت باید به صورت افقی به راست یا به چپ شنا کنید تا از جریان شکافی خارج شده و بعد به سمت ساحل شنا کنید.

شنا در دریا هرگز مشابه شنا در استخر نیست و علاوه بر دانستن فن شنا و داشتن مهارت زیاد، باید ویژگیهای آب دریا را نیز شناخت. آب شور دریا در صورت برخورد با چشم، سوزش چشمی دردناکی ایجاد می‌کند و تمرکز شناگر را کاملاً از بین برده و او را در یافتن مسیر ساحل ناتوان می‌کند. در صورت ورود آب دریا به نای و ریه فرد، سرفه‌های شدیدی ایجاد می‌شود که عملاً شنا کردن را غیرممکن ساخته و شناگر کاملاً مستأصل می‌شود. ضربات امواج دریا، فرد را با خود به این سو و آن سو برده، تمام توان و انرژی وی را مستهلک می‌کنند. گل‌آلود بودن آبهای ساحلی دریای کاسپی موجب می‌شود که حتی با عینک شنا هم نتوان در زیر آب چیز زیادی مشاهده کرد و مثلاً ناحیه کم‌عمق را از عمیق تشخیص داده یا فرد در حال غرق شدن را در زیر آب یافت. فردی که در چنین شرایطی به دام افتد، بسیار دشوار بتواند خود را از مهلکه نجات دهد. ضمناً مطابق یک اصل، برای شنای افراد بالغ در آبهای دریایی با عمق بیش از یک و نیم متر، نه تنها آنها باید فنون شنا را به خوبی بدانند بلکه لازم است به توان فیزیکی و استقامات بدنی بالای خود نیز اطمینان داشته باشند. حتی با وجود مهارت بالا و توان بدنی فوق‌العاده، هنوز هم دریا جای امنی برای شنا نیست، چراکه:

جریان‌های ساحلی از عمده دلایل مرگ شناگران حرفه‌ای می‌باشند.

امواج دریا با حرکت به سمت ساحل همواره حجم زیادی از آب را به طرف خشکی منتقل می‌کنند. این حجم وسیع از آب می‌باید دوباره به داخل دریا برگردد و برای این منظور در نقاطی از ساحل، به صورت تقریباً غیر قابل پیش‌بینی، درون آب دریا آب‌راهه‌هایی به طرف دریا ایجاد می‌شود که در آن آب با سرعت زیادی بر خلاف جهت امواج (یعنی از سمت ساحل به سمت دریا) جریان می‌یابد. این جریانها کاملاً از امواج آب متفاوت بوده و به آنها جریانهای ساحلی، جریانهای شکافنده (Rip Currents)، یا جریانهای مرگبار گفته می‌شود که در بسیاری نقاط جهان و بویژه در سواحل دریای خزر، تلفات جانی بسیاری را به بار می‌آورند.



جریان شکافنده از بالا شبیه یک بادبزن دستی است که دسته آن به سمت ساحل، و دهانه آن به سمت دریا می‌باشد. دسته این بادبزن بیشترین قدرت را دارد و صرف‌نظر از اینکه شناگر چقدر شنا بلد است یا چقدر توان جسمی دارد، عملاً برگشت وی به سمت ساحل را غیر ممکن ساخته، او را سریعاً با خود به داخل دریا می‌کشاند. برای درک بهتری از قدرت این جریان باید گفت که سرعت این جریان معمولاً از رکورد سرعت شنای المپیک نیز بالاتر است؛ بدین معنی که حتی بهترین قهرمان شنای المپیک نیز نمی‌تواند بر خلاف آن شنا کرده و به طرف ساحل برگردد. عرض جریان شکافنده بین 3 تا بیش از 60 متر، و طول آن به داخل دریا بسیار متفاوت است (گاهی فقط در ناحیۀ شکسته شدن امواج یا همان محلی که موج فرو ریخته و کف سفید رنگ تشکیل می‌دهد بوده، گاهی نیز تا ده‌ها متر به داخل دریا کشیده می‌شود).



علائم جریان شکافنده

تشخیص زمان تشکیل جریان شکافنده برای افراد عادی دشوار است. در بسیاری موارد دیده شده که افراد بسیاری در دریا مشغول شنا کردن بوده، همه چیز عادی و خوشآیند به نظر می‌رسد، اما در همین بین یک نفر در میان جریان شکافنده به سادگی و بی‌سروصدا غرق می‌شود. لذا جریان شکافنده الزاماً مختص دریاهای طوفانی و مناطق پرخطر نیست. مواقعی که دریا موّاج است، احتمال تشکیل جریان‌های شکافنده بسیار زیاد است. لذا در این شرایط نباید وارد آب دریا شد و بهترین کار این است که شنا را به زمانی دیگر موکول کرد و از زیبایی‌های ساحل لذت برد. توجه داشته باشید که جریانهای شکافنده در تمام دریاها، دریاچه‌ها و اقیانوس‌ها می‌توانند رخ دهند. برخی نشانه‌های قابل رؤیت جریان‌های شکافنده عبارتند از:



- آب در محل جریان شکافنده آرام و بدون موج است.

- رنگ آب در محل جریان شکافنده با بقیه نقاط تفاوت دارد (شکل‌های بالا).

- خطی از آب کف آلود، خزه یا زباله در محل جریان شکافنده به سمت دریا حرکت می‌کنند.

- امواجی که به سمت ساحل می‌آیند، در محل جریان شکافنده دچار شکست می‌شوند.

- در بسیاری از نقاط در سواحل گیلان و مازندران ساحل ماسه‌ای است. در ساحل ماسه‌ای علایمی شبیه اشکال هلالی وجود دارد. نوک هلال جایی است که جریان شکافنده تشکیل می شود.



روش فرار از جریان شکافنده

چنانچه درون یک جریان شکافنده گرفتار شدید، نخست آرامش خود را حفظ کنید. دوم اینکه هرگز، هرگز و هرگز بر خلاف جریان شکافنده و به سمت ساحل شنا نکنید. این اقدام مرگبار منجر به خسته شدن کامل شناگر شده و شناگر از رمق افتاده به راحتی غرق خواهد شد. در عوض خود را بر روی آب نگاه دارید؛ اکنون دو گزینه پیش روی شماست:



۱- اگر توان بدنی بالایی برای شنا دارید

الف- به صورت موازی با ساحل حرکت کرده و از مسیر جریان کاملاً خارج شوید و سپس به صورت مورب به سمت ساحل برگردید (شکل بالا را ببینید).

ب- یا اینکه برای خروج از جریان شکافنده، موازی با ساحل در عمق آب شنا کنید. در اعماق زیرین آب، جریان شکافنده قدرت کمتری دارد. لذا می‌توان به این طریق از مسیر جریان فرار کرده، آنگاه از آب عمیق به آرامی و به صورت مورب به سطح بازگشت و به صورت مورب به ساحل برگشت. دقت کنید که این روش نیازمند توانایی حبس نسبتاً طولانی تنفس می‌باشد.

۲- اگر توان بدنی معمولی دارید

هم جهت با جریان به سمت دریا حرکت کنید. معمولاً جریان پس از طی چندین متر تا چند ده متر، قدرت خود را از دست می‌دهد. در اینجا می‌توانید با صورت موازی با ساحل از جریان فرار کرده و پس از طی چندین متر و دور شدن از جریان، ابتدا نفس بگیرید، سپس تقاضای کمک کنید و بعد به صورت مورب به سمت ساحل برگردید. لازم به ذکر است که معمولاً دریا در خارج ناحیه شکست امواج آرام‌تر است. ناحیه شکست امواج، ناحیه‌ای است که موج در آنجا فرو ریخته و به رنگ کف سفید دیده می‌شود، و این ناحیه برای شناکردن مناسب نیست. بنابراین شناگری که بتواند خود را در در خارج ناحیه شکست امواج روی سطح آب نگاه دارد، از جریان شکافنده در امان خواهد بود (البته به طور کلی فاصله گرفتن زیاد از ساحل برای بیشتر شناگران به هیچ وجه قابل توصیه نیست).



در هر دو دسته افراد با توان بدنی بالا و با توان بدنی معمولی

اگر تشخیص دادید که کمکی به شما نخواهد رسید و باید با توان خود به طرف ساحل برگردید، همراه با امواج خود را به ساحل برسانید. هنگامی که امواج بزرگ به سمت شما می‌آیند، چند ثانیه نفس بگیرید و حدود یک متر زیر آب بروید تا از ضربه موج در امان بمانید. توجه داشته باشید که ممکن است دوباره درون جریان شکافنده دیگری گرفتار شوید. در این هنگام نیز شک نکرده و اجباراً همراه آن به سوی دریا برگردید، ولی مجدداً بر طبق اصول پیش‌گفته به سمت ساحل بازگشت کنید.

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

A – Toggles the Angle Snap tool on/off

B – Changes the active viewport to “Bottom” view

C – Changes active viewport to ‘Camera’. If multiple Cameras are present a selection box will appear to choose desired camera

D – Disables the current viewport. Very useful for highly complex scenes when higher performance in other viewports is required

E – Select and Rotate tool

F – Changes the active viewport to ‘Front’ view

G – Toggles grid on/off

H – ‘Select by Name’ window is displayed

I – Centres active viewport to mouse position

J – Show or hide selection brackets

L – Changes the active viewport to ‘Left’ view

M – Opens Material Editor Window

N – Toggles ‘Auto Key’ on/off

O – Toggles Adaptive Degradation on/off. If performance becomes too slow, objects will be shown as boxes to maintain good fps

P – Changes the active viewport to ‘Perspective’ view

R – ‘Select and Scale’ tool

S – Toggles ‘Snap’ tool on/off

T – Changes the active viewport to ‘Top’ view

U – Changes the active viewport to ‘User’ view

W – ‘Select and Move’ tool

X – Show/hide Gizmo

Z – ‘Zoom Extends’ all objects selected. Very useful tool for working on one particular object, or for resetting the perspective camera.

6 – Opens ‘Particle View’ Window

7 – Shows polygon count of selected object(s)

CTRL+A – Select all

CTRL+C – In Perspective viewport camera is created from current view

CTRL+I – Select Inverse

CTRL+V – Opens ‘Clone Options’ Window to copy/instance objects

CTRL+X – Expert Mode (Press again to leave Expert Mode)

CTRL+Z – Undo

CTRL+Y – Redo

ALT+X – Toggles X-ray view on/off for selected objects

ALT+Q – Enables ‘Isolation Mode’ for selected objects

ALT+W – Toggles between full screen viewport view and multiple viewport view

منبع :

http://www.timsportfolio.co.uk/tutorials/3dsmaxshortcuts/

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

ابتدا یک کپسول بسازید و توی صحنه بذارید.
یک متریال(new material) با رنگ قرمز رو ایجاد کرده و بندازید روی کپسول.
سپس یک اسکریپت سیشارپ با نام transparent.Cs با ایجاد کرده و کد زیر رو بریزید توش:

using UnityEngine;
using System.Collections;    
public class transparent : MonoBehaviour {
    private float duration = 1.0f;    
    // Update is called once per frame
    void Update () {
        Color textureColor = renderer.material.color;
        textureColor.a = Mathf.PingPong(Time.time, duration) / duration;
        renderer.material.color = textureColor;
    }
    }

اجرا کنید.
می بینید که گیم ابجکت شما شفاف(محو) و کدر می شه به حالت چشمک زن.
http://s3.picofile.com/file/8194820926/transparent.jpg

منبع :

http://forum.unity3d.com/threads/changing-an-objects-transparency-during-runtime.46134/


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

برای اینکار از کلاس Input استفاده میشه و تعداد(count) انگشت ها رو هم میشه شمرد.

قبل از هرچیزی باید بررسی کنیم که دستگاه ما آیا از multi touch ساپورت می کنه یا نه :D :


bool supportsMultiTouch = Input.multiTouchEnabled;
print("MultiTouchSupport : " + supportsMultiTouch);
این آموزش فرضش اینه که موبایل لمسی شما از مالتی تاچ حمایت می کنه.
۱۶ نظر موافقین ۰ مخالفین ۰ ۳۰ خرداد ۹۴ ، ۱۸:۵۲
مدیرکل
۰ نظر موافقین ۰ مخالفین ۰ ۳۰ خرداد ۹۴ ، ۱۶:۵۸
مدیرکل

Access javascript variables using csharp script in unity

---

یک پروژه جدید ایجاد کنید.

پوشه ای به نام Script و داخلش یک اسکریپت سیشارپ به نام CSharp1.Cs ایجاد کنید.

پوشه ای به نام 'Standard Assets' (حتما دقیقا همین باشه ویلا جواب نمی ده)  و داخلش یک اسکریپت js به نام JS1.js ایجاد کنید.

--
کد اسکریپت JS1.js :
//JS1.js //Don't forget to place the 'JS1.js' file inside the 'Standard Assets' folder
// Unity3D: JavaScript->C# or C#->JavaScript access
//This variable will be accessed through C#
public var message : String = "Text in js file.";

کد اسکریپت CSharp1.Cs:

// Unity3D: JavaScript->C# or C#->JavaScript access
//CSharp1.Cs
using UnityEngine;
using System.Collections;

public class CSharp1 : MonoBehaviour
{
	
	private JS1 jsScript;
	
	void Awake()
	{
		
		jsScript = this.GetComponent<JS1>();//Don't forget to place the 'JS1.js' file inside the 'Standard Assets' folder
	}
	
	//render text and other GUI elements to the screen
	void OnGUI()
	{
		//age ghermez kard mohem nist khata nmide
		GUI.Label(new Rect(10,10,300,20),jsScript.message);
	}
	
	
}


یک گیم ابجکت ایجاد کنید و هر دو اسکریپت رو با ماوس بگیرید بندازید روش(توی Hierarchy روی گیم ابجکت دلخواه بندازید)
بازی رو اجرا کنید. می بینید که فایل سیشارپ،متغیر message از داخل فایل جاوااسکریپت رو می خونه و مقدارش رو توسط تابع GUI روی یک label صفحه نشون میده.

نکته مهم :
حتما یادتون نره فایل JS1.js رو داخل پوشه ای به نام 'Standard Assets' بذارید.
حتما فایل سیشارپ CSharp1.Cs رو داخل پوشه ی دیگه ای غیر از 'Standard Assets' بذارید.
http://s3.picofile.com/file/8194713900/cs_js_access.jpg
منبع :
http://www.41post.com/1935/programming/unity3d-js-cs-or-cs-js-access

اینم واسه سیشارپ:
http://stackoverflow.com/questions/25930919/accessing-a-variable-from-another-script-c-sharp
۱ نظر موافقین ۰ مخالفین ۰ ۳۰ خرداد ۹۴ ، ۱۶:۲۸
مدیرکل

gameover.blog.ir

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

منبع:gameover.blog.ir

چرخش دایره حول مستطیل با استفاده از فرمولهای مثلثاتی
درخواست کننده: arix
برای این کار از فرمول فیثاغوریس میشه استفاده کرد.
ولی من از فرمول مثلثات بهتون یاد می دم.
نکته: sin و cos توابعی هستند که زاویه رو بر حسب رادیان باید درافت کنند.
ما درجه رو بلدیم و میخوایم دایره رو 360 درجه یا یک دور کامل حول مستطیل بچرخونیم.
برای اینکار باید رابطه رادیان و زاویه رو بلد باشیم.
فرمول تبدیل زاویه به رادیان اینه :
رادیان مساوی هست با : (درجه ضربدر عدد پی ) و حاصل تقسیم بر 180
پس اگه زاویه تتا رو توی برنامه دادیم باید ضربدر 180 و سپس تقسیم بر 3.14 کنیم.

http://s5.picofile.com/file/8148880550/degree_radian.jpg

ادامه می دیم.
--
این کد باعث ایجاد یک دایره میشه که حول یک مربع میچرخه.
کاری که می کنم اینه که ابتدا فرض میشه یک دایره رسم کردیم.
سپس دایره قبلی رو با باید پاک کنیم تا اثرش نمونه و یک دایره دیگه ایجاد کنیم که یک درجه حول مربع چرخیده.
--
به طور کلی ما هر بار که دایره جدید رو ایجاد می کنیم باید دایره ی قبلی رو مخفی پاک کنیم.
هر بار یکی به teta اضافه می کنیم و دایره جدید رو با رنگ سبز ایجاد می کنیم.
و چون رنگ پس زمینه سیاه هست. دایره ی قبلی رو با رنگ سیاه پاک می کنیم(به وسیله رسم یک دایره سیاه روی دایره سبز قبلی)

علت اینکه از توابع cleardevice و clearviewport استفاده نمی کنم اینه که ما نمی خوایم کل پس زمینه رو پاک کنیم و پردازش اضافه نمی خوام داشته باشه. پس سعی کردم بهترین برنامه و الگوریتم تمیز خودمو که تست هم کردم براتون بنویسم:

#include <graphics.h>
#include <dos.h>
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>
#include <math.h>
//circle Rotate 
//Author : Sajjad3011
//compiler: Turbo C++ windows 7 64bit
int main(void)
{
   /* request auto detection */
   int gdriver = DETECT, gmode, errorcode;
   int midx,midy;
   int radius1 = 10;
   int radius2=100;
   float x1,y1,x2,y2,deltaX,deltaY;

   /* initialize graphics and local variables */
   initgraph(&gdriver, &gmode, "c:\\TurboC3\\BGI");

   /* read result of initialization */
   errorcode = graphresult();
   if (errorcode != grOk)  /* an error occurred */
   {
      printf("Graphics error: %s\n", grapherrormsg(errorcode));
      printf("Press any key to halt:");
      getch();
      exit(1); /* terminate with an error code */
   }

   clearviewport();
   midx = getmaxx() / 2;
   midy = getmaxy() / 2;

   x1=midx-10;
   y1=midy-10;
   x2=midx+10;
   y2=midy+10;

   rectangle(x1,y1,x2,y2);
   setcolor(getmaxcolor());

   int teta=0;
   while(!kbhit())//while keayboard hit
   {

    //clear or hide old circle using black color
    deltaX=radius2*cos((teta*3.14)/180);
    deltaY=radius2*sin((teta*3.14)/180);
    setcolor(BLACK);
    circle(midx+deltaX,midy+deltaY,radius1);

    //draw new circle
    teta++;
    deltaX=radius2*cos((teta*3.14)/180);
    deltaY=radius2*sin((teta*3.14)/180);
    setcolor(LIGHTGREEN);
    circle(midx+deltaX,midy+deltaY,radius1);

    delay(10);

    if(teta>360)teta=0;
   }
   /* draw the circle */


   /* clean up */
   getch();
   closegraph();
   return 0;
}

خروجی: با اجرای برنامه،دایره شروع به چرخیدن حول مستطیل می کنه و همینطور می چرخه تا یک کلید رو بزنیم و تمام.

http://s5.picofile.com/file/8148880500/circle_rotation_over_rectangle_sajjad3011.jpg



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

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 منسوخ هست.
۰ نظر موافقین ۰ مخالفین ۰ ۲۸ خرداد ۹۴ ، ۰۴:۳۹
مدیرکل
۵ نظر موافقین ۰ مخالفین ۰ ۲۶ خرداد ۹۴ ، ۲۲:۳۹
مدیرکل
۰ نظر موافقین ۰ مخالفین ۰ ۲۶ خرداد ۹۴ ، ۲۲:۳۲
مدیرکل
۰ نظر موافقین ۰ مخالفین ۰ ۲۶ خرداد ۹۴ ، ۰۳:۳۶
مدیرکل

کلاس Random در یونیتی :
این کلاس برای تولید اعداد تصادفی به کار می رود.
متغیرهای static از کلاس Random عبارتند از :

متغیر insideUnitCircle:
یک نقطه تصادفی از بردار دو بعدی داخل دایره ای به شعاع 1 تولید می کند.
با کمی تغییر می تونیم کارهای دیگه ای هم انجام بدیم.
شکل کلی :

کد:
static var insideUnitCircle: Vector2;

متغیر insideUnitCircle : برای ایجاد نقطه ی تصادفی دو بعدی داخل یک دایره :
مثال : اسکریپ زیر موقعیت ابجکت جاری را داخل دایره ای به شعاع 5 و موقعیت مرکزی صفر(x=0,y=0,z=0) تنظیم می کند.
کد PHP:
using UnityEngine;
using System.Collections;

public class 
Example MonoBehaviour {
    public 
Vector2 newPosition Random.insideUnitCircle 5;
    
void Example() {
        
transform.position.newPosition.x;
        
transform.position.newPosition.y;
    }

متغیر insideUnitSphere : ایجاد نقطه ی تصادفی داخل کره
کد:
static Vector3 insideUnitSphere;
مثال :
اسکریپت زیر مثل اسکریپت فوق است فقط برای یک کره(sphere):
کد PHP:
using UnityEngine;
using System.Collections;

public class 
Example MonoBehaviour {
    
void Example() {
        
transform.position Random.insideUnitSphere 5;
    }


متغیر onUnitSphere: برای ایجاد نقطه ی تصادفی روی کره به شعاع 1
مثال :
کد PHP:
using UnityEngine;
using System.Collections;

public class 
Example MonoBehaviour {
    
void Example() {
        
rigidbody.velocity Random.onUnitSphere 10;
    }


متغیر rotation: برای ایجاد یک چرخش تصادفی
مثال :
کد PHP:
using UnityEngine;
using System.Collections;

public class 
Example MonoBehaviour {
    
void Example() {
        
transform.rotation Random.rotation;
    }


متغیر rotationUniform:برای ایجا یک چرخش تصادفی با توزیع یکنواخت
مثال:
کد PHP:
using UnityEngine;
using System.Collections;

public class 
Example MonoBehaviour {
    
void Example() {
        
transform.rotation Random.rotationUniform;
    }



متغیر Random.seed :مجموعه دانه(seed) برای مولد عدد تصادفی.
مولد عدد تصادفی است واقعا تصادفی نیست، بلکه تولید اعداد در دنباله از پیش تعیین شده (ارزش در دنباله "jump" در اطراف محدوده در چنین راهی که آنها ظاهر می شود تصادفی برای اغلب اهداف).
با استفاده از مقدار ineger تصادفی که تولید میشه می تونیم game play های غیر قابل پیش بینی رو برای دشمن ایجاد کنیم و کاربر نتونه اونا رو حدس بزنه.به طور معمول از برخی از مقادیر دلخواه مانند ساعت سیستم قبل از توابع عدد تصادفی استفاده می شود.
مثال:
کد PHP:
using UnityEngine;
using System.Collections;

public class 
Example MonoBehaviour {
    private 
float[] noiseValues;
    
void Start() {
        
Random.seed 42;
        
noiseValues = new float[10];
        
int i 0;
        while (
noiseValues.Length) {
            
noiseValues[i] = Random.value;
            print(
noiseValues[i]);
            
i++;
        }
    }


متغیر Random.value : عددی بین 0.0 و 1.0 را بر می گرداند.
هر دو مقدار باید به طور مناسب تولید شوند. این تابع با توابع تولید عدد تصادفی دیگر کمی فرق دارد که عددی کچکتر تر از اما دقیقا مساوی با 1.0 تولید می کند.
مثال :
کد PHP:
using UnityEngine;
using System.Collections;

public class 
Example MonoBehaviour {
    
Color RandomColor() {
        return new 
Color(Random.valueRandom.valueRandom.value);
    }


توابع کلاس Random :

Random.Range : عدد تصادفی بین دو عدد رو بر می گردونه که حداقل min و حداکثر max باشه:
شکل اول:
کد:
static float Range(float min, float max);
مثال:
کد PHP:
using UnityEngine;
using System.Collections;

public class 
Example MonoBehaviour {
    public 
GameObject prefab;
    
void Start() {
        
Vector3 position = new Vector3(Random.Range(-10.0F10.0F), 0Random.Range(-10.0F10.0F));
        
Instantiate(prefabpositionQuaternion.identity) as GameObject;
    }


شکل دیگر:
کد:
static int Range(int min, int max);
مثال:
کد PHP:
using UnityEngine;
using System.Collections;

public class 
Example MonoBehaviour {
    
void Example() {
        
Application.LoadLevel(Random.Range(0Application.levelCount));
    }

مقدار برگشتی هرگز max نیست مگر اینکه min و max برابر باشند.
مترجم:sajjad3011
۰ نظر موافقین ۰ مخالفین ۰ ۲۴ خرداد ۹۴ ، ۰۵:۴۵
مدیرکل
آموزش های خوبی به زبون دوستانه برای شما و فقط متنی هست و تصویری / از دست ندید :
http://promakers.ir/showthread.php?tid=8341&pid=93028#pid93028
۰ نظر موافقین ۰ مخالفین ۰ ۲۳ خرداد ۹۴ ، ۱۹:۰۲
مدیرکل
بردار همون نقطه تو فضای سه بعدی هست یا چهار بعدی یا n بعدی.
در این ضرب هر آیتم در آیتم متناظر ضرب میشه و حاصل جمع میشه.
توی ویکی پدیا گفته:

http://fa.wikipedia.org/wiki/%D8%B6%D8%B1%D8%A8_%D8%AF%D8%A7%D8%AE%D9%84%DB%8C


حاصل ضرب داخلی دو بردار یک عدد هست. حالا این عدد به چه دردی می خوره؟

در ریاضیات فضای ضرب داخلی یک فضای برداری است.

 ضرب داخلی یا ضرب اسکالر به ما این امکان را میدهد که مفاهیم هندسی از قبیل زاویه و طول یک بردار را تعریف نماییم.

با وجود آنکه در این نوع ضرب دو بردار در هم ضرب میشوند ولی حاصلضرب این دو بردار یک عدد اسکالر است.

ضرب داخلی در ریاضیات،مهندسی،وفیزیک کاربردمای فراوانی دارد.

---

مثال :

اگر ضرب داخلی دو بردار غیر صفر، برابر 0(صفر) شود آن دو بردار بر هم عمودند.

----------
تابع Quaternion.Dot ضرب نقطه ای(داخلی/اسکالر) بین دو  چرخش (rotation) است.اما توضیح چندانی در help یونیتی در مورد آن ندیدیم.

اما در باره ی تابع  Vector3.Dot  شاید بد نباشد توضیح دهیم.
این تابع ضرب نقطه ای(داخلی/اسکالر) بین دو بردار است.
شکل کلی و توضیحات :

Vector3.Dot 

static function Dot (lhs : Vector3, rhs : Vector3) : float

Description

Dot Product of two vectors.

Returns lhs . rhs.

For normalized vectors Dot returns 1 if they point in exactly the same direction; -1 if they point in completely opposite directions; and a number in between for other cases (e.g. Dot returns zero if vectors are perpendicular).

For vectors of arbitrary length the Dot return values are similar: they get larger when the angle between vectors decreases.

// detects if other transform is behind this object
var other : Transform;
function Update()
{
if (other) {
var forward = transform.TransformDirection(Vector3.forward);
var toOther = other.position - transform.position;
if (Vector3.Dot(forward,toOther) < 0)
print ("The other transform is behind me!");//ابجکت دیگر پشت سر من است
}
}
ترجمه فارسی:
تابع Dot ، برای بردارهای نرمال،
مقدار 1 را برمی گرداند اگر آن نقطه دقیقا در همان جهت باشد.
اگر در جهت معکوس باشد مقدار منفی یک(-1) را بر می گرداند.
مقدار صفر برگشت داده می شود اگر دو بردار عمود باشند.

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

using UnityEngine;
using System.Collections;

public class test : MonoBehaviour {
	void Start() {
		transform.rotation = Quaternion.AngleAxis(90, Vector3.up); 
		print( Quaternion.Dot(transform.rotation, Quaternion.identity));
	}
}
۰ نظر موافقین ۰ مخالفین ۰ ۲۳ خرداد ۹۴ ، ۰۴:۴۲
مدیرکل

اینو تست کن :
به مسیر C:\Program Files\Adobe\Adobe Photoshop CS5 (64 Bit)\Locales\en_GB\Support Files برو و فایل tw10428.dat رو به tw10428.dat.old تغییر نام بده.اجازه ی Administrator نیازه و تاییدش کن.

http://s3.picofile.com/file/8193323792/change_photoshop_language_in_photoshop_cs6.jpg
فتشاپ رو باز کن ببین درست میشه یا نه.


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

پیدا شدن موجودات زنده در فضا توسط فضانوردان روس

به تازگی یک خبرگزاری روسی، مطلبی را منتشر کرده است که شاید باور کردنش اندکی سخت باشد. بر اساس این گزارش از ایستگاه بین المللی فضایی خبر رسیده است که فضانوردان موفق شده اند موجوداتی تک سلولی را بر روی سطح بیرونی ایستگاه ISS پیدا کنند.

ولادیمر سولوجف، رئیس عملیات فضایی ایستگاه بین المللی می گوید: «ما بر روی چراغ های بیرونی ایستگاه، پلانکتون های دریایی و موجوداتی میکروسکپی را پیدا کرده ایم. برای مشخص شدن این موضوع باید بر روی آن ها تحقیقات بیشتری را انجام دهیم.»

در حال حاضر آژانس فضایی روسیه نتوانسته توضیحی منطقی را برای پیدا شدن پلانکتون های دریایی در فضا پیدا کند. تنها توجیه کنونی این است که موج های جوی این موجودات را از سطح اقیانوس در زمین جدا کرده اند و با طی کردن فاصله ای بالغ بر ۳۳۰ کیلومتر، آن ها را بر روی ایستگاه فضایی قرار داده اند.

این موجودات تک سلولی طی یک راهپیمایی فضایی و نمونه گیری های به عمل آمده کشف شدند. فضانوردان تلاش داشتند تا در نمونه های خود میزان آلاینده های تولید شده توسط فضاپیماها را اندازه گیری نمایند، اما پس از تحلیل داده ها، ناگهان با موجوداتی زنده مواجه شدند.

هنوز مشخص نشده که آیا این موجودات تک سلولی مشغول تکثیر خود بوده اند یا خیر؛ اما اگر این موضوع به اثبات رسد، مدرک محکمی خواهد بود دال بر نظریه پخش زندگی از زمین، به کهکشان ها.

۰ نظر موافقین ۰ مخالفین ۰ ۲۲ خرداد ۹۴ ، ۰۵:۳۲
مدیرکل
یک روش استفاده از آلارم 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 رو به ما برگردونه.

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

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

if mouse_check_button(mb_left)
{

if 
position_meeting(mouse_xmouse_yاسم ابجکت دلخواه 
{
کد کاری که می خوایم انجام بشه.مثلا ایجاد یک دیوار یا آجر یا ....
}

}

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


    Label1.textSize=اندازه فونت
    Label1
.Typeface=Typeface.LoadFromAssets("BYEKAN.TTF")



خرید آموزش b4a فارسی با قیمت کم:
http://gameover.blog.ir/1395/04/03/%DA%A9%D8%AA%D8%A7%D8%A8-%D9%81%D8%A7%D8%B1%D8%B3%DB%8C-%D8%A7%D9%85%D9%88%D8%B2%D8%B4-b4a-%D8%B3%D8%A7%D8%AE%D8%AA-%DA%AF%DB%8C%D9%85-%D8%A2%D9%88%D8%B1
۱ نظر موافقین ۰ مخالفین ۰ ۲۰ خرداد ۹۴ ، ۱۷:۳۵
مدیرکل
۲ نظر موافقین ۰ مخالفین ۰ ۲۰ خرداد ۹۴ ، ۰۵:۳۶
مدیرکل

این تاپیک خارجی رو مطالعه کنید.(تشنگان از سر چشمه آب بنوشند):
http://www.b4x.com/android/forum/threads...t-i.10166/


توضیح :
ابتدا یه سرویس از نوع ماژول ایجاد کنید.
لی اوت ویجت رو در پنجره ی طراحی کنید.
یک پنل اضافه کرده و view های دلخواه رو بذارید روش
بدین ترتیب ویجت شما از روی این پنل ساخته خواهد شد.
کدی مثل این رو به سرویس ماژول اضافه کنید :
کد PHP:
Sub Process_Globals
    Dim rv 
As RemoteViews
End Sub

Sub Service_Create
    rv 
ConfigureHomeWidget("LayoutFile""rv"0"Widget Name")
End Sub

Sub Service_Start 
(StartingIntent As Intent)
    If 
rv.HandleWidgetEvents(StartingIntentThen Return
End Sub

Sub rv_RequestUpdate
    rv
.UpdateWidget
End Sub

Sub rv_Disabled
    StopService
("")
End Sub

Sub Service_Destroy

End Sub 
اپلیکیشن رو کامپایل و اجرا کنید.
به صفحه ی home برید و روی صفحه رو فشار داده یا لمس کنید تا ویجت شما در لیست ویجت ها لیست بش

خرید آموزش b4a فارسی با قیمت کم:
http://gameover.blog.ir/1395/04/03/%DA%A9%D8%AA%D8%A7%D8%A8-%D9%81%D8%A7%D8%B1%D8%B3%DB%8C-%D8%A7%D9%85%D9%88%D8%B2%D8%B4-b4a-%D8%B3%D8%A7%D8%AE%D8%AA-%DA%AF%DB%8C%D9%85-%D8%A2%D9%88%D8%B1
۰ نظر موافقین ۰ مخالفین ۰ ۲۰ خرداد ۹۴ ، ۰۵:۱۶
مدیرکل
۱ نظر موافقین ۰ مخالفین ۰ ۱۹ خرداد ۹۴ ، ۱۴:۴۱
مدیرکل
۰ نظر موافقین ۰ مخالفین ۰ ۱۸ خرداد ۹۴ ، ۲۱:۰۵
مدیرکل
۰ نظر موافقین ۰ مخالفین ۰ ۱۷ خرداد ۹۴ ، ۰۲:۱۵
مدیرکل
۰ نظر موافقین ۰ مخالفین ۰ ۱۷ خرداد ۹۴ ، ۰۰:۵۰
مدیرکل

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

کلیپ نمادین زیر پیامی از اون هست به داعش و حامیان آنها برای آزاد سازی گروگان ها.

لطفا حتما این کلیپ رو به اشتراک بذارید.

دانلود کرده و در فیسبوک یا هرجای دیگه ای می تونید کلیپ هاشو به اشتراک بذارید.

ممنون.

http://www.aparat.com/v/7mujc

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

با این کلید خط کش یا Ruler افقی و عمودی ظاهر میشه.
بعدش می تونید با کلیک و کشیدن ، نواحی رو دقیق روی میل های دلخواه تنظیم کنید و فاصله بندی ها اطراف هر لایه رو دقیق تر تنظیم کنید.

http://s6.picofile.com/file/8192209568/ctrl_R_photoshop.gif

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

gameover.blog.ir

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

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

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

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


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

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

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

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


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

Fire text effect:

fire text effect

Burning text effect:

burning text

Lava text effect:

lava text effect

Blazing text effect:

blazing text



لینک دانلود :
http://photoshoplayerstyles.com/download/fire.zip


اینم دانلود فونت های خوب :
دانلود فونت city burn:

http://www.dafont.com/city-burn.font

دانلود فونت blazed:

http://s6.picofile.com/file/8193049718/blazed.zip.html


دانلود فونت  Blackmoor-LET-Plain :
http://fonts5.com/html/b/Blackmoor-LET-Plain-1-0.html

دانلود فونت CharBB :
http://www.dafont.com/char-bb.font
۳ نظر موافقین ۰ مخالفین ۰ ۱۳ خرداد ۹۴ ، ۰۳:۴۶
مدیرکل
۰ نظر موافقین ۰ مخالفین ۰ ۱۳ خرداد ۹۴ ، ۰۱:۵۸
مدیرکل

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

http://persiangfx.com/fa/photoshop/style/golden-styles/

سپس از منوی window گزینه ی Style رو فعال کنید.

سپس به سربرگ style رفته و سپس روی آیکن فلش پایین(چند سطر و فلش پایین) کنار سربرگ style کلیک کرده و load style رو زده و استایل مورد نظر رو لود کنید.

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


http://s3.picofile.com/file/8191757776/goldStyle_photoshop.jpg


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

gameover.blog.ir


AI = Artificial Intelligence به معنی هوش مصنوعی هست.

هوش رو با منطق(logic) (دستورات شرطی مثل and و not و or و if و ... ) میسازن.

بعضی جاهاشو هم با دستورات محاسبات یا ریاضیات (Mathematics) میسازن(مثل add و sub و ... و دستورات جمع و تفریق و ... که توی درس assembly یا ... می تونید بخونید توسط CPU انجام میشه)

سال 86 یا 87 بود اگه اشتباه نکنم یه کد هوش مصنوعی با CPP نوشته بودم که واقعا فکر می کرد و می تونست یاد بگیره و مغزشو گسترش بده و تصمیم بگیره تا در کل یک منطقه به حرکت در بیاد. روش کار من الگوریتم پر کردن یک ناحیه ی بسته بود که با داشتن مختصات داخل اون میومدم چهار جهتش رو بررسی می کردم اگه اطرافش خالی بود مختصات نقاط اون چهار طرف بالا و پایین و چپ و راست رو save می کردم توی یک stack یا پشته یا آرایه و بعدش اونا رو دونه دونه از آرایه بیرون میاوردم و چهار جهت هر یک از اونا رو دوباره بررسی می کردم که جای خالی داریم یا نه اگه داشتیم مختصات اون نقاط رو بازم می ریختم توی آرایه و همینطور الی آخر تا همه جا رنگ آمیزی بشه.

خوب این روش کمک های زیادی به ما می کنه و می تونیم چیزای زیادی برای درک خوش مصنوعی در زندگی و جاهای دیگه ازش یاد بگیریم.

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

و همینطور باید جاهای بررسی شده تا رسیدن به اولین دیوار رو علامتگذاری کرد تا دوباره اون نقاط رو بررسی نکنه و وقت هدر نده.

اینا همش از لحاظ تئوری،توضیحات بود که من براتون دادم.

واسه اینکه هوش بنویسید باید توابع و روش ها و فکر خودتون رو شترش بدید و مهم از همه اینه که باید کد ببینید و فیلم های یوتیوب و سایت های ایرانی و غیره ... رو بررسی کنید یا مطالعه کنید.



هوش با هوش فرق می کنه.

مدلی از هوش مصنوعی رو توی ماشین های مسابقه ای مثل need for speed(نیاز برای سرعت) می بینیم که یک مسیر مشخص رو بعضی ماشین ها با فکر دنبال می کنن.

مدلی از هوش رو توی بازی کمبات می بینیم که دشمن در شرایط مختلف توسط توابع و درخت تصمیم(decision tree) یا گراف و ... می یاد تصمیماتی رو اتحاذ می کنه

و مدلی از هوش رو در بهترین برنامه های هوش داریم مثل شطرنج و فوتبال


در بحث کل کل کردن با هم همه استادیم و ابتدا تلاش های زیادی می کنیم تا کل همدیگرو بخوابونیم.
ولی در عمل می بینیم خیلی از ما ایرانی ها هنوز بلد نیستیم چطوری از فکرمون استفاده کنیم.
در مورد بازی فوتبال به صورت تئوری خودم قصد نوشتن یک فوتبال رو داشتم .مدت ها پیش تصوراتی توی ذهنم بود. توی فکرم این بود که konami از چه روشی استفاده می کنه جدای از گرافیک و سیار مباحث مثل فیزیک و ... .
اونچیزی که توی ذهنم بود این بود که بازیکن ها در فاصله هایی از هم قرار دارن و می تونن نسبت به هم تصمیم بگیرن.
تصمیم حرکت نزدیک ترین فرد تیم حریف به سمت کسی که توپ زیر پاش هست و توسط player داره کنترل می شه. حالا این کنترل می تونه توسط character controller یونیتی باشه و play کردن animation با استفاده از درخت ادغام(bledn tree) در animator componet یا توسط چیزای دیگه.

در هر صورت هرکس روش هایی رو بدست میاره و خودش درک می کنه.

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

در درس بعد یکی از ساده ترین پروژه های هوش رو که از روی یک فیلم نیگا کردم بهتون خواهم آموخت.
زبان های پرولوگ و C و زبان های زیادی واسه نوشتن هوش بکار می رن(شما هم می تونید با زبون دلخواه script بسازید).

اما درگیر جزئیات نبشید و سعی کنید مسائل رو به شیوه ی خودتون و با راهکار(AlgoRithm) های مناسب خودتون حل کنید و یک clean code(به جای یک dirty code) بنویسید.

یه پروژه بسازید و یک plane و یک سیلندر و یک مکعب بذارید . مکعب اسمشو بذارید enemy(دشمن) و اسم سیلندر رو بذارید player(بازیکن)
(دشمن می خواد بازیکن رو پیدا کنه و دنبالش کنه)
[تصویر: player_enemy.jpg]
واسه هر دو تا ابجکت enemy و player کامپوننت rigidbody رو add کنید(بلد نیستید پیام خصوصی بزنید چون این سوالات مبتدی جاش اینجا نیست)
من واسه plane تکستجر انداختم و نرمال مپ کردم و واسه دو تا ابجکت هم متریال به رنگ دلخواه ساختم. شما می تونید اونا رو دلخواه تنظیم کنید مهم نیستن زیاد.
plane رو انتخاب کنید و سپس گزینه ی static رو توی کادر خصوصیات فعال کنید.
از منوی window گزینه ی navigation رو انتخاب کنید.
[تصویر: navigation.jpg]
در inspector وارد سربرگ bake شده و دکمه ی bake زو بزنید وچند لحظه صبر کنید تا plane در اصطلاح bake بشه.(باعث میشه چیزی رو که به این bake نسبت میدیم فقط بتونه روی همین plane حرکت کنه و از این محدوده خارج نتونه بشه)
چند لحظه صبر کنید اگه bake کامل بشه رنگ plane رو آبی می کنه
[تصویر: bake.jpg]
ابجکت دشمن enemy رو انتخاب کنید و سپس از منوی component گزینه ی navigation و سپس nav mesh agent رو انتخاب کنید.
[تصویر: navMeshAgent.jpg]
یه اسکریپت سیشارپ بسازید و بعد از ذخیره بکشیدش روی enemy رها کنید:
 void Update () {
        enemy.SetDestination(player.transform.position);
    }

البته کد رو توی تابع آپدیت نباید بذاریم چون در هر فریم از زمان اجرا میشه و وقت پردازنده رو می گیره و بهینه نیست . خودتون شرط بذارید هر وقت خواستید.
enemy رو انتخاب کنید و در پنل inspector در قمت اسکریپت اضافه شده به متغیرهای player و enemy ابجکت های enmey و player رو نسبت بدید(اونا رو بکشید و رها کنید توی کادر مربوط):
[تصویر: script_variables.jpg]
اجرا بگیرید و ببینید چه اتفاقی میفته .

نوعی از هوش رو با پلاگین های اماده می سازن. مثل AI Driver Toolkit 3.3 که واسه ایجاد رقابت بین ماشین های مسابقه ای ازش استفاده می کنن.
[تصویر: ai_driver_toolkit.jpg]
[تصویر: ai_driver_toolkit_2.jpg]
یه چیزی داریم توی هوش مصنوعی که توی یونیتی تحت عنوان rayCast ازش استفاده میشه . واسه پرتاپ سیگنال برای اینکه چک کنیم مانعی در سر راه gameObject وجود داره یا نه.
[تصویر: rayCasts.jpg]
مثال : توی درس طراحی الگریتم دانشگاه یه متنی رو ترجمه کردم راجع به حرکت ربات مسیر یاب. روش کار رو براتون شرح میدم و در کنارش عکسی از پرتاب سیگنال در یونیتی رو میذارم که از فیلم خارجی ای برداشتم.
یک ربات مسیر یاب زیرش چند تا سنسور(حسگر) داره و چند تا چراغ قرمز.
فرض کنید این رباط م خواد روی یه زمین آبی روشن و دقیقا روی یک خط سفید حرکت کنه.
اما این دوتا هر دوشون روشن هستن و تشخیص اونا سخته.
در روانشناسی رنگ ها، جسمی که تیره تر باشه نور رو کمتر منعکس می کنه و جسمی که رنگش روشن تر باشه نور رو بیشتر انشار میده(یا emit می کنه)
چراغ های زیر ماشین(چراغ های زیرین چپ و راست) نوری رو با زمین پرتاب می کنن و سنسور های زیر ماشین (سنسورهای زیرین چپ و راست) منتظر دریافت نورهای پرتاب شده هستند که توسط زمین زیرین ماشین باید منعکس بشن.
فرض کنید ماشین روی خط سفید هست و کمی به سمت چپ کج شده . یعنی لاستیک چپ روی خط سفید نیست و روی زمین آبی هست.
تمام لامپ های قرمز زیر ماشین دارن نور رو پرتاب می کنن.
اما فقط در این لحظه سنسورهای زیرین روبات که در سمت راست هستن نور رو دریافت کردن. چون سمت راست ماشین روی خط سفید بود و طبق روانشناسی رنگ ،خط سفید نور بیشتری رو باید بازتاب کنه. پس سنسورهای راست باید دستور بدن که ماشین فرمون بده به سمت راست و بگه که ماشین باید کمی سرشو راست کنه.(یعنی به چرخ چپ دستور چرخش به راست و چرخش رو می ده)

بعد از چند لحظه ماشین جلو میره و اینبار سرماشین به راست خم شده و سنسورهای چپ روی line سفید قرار دارن. پس ماشین دستور می ده که به سمت چپ فرمون بده و همینطور الی آخر.

در حقیقت اگه دقت کنید ماشین های line Tracker یا line Follower یا دنبال کننده ی خط با روش چپ و راست کردن و چرخش چرخ ها توی مسیر به حرکت در میان واسه همینه که وقتی توی تلویزیون می بینید روبات ها روی خط دارن راه می رن کمی چپ و راست می کنن.

البته اگه تعداد چراغ ها و سنسور ها زیاد تر باشه دقت بیشتر میشه و همینکه روبات از روی خط کمی چپ و راست شد سریع میاد روی خط و سعی می کنه توی همون line حرکت کنه
توی یونیتی هم ما چیزی به اسم rayCast داریم که کار همون چک کردن مانع ها(obstacle) رو انجام میدن(یعنی rayCast می کنه که جلوش چیزی هست یا نه).
حالا اینکار رو میشه با اسکریپت نویسی دستی انجام داد یا توابع مربوط که میان خودشون همه ی کار رو انجام می دن و فقط بررسی می کنن مانع در سر راه یا در زاویه ی فلان و فاصله ی فلان وجود داره یا خیر وبه ما یه خروجی بلی یا خیر میدن:
true ( یا عدد 1) : وجود دارد/پاسخ مثبت است یا ...
false(معمولا عدد 0 تا هر چیزی غیر از 1 رو می گیم false) : وجود ندارد/پاسخ منفی است یا ....
[تصویر: ai_sensor_raycast.jpg]
[تصویر: ray_1.jpg]
تابع RayCast رو هم اینجا توضیح دادیم قبلا:
http://gameover.blog.ir/1394/08/18/%D8%A2%D9%85%D9%88%D8%B2%D8%B4-raycast-%D8%AF%D8%B1-%DB%8C%D9%88%D9%86%DB%8C%D8%AA%DB%8C

مثالی از هوش :

کپسول: دارای تگ یا برچسب Player
مکعب : دشمن یا Enemy

خوب فکر کنید می خوایم کاری کنیم که اگه هر گیم ابجکتی با تگ یا برچسب "Player" در محدوده یا trigger دشمن باشه متغیر takDamage(وضعیت خطر) فعال یا true بشه و به محض خروج اون گیم ابجگت از محدوده ی دشمن،takDamage غیر فعال یا false بشه.

تا بعدا با بررسی مقدار true یا false بودن این متغیر ، عمل تیر اندازی یا تعقیب یا ... توسط دشمن انجام بشه.

برای تنظیم اینکار به کاراکتر دشمن یک کامپوننت فیزیک box Collider می دیم و siez.xyz رو در کادر inspector کمی زیاد می کنیم تا یک محدوده ی دلخواه برای دشمن ایجاد بشه.


[تصویر: box_collider_1.jpg]

اینم اسکریپتی js ای که باید بدیم به دشمن یا  Enemy :

(نکته:باز هم توصیه می کنیم شما سعی کنید با سیشارپ کدتون رو بنویسید چون استاندارد تره)

//js 
var health=10;//اینم نیاز نبود، حالا واسه سلامتی درست کردیم
var TakeDamage:boolean;

function OnTriggerEnter(other : Collider){
if(other.tag=="Player"){
TakeDamage=true;
}
}

function OnTriggerExit(other:Collider){
if(other.tag=="Player"){
TakeDamage=false;
}
}

واسه تابع update هم می تونیم کدی بنویسیم که مثلا اگه کلیدی رو فشار داده باشیم پایین،مقدار متغیر health رو کم کنه و اگه از منفی یک (-1) کمتر شد اونو نابود کنه و یه پیام بده.

function Update(){
if(TakeDamage) //or if(TakeDamage==true)
{
if(Input.GetButtonDown("Fire1"))//or if(Input.GetKey("هر حرفی که دوست داریم"))
 {
  health -- ; // health = health  - 1;
  }
 }
  
//اگه سلامتی صفر شد پیام بده دشمن مرد و گیم ابجکت دشمن رو نابود کن:
if(health < -1)
{
print("doshman mord");
health=0;
Destroy(gameObject);
}

}//update

نکته : اگه Tag یا برچسب رو نمی دونید چیه اینجا رو مطالعه کنید :

http://gameover.blog.ir/1394/11/22/%D8%AA%DA%AF-%D8%AF%D8%B1-%DB%8C%D9%88%D9%86%DB%8C%D8%AA%DB%8C-%DA%86%DB%8C%D8%B3%D8%AA-what-is-tag-in-unity

اینم یک سری اسکریپت در یونیتی:

http://gameover.blog.ir/1394/01/22/%D9%87%D9%88%D8%B4-%D9%85%D8%B5%D9%86%D9%88%D8%B9%DB%8C-%D8%AF%D8%B4%D9%85%D9%86-%D9%88-%D8%AD%D9%85%D9%84%D9%87-%D9%88-%D8%AC%D9%88%D9%86-%D8%AF%D8%B1-%DB%8C%D9%88%D9%86%DB%8C%D8%AA%DB%8C




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


برای اجرای یک کد بعد از چند ثانیه باید نوع Start رو IEmulator بگیرید و از تابع WaitForSeconds استفاده کنید. مثال:



public float Delay = 2.0f;//دو ثانیه تاخیر
     IEnumerator Start()
     {
         yield return new WaitForSeconds(Delay);
         کد دلخواه رو اینجا بذارید
     }

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

تابع خطی یعنی تابعی که مخرج نداره،رادیکال نداره،لگاریتم نداره،مثلثات نداره

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

مجموعه ی کامل ، جامع و ماندگار ریاضیات

http://dl.riazisara.ir/pic/post/884.jpg

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

در این کتاب که با شیوه ای نوین تالیف گردیده است مطالب ریاضیات پایه و دیفرانسیل در قالب درسنامه ها، مثال ها و تست های طبقه بندی (کنکورهای سراسری و آزاد) ارائه شده است.

دانلود و مطالعه این کتاب ارزشمند را به تمامی دانش آموزان (رشته های علوم تجربی، علوم انسانی و ریاضی فیزیک)، داوطلبان کنکور، و به ویژه دبیران و همکاران و مشاوران محترم توصیه می کنیم.


این کتاب در ۱۸ فصل به شرح زیر تالیف گردیده است:

فصل اول: اتحادها و دو جمله ای نیوتن

فصل دوم: معادلات

فصل سوم: قدرمطلق و ویژگی های آن

فصل چهارم: جزء صحیح

فصل پنجم: تصاعد عددی (تصاعد حسابی)

فصل ششم: تصاعد هندسی

فصل هفتم: لگاریتم

فصل هشتم: مثلثات

فصل نهم: بخش پذیری

فصل دهم: تابع

فصل یازدهم: دستگاه اعداد حقیقی

فصل دوازدهم: دنباله

فصل سیزدهم: سری

فصل چهاردهم: حد

فصل پانزدهم: پیوستگی

فصل شانزدهم: مجانب

فصل هفدهم: مشتق

فصل هجدهم: انتگرال

 

http://dl.riazisara.ir/download/darsnameh/konkoor/riaziat-payeh-daraee.rar

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

http://samandehi.ir
اگه میخوای راحت کار کنی، حتما مجوز لازم داری.
متولی مجوز دادن، معاونت مطبوعاتی ارشاد، دفتر ساماندهی سایتهای اینترنتی هست به آدرس samandehi.ir که شما وارد این سایت میشی، برای خودت یه اکانت درست میکنی، و سایت خودت رو اونجا ثبت میکنی و منتظر تایید میشی که معمولا زیاد طول نمیکشه. سایتهای خبری نیاز به حضور فیزیکی خود شما در محل فوق داره که تو خیابون قائم مقام فراهانی تهران، بالاتر از تهران کلینیک، خیابان هشتم، پلاک هفده هست، در غیر اینصورت سایت خبری شما فیلتره سه سوته....اگر هم سایتت فیلتر شده، از طریق همون سایت ساماندهی میتونی اعتراض رسمی بدی.

خوش باشی

-=
منبع:
http://www.cloob.com/timeline/answer_103053_754964

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

http://blenderartists.org/forum/attachment.php?attachmentid=163852&d=1324133211


http://s3.picofile.com/file/8190113218/followPath.jpg

http://s3.picofile.com/file/8190113242/constraint.jpg

--

توضیح به زبان اصلی:

- start new project
- move the default Cube to second layer
- add a path
- resize path to make it longer
- switch to edit mode
- change shape of the path in top view so it looks like a curve of a street
- switch back to object mode
- move the Cube back to first layer
- add a constraint for a cube to follow path, select target (NurbsPath)
and check 'Follow Curve', the default Forward (Y) and Up (Z) is selected

---

ترجمه توسط sajjad3011 :


1)یک پروژه جدید بسازید  ctrl+N


2)shift+A بزنید و یک Cube اضافه کنید(از بخش mesh)


3) M بزنید و Cube رو ببرید به لایه ی 2


4) shift+A بزنید و یک path(مسیر) اضافه کنید.


5) Tab بزنید و به edit Mode برید و شکل منحنی رو (با راست کلیک روی نقطه ها و زدن کلید G=Grab و و حرکت ماوس) تغییر بدید.


6) به object mode برید(کلید Tab)


7)به لایه 2 برید و Cube رو انتخاب کنید و M زده و به لایه ی اول منتقلش کنید.


8)از لایه اول cube رو انتخاب کنید و یک Constraint بهش اضافه کنید(دکمه ی با آیکن زنجیر کنار بخش render و نزدیک دکمه ی آچار)(البته با زدن Space کادر یانبر باز می شه اونجا هم می تونید Add constraint رو تایپ کنید و اضافش کنید)

Target (مقصد) رو بذارید روی منحنی(NurbsPath) و گزینه ی گزینه ی Follow Curve(دنبال کردن منحنی) رو فعال کنید . Forward رو هم روی محور Y رها کرده و Up رو روی Z بذارید باشه.


9)دکمه ی Animateb Path رو بزنید تا انیمیشن ایجاد بشه.


10)ماوس رو توی صحنه برده و برای اجرای انیمیشن Alt+A بزنید تا مکعب منحنی رو دنبال کنه.


11) نکته : برای تغییر جهت مسیر کافیه روی منحنی راست کلیک کنید تا انتخاب بشه و سپس Space رو بزنید و از کادر میانبر گزینه ی Switch Drection(تعویض جهت یا سوئیچ جهت) رو انتخاب کنید.


موفق باشید . 

منبع :

http://blenderartists.org/forum/showthread.php?239830-Object-following-path-and-curve-Blender-2-6

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

انیسوتروپیک برای ایجاد سطوح مثل بدنه ی ماشین یا زنجیر یا همین چیزا بکار می برمش و می تونیم یک تکستچر environment هم بندازیم و خیلی زیبا بدنه ی ماشین رو باهاش ایجاد کنیم... و اگه پارامتر Roughness رو زیاد کنیم پرز و خوردگی و نویز زیاد میشه و میشه باهاش چیزی شبیه سطح کدر پلاستیکی هم ایجاد کرد.....
------
تعریف دقیقشو نمی دونم ولی با تمرین و تست می تونیم حالت های زیادی ازش در بیاریم که از هر کدومشون خودمون م تونیم یه عالمه آموزش در بیاریم.

-

نکته:این اموزش صرفا برای render به درد می خوره و توی ساخت بازی سه بعدی نمی تونید خروجی بگیرید(جز ساخت پس زمینه و عکس های رندر شده)

http://s5.picofile.com/file/8111684218/anisotropic_surface.jpgتوی عکس همه چی معلومه..... ببینید توی cyclec render چه چیزیایی میشه ساخت :
یه سطح براق(مثل فلز استیل) یا سطح خودکار رو میشه با این روش ساخت.
یه تکستچر محیطی (Environment texture) هم می تونید بندازید روی مدل(که اینجا تصویری از کوه رو انداختم)

=------------------
پارامتر roughness هم هرچی مقدارش زیادتر بشه نویز و پرز بیشتر میشه....
----------------------------
texture هم که میندازید روی مدلتون، در حالی که مدلتون در حالت انتخاب هست،برید توی edit mode و U بزنید و smart unwrap یا unwrap و بقیه گزینه ها رو تست کنید ببینید توی رندر کدومشون بهتر تصویر رو رندر می کنه
-----------------------------
سوالی بود ازم بپرسید

۱ نظر موافقین ۰ مخالفین ۰ ۰۳ خرداد ۹۴ ، ۱۶:۴۹
مدیرکل
//---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;
}
۰ نظر موافقین ۰ مخالفین ۰ ۰۳ خرداد ۹۴ ، ۰۸:۰۰
مدیرکل

https://cms-assets.tutsplus.com/uploads/users/30/posts/17274/final_image/final1.jpg

خلاصه:

ابتدا با مداد b6 dh ... با نیگا کردن به عکس برسلی می تونید طرح بزنید و سپس برید توی فتوشاپ و یواش یواش با کم و زیاد کردن شدت براش(قلمو) و ... رنگ آمیزی کنید. بعدش آروم آروم روی جزئیات و نور فکر کنید و برق چشم ها و الی آخر.

ادامه :

http://design.tutsplus.com/tutorials/liu-kang-in-photoshop--psd-18513

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

با یه مثال حالیتون می کنم :D

- همه انسان‌ها می‌میرند
- سقراط انسان است
- بنابراین: سقراط مردنی است

منبع : ویکی پیا

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

کد زیر رو توی رویداد 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;
 
و بقیه رو هم باید اسپرایت های دلخواه رو نام بدید و مثل همین روشی که گفتم توی اسکریپت ها تغییرات رو انجام بدین.
۰ نظر موافقین ۰ مخالفین ۰ ۰۱ خرداد ۹۴ ، ۰۱:۰۱
مدیرکل
یادتون نره به ابجکت ها collider بدید(توی کادر اجزای صحنه یا hierarchy انتخاب کرده و در کادر خصوصیات insoector روی دکمه ی add component بزنید و تایپ کنید collider و کالیدر یا برخوردکننده ی مربوط رو انتخاب کنید)


    // Destroy everything that enters the trigger

    
function OnTriggerEnter (other Collider) {
        
Destroy(other.gameObject);
    }


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


انتخاب ابجکت تصادفی

ins choose(object1,object2,object3,...)

انتخاب روم تصادفی

select_room_to_gochoose(room1,room2,room3,...)

room_goto(select_room_to_go)

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