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

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

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

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

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

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

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

بایگانی
پیوندها
یادتون نره به ابجکت ها 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)

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

http://s6.picofile.com/file/8174730342/uvMapBestTut_sajjad3011.jpg

http://s4.picofile.com/file/8101030034/paint_on_model_feshorde_ba_AVC_sajjad3011.zip.html

اینم آموزش رنگ کردن UV Map:


 

http://s5.picofile.com/file/8111734250/uv.jpg

UV رو که ساختید F3 بگیرید و به صورت png ذخیره کنید بعدش ببرید توی فتوشاپ و رنگ بزنید.

دلتون می خواد مثل شکل بالا تصویر دلخواه از تکستچر مورد نظرتون رو روی هر جای دلخواه مدلتون قرار بدید؟
---
اوکی.... بهتون یاد می دم تا به آرزتون برسید....
----
وارد blender 2.68 و مکعب پیش فرض رو با راست کلیک روش انتخاب کنید .
----
Tab بزنید تا به Edit mode برید....
------
A رو یکی دوبار بزنید تا کل مدلتون انتخاب بشه....(A به معنی All هست که باعث انتخاب یا عدم انتحاب کل face ها یا vertext یا Edge ها میشه)

سپس u بزنید و از منوی باز شده unwrap رو انتخاب کنید...
--------
بقیه رو توی PDF من بخونید:

http://s5.picofile.com/file/8111746768/UV_Texturing_in_blender_sajjad3011.zip.html

 

اینم ببینید:

http://promakers.ir/showthread.php?tid=7758&pid=115527#pid115527

 

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

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

gameover.blog.ir

سازنده:sajjad

http://s5.picofile.com/file/8110448350/cloud1.gif

توی این آموزش تصویری همه چی به زبون تصویری و متن انگلیسی در قالب HTML هست که من فشرده کردم با winRar.
حجمش کمتر از 3 مگ هست. و واقعا ارزش داره دانلودش کنید.
منبع اصلیش اینجا بود که من چون دیدم فایل های png زیاد داره واستون سخته دانلود کنید لذا کل صفحه ی وب رو دانلود و با winRar به Rar فشرده کردم تا دانلود و unZip کنید و با fireFox فایل اصلیشو اجرا کنید و لذت ببرید.
----
https://www.mediafire.com/?dn3nz69lu9rcbxe

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

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

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


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

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



http://opizo.com/UW6OQT

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

http://www.aparat.com/v/lar79

اینم توضیحات فارسی :

http://www.aparat.com/v/Sng7Q

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

از بخش global settings تنظیمات کلی به سربرگ Loadig رفته و بخش show your own image while loading رو فعال کرده و سپس با کلیک رو دکمه ی change image عکس دلخواه برای صفحه ی loading رو انتخاب کنید و در نهایت ok.

http://s3.picofile.com/file/8189031392/loading_gm81.jpg

در مورد نظر دوستمون مهراب باید بگم،راه دیگه رو نمی دونم.توصیه می کنم یونیتی کار کنید.

--

اینم ایجاد لودینگ در یونیتی:



private AsyncOperation async null;

IEnumerator Start()
{
async Application.LoadLevelAsync("test");
yield return async;
}

void OnGUI
{
GUI.Label(new Rect(10,10,50,50),(100*async.progress).ToString());
}

void Update()
{
if((
async.progress 100)>=100)
{
this.enabled false;
}
}



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

اسپرایت چیست.
سورس چیست.
اسکریپت چیست.
الگوریتم چیست.
ابجکت چیست.
هوش مصنوعی چیست.
زبان های برنامه نویسی چه فرقی دارند وکدام خوب است.
کسی بازی ساخته میشه ازاول توضیح بدید باید چه طوری بازی ساخت تا آخرش.
چیزهایی که لازم درمورد ساخت بازی بگید ازاول تاآخر.
موتور بازی چیست.
برای کسی که بازی نساخته کدام موتورخوبه.
موتورهای بازی ازجمله game maker, Construct , XNAFramework, Unreal,Unity,Anvil,XRay,Euphoria,CryEngine این موتورها هریک ازکدام زبان برنامه نویسی ساخته شده اند. وباهمون زبان برنامه نویسی باید بازی ساخت.
این موتورها میشه توضیح بدید چه خوبی هایی دارند. هرکدام ومقایسه کنید.
ازکجامیشه متوجه شد بازی که ساخته شده ازچه موتوربازی استفاده کرده است.
این موتورها کاربری که باهاش بازی ساخت میشه بگه.
game maker خوبه یا professional و گیم میکر استودیو برای ساخت بازی و چه فرقی باهم دارند.
گیم میکر7با8 چه فرقی دارند. ودیگرموتورکه ورژن های دیگردارند.
لینگ دانلود این موتورهای بازی به همراه کرک میشه بدید.
آموزش هایی درباره ای ساخت بازی وموتوربازی چه پی دی اف وچه ویدیو هست لینگ بدید.
به جزموتور بازی برای ساخت بازی به نرم افزاری نیازهست یانه.
کدام این موتورهای بازی برای دوبعدی خوبه وسه بعدی است. کدام این موتورها برای ساخت بازی خوب است. هریک ازاین موتورها برای بازی مورد نظر هستند یا فرقی نداره هرچی میشه ساخت. وکدام این موتورها معروف هستند. شرکت بازی سازی ازموتورهای رایگان بازی استفاده می کنند یانه.
کدام این موتورهای بازی سازی میشه برای اندورید ساخت.
بازی که ساخته میشه میشه به صورت آنلاین هم میشه بازی کرد چه طوری میشه این کارکرد.
موتوربازی رایگان چه فرقی باپولی دارند.
برای ساخت بازی کدام زبان برنامه نویس یاد بگیریم.
چه مدت طول می کشه بازی بشه ساخت.

------

پاسخ:





sprite این هست :
[تصویر: form_sprite.jpg]
یا این :
[تصویر: sprite.jpg]


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

اسکریپت کدهایی هست که می نویسیم.
مثل این شکل:
http://docs.yoyogames.com/source/dadiospice/002_reference/001_gml%20language%20overview/programexample.png
البته می تونیم در زیر شاخه ی script هم بعضی از اسکریپت ها رو با نام دلخواه ایجاد و فراخوانی کنیم تا کدهاش اجرا بشه

AlgoRithm مجموعه‌ای متناهی از دستورالعمل‌ها است، که به ترتیب خاصی اجرا می‌شوند و مسئله‌ای را حل می‌کنند.(

واژه الگوریتم از نام ریاضیدان و ستاره‌شناس و جغرافی‌دان نامی ایرانی، ابوجعفر محمد بن موسی خوارزمی (الخوارزمی)، گرفته شده است)
اگه همونو با شکل نشون بدیم میشه فلوچارت یا چارت Flow که flow یعنی جریان و روند کار و اجرا دستورات به ترتیب:
http://fa.wikipedia.org/wiki/%D8%A7%D9%8...8%AA%D9%85

object = شی یا کنترل هایی که اسپرایت رو ربط میدیم بهش. مثل ابجکت توپ یا ابجکت قارچ خور:
[تصویر: form_object.jpg]

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

زبونای برنامه نویسی هر کدوم اربرد خودشون رو دارن و به طور کلی همیشه نمیشه گفت کدوم بهتره یا کدوم بدتره:
C/Java/Objective-C/C++/C# csharp/PHP/(Visual) Basic/Python/Perl/Ruby/JavaScript/vb.net/Lisp/Transact-SQL/Pascal/Bash/Delphi or Object Pascal/PL/SQL/Assembly/Lua
معمولا جاوا معروف تر و کاربردی تره و روی اکثر سیستم ها اجرا میشه و کاربردی ترین و تقریبا بهترین زبون جاوا هست .البته بازم می گم هر چی کار می کنی باید کاربردشو بدونی. لازم نیست خسته کنی یه عالمه کتاب بخری پولاتو هدر بدی.
میری توی گوگل و سرچ می کنی و زود به جواب میرسی بعدش می پرسی .
خود جاوا هم صد شاخه هست برنامه نویسی سیستم داره برنامه نویسی وب JSP=JAVA server pages داره و برنامه نویسی اندروید.
باید ببینی کدوم محیش خوبه بهتره مثل ECLipse بعدش بری دنبال مثلا برنامه نویسی اندوید .(تا یه چیز خوب رو خوب یاد نگرفتی سمت چیز خوب دیگه نرو)

آره من بازی ساختم. بازی های دو بعدی و حتی سه بعدی(ساده).
خوب اولش با game maker شروع کردم و یک ابجکت ساختم بپره تیر بزنه . سورس ها رو دیدم تحقیق کردم توی امضام هم یه آموزش گذاشتم بخونی و همت کنی راه میفتی به اذن پروردگار مهربان و عزیز انشاءا... .

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

گیم میکر 7 یا 8 یا ... هر چا بالا تر میره خوب امکاناتش بهتر میشه و شماره ورژن یا نسخش مشخص می کنه کدوم جدید تره. نو که بیاد به بازار .. کهنه میشه دل آزار(البته معمولا) ضمنا الان game maker ها خروجی اندروید نمی دون و توصیه می کنیم game maker studio رو دانلود بفرمایید و همینور پکیج های اندروید مروبطه که اونم توی قسمت دیگه ای از انجمن هست کگه توی کادر بالای انجمن می تونید بنویسید خروجی apk در گم میکر تا تاپیک مربوط رو پیدا کنید

لینک دانلود موتور های بازی هم باید اسمشو توی بالای انمجن سرچ کنید میاد نیومد برید توی google.com و تایپ کنید مثلا : دانلود game maker studio با کرک یا ...

در مورد آموزش هم توی صفحه اول انجمن تیتر و عنوان ها رو بخونید. اگه با مروگر FireFox کار می کنید ctrl+F بزنید و مثلا تایپ کنید game maker بعدش می رید روی عنوان مربوط و زیر شاخه هاش و الی آخر یا اون کادر بالای انجمن برای جستجو هست.

موتور رایگان مجانی هست پولی هم پولی هست البته خیلیا می زنن کرک می کنن مجانی میشه عین خودمون که وضع مالیمون بد هست شاید مجبوریم

انجین unity و game maker و construct و unreal و احیانا یکی دو انجین دیگه معروف ترین هستند.
اما از بین اون بالایی ها بیشتر توی ایران و جهان game maker studio و unity کار میشه که من توصیه می کنم شما که خیلی مبتدی هستید با game maker شروع کنید

واسه سه بعدی همون یونیتی اما بازم توی مبحث Rigging و هوش مصنوعی نیاز به استاد هست چون واقعا کار دشواری هست.

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

۰ نظر موافقین ۰ مخالفین ۰ ۲۵ ارديبهشت ۹۴ ، ۰۴:۲۶
مدیرکل
۰ نظر موافقین ۰ مخالفین ۰ ۲۵ ارديبهشت ۹۴ ، ۰۳:۳۷
مدیرکل
۰ نظر موافقین ۰ مخالفین ۰ ۲۵ ارديبهشت ۹۴ ، ۰۲:۵۵
مدیرکل
دو تا room بسازید: room0 و room1
یک ابجکت بسازید به نام effFadeToBlack .
برای این ابجکت این کدها رو paste کنید :
رویداد create:
کد :
fadeAlpha=0
newRoom
=0
fadeSpeed
=10
alarm
[0]=fadeSpeed 
رویداد Alarm 0 :
کد :
alarm[0] = fadeSpeed;
fadeAlpha += 0.05;
if ( 
fadeAlpha >= 1.0 )
{
room_goto(newRoom);
instance_destroy();

رویداد Draw GUI :
کد PHP:
draw_set_alpha(fadeAlpha);
draw_rectangle_color0,0room_widthroom_heightc_blackc_blackc_blackc_blackfalse);
draw_set_alpha(1.0); 
یک ابجکت دیگه به نام object1 بساز و فقط همینو بذارید روی room0 و این کد رو توی رویداد Space بریزید(فشردن یا press از space):
کد :
var eff;
eff instance_create00effFadeToBlack );
eff.newRoom room1;
//room_goto(room1); 
اجرا بگیرید و Space بزنید تا به حالت Fade in out محو بشه و بره توی room1
این تصویر کوچک شده است.انداره واقعی : (834x388).برای دیدن در اندازه واقعی روی تصویر کلیک کنید.
http://s3.picofile.com/file/8188491050/fadeIn.jpg


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

منبع :
http://steamcommunity.com/sharedfiles/fi...=160729258
اینم سورس Fade in در گیم میکر استادیو(game maker studio) :
http://opizo.com/LvBSyA

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

786

----

با شیلتر برید.

یادش بخیر.... قدیما....

http://s6.picofile.com/file/8188277484/flashMx.jpg

این مجموعه خیلی قدیمی هست ولی کیفیتش عالیه.درسته که برای کار با فلش ام ایکس هست اما انگیزه میده برای کار با adobe flash cs6 و ورژن های بعدی ...

برای اینکه مشکل دانلود نداشته باشید هر فصل رو تک تک zip کردیم تا شما تیکه یکه ببینید که آیا به دردتون می خوره یا خیر:

فصل 1 :

http://www.mediafire.com/download/c3ec7aznpsjr61h/CHAP1.zip

فصل 2:

http://www.mediafire.com/download/7phdbrbhrz4fqk9/CHAP2.zip

فصل3:

http://www.mediafire.com/download/e9uf67ce53vas8d/CHAP3.zip

فصل4:

http://www.mediafire.com/download/sw9159e0d8us335/CHAP4.zip

فصل5:

http://www.mediafire.com/download/c17wrrfd4l7139y/CHAP5.zip

فصل6:

http://www.mediafire.com/download/h8c6bv1wzeacvp6/CHAP6.zip

فصل7:

http://www.mediafire.com/download/1z0jw55hb44n6ap/CHAP7.zip

فصل8:

http://www.mediafire.com/download/m1vgc101z44m0ma/CHAP8.zip

فصل9:

http://www.mediafire.com/download/4tnf1p3mk82kwpq/CHAP9.zip

فصل 10:

http://www.mediafire.com/download/laaa6ge5vg7cw0w/CHAP10.zip

فصل11:

http://www.mediafire.com/download/pltmq1ia01zuibb/CHAP11.zip

فصل12:

http://www.mediafire.com/download/0dm627byna30y41/CHAP12.zip

فصل13:

http://www.mediafire.com/download/47e4c3s3bxeg71k/CHAP13.zip

فصل14:

http://www.mediafire.com/download/3cdmga9zkfcdh31/CHAP14.zip

فصل15:

http://www.mediafire.com/download/9bn5pqtymhllm09/CHAP15.zip

۰ نظر موافقین ۰ مخالفین ۰ ۲۳ ارديبهشت ۹۴ ، ۰۲:۵۶
مدیرکل
یک پوشه روی دسکتاپ به نام mod_hello ایجاد کنید و دو تا فایل با نام mod_hello.php و mod_hello.xml توی اون ایجاد کنید. دقت کنید که این فایل ها به فرم UTF-8 ذخیره بشن.

کد های mod_hello.php :

<?php
// no direct access
    defined( '_JEXEC' ) or die( 'Restricted access' );
    echo ('goodbye world');


?>

کدهای فایل mod_hello.xml :

<?xml version="1.0" encoding="utf-8"?>
<extension type="module" version="3.0.3">
    <name>goodbye, World!</name>
    <author>اسم سازنده</author>
    <version>1.5.0</version>
    <description>A simple Hello, World! module.</description>
    <files>
        <filename module="mod_hello">mod_hello.php</filename>
    </files>
    <params>
    </params>
</extension>

-----

پوشه ی mod_hello رو zip کنید .(mod_hello.zip)

-----

XAMPP رو اجرا و سرویس های apache و mysql رو run کنید.

----

وارد http://localhost/joomla/administrator بشید و با admin لاگین کنید و از منوی extension وارد بخش extension manager بشید .

در قسمت Upload Package File ، روی دکمه ی browse کلیک کنید و فایل mod_hello.zip رو برای آپلود انتخاب کنید.

روی دکمه upload and install کلیک کنید.

اگه موفق شدید باید پیام successful بیاد و در مسیر C:\xampp\htdocs\joomla\modules\ باید پوشه ی mod_hello ایجاد بشه.

نکته بعد از نصب کامپوننت شما باید توی قسمت مربوطه مثلا در اینجا چون type=module بود(توی فایل XML)،باید به بخش module manager بریم. ولی ممکنه قبل از اینکار احتیاج داشته باشیم یه بار logout و دوباره login کنیم چون ممکنه کامپوننت یا ماژول مربوطه نشون داده نشه.

ضمنا بعد از اینکه به بخش  module manager رفتید ممکنه ماژول ما نشون داده نشه. در حالت عادی ممکنه فقط 5 یا 10 یا 20 تا ماژول لیست شده باشه و بقیه ی ماژول ها در صفحه ی 2 یا 3 یا ... باشن. تمظیمات رو طوری انجام بدید که همه ی ماژول ها لیست بشن.بعدش بگردید دنبال ماژول مربوطه. ما چون اینجا توی کد فایلمون نوشته بودیم goodby world همین اسم بدون در نظر گرفتن اسم خود ماژول که hello... بود نشون داده میشه.

در حال عادی اگه روی اون ضربدر قرمز زده باشه یعنی  trash یا unpublish هست و موقتی هست.برای اینکه نشون داده بشه روی اون ضربدر قرمز کلیک می کنیم تا وضعیت به حالت سبز رنگ publish تنظیم بشه.بعدش روی ماژول کلیک می کنیم تا وارد بخش ویرایش یا edit بشیم.

توی بخش details بازم می تونید تنظیمات publish و غیره رو انجام بدید.

توی بخش menu assignment می تونید در بخش module assignment یا یه بخشی شبیه همین اسم،مشخص کنید که این ماژول توی همه ی صفحات نشون داده بشه یا توی صفحات خاصی نشون داده نشه یا ... که اگه یکم کار کنید و انگلیسیتون خوب باشه می تونید سر در بیارید طرز کارشو.نظر یادتون نره.

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

سوال :

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

پاسخ :

بعد از ساخت دیتابیس می تونید از طریق mysql_query() اطلاعات جدید تو دیتابیس اینسرت کنید !

اما قبل از استفاده از کوئری کد

mysql_query("SET NAMES 'UTF8'");

را بذارید  تا فارسی ذخیره بشه !

--

تنظیم پشتیبانی از زبان فارسی یا utf در فایل های PHP :

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

ثانیا اول فایل های PHP تون کد زیر رو وارد کنید :

<?php header('Content-type: text/html; charset=utf-8');  ?>

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

نرم افزار open sourceساخت مدل آماده ی انسان با مو و لباس و کفش 

http://sajjad3011.persiangig.com/makeHuman.jpg


این نرم افزار رایگان اپن سورس واسه ساخت انسان و تغییر رنگ چشم و لباس و تیشرت و کفش و غیره هست که با تغییراتی می تونید تکستچرهاشو بعدا ببرید توی فتوشاپ و ویرایش کنید... خیلی راحت می تونید خروجی mhx بگیرید و توی blender هم ببرید و import کنید و اونجا تمام ایتم های لازم واسه rigify و متحرک سازی و تمام دستگیره یا handle های ریگ کردن اسون توی بلندر واستون میاد.
برای اطلاعات بیشتر و دانلود این نرم افزار مفید که خودم هم باهاش یک کاراکتر رو export کردم و بردم توی بلندر ریگ کردم به این سایت برید:
http://www.makehuman.org/
کار باهاش اسونه... فقط باید کمی انگلیسیتون خوب باشه.
مشکل ترجمه دارید http://translate.google.com
--
چون وقتم کمه به جای اینکه بهتون ماهی بدم ماهیگیری رو یادتون دادم.. شما باید کمی انگلیسیتون رو خوب کنید لا اقل توی ترجمه با استفاده از google
--
سوالی بود بپرسید ..
التماس دعا


از جمله امکاناتی که این نرم افزار داره رو خودم می گم براتون :
می تونید این ایتم ها رو انتخاب کنید و تغییرات قسمت های بدن فرد همونجا اعمال میشه:
مرد یا زن بودن
رنگ چشم:ابی. سبز. قهوه ای
لباس: تیشرت. آستین بلندر
شلوار: لی جین
رنگ کفش
ایا انسان افریقایی هست یا خیر: scroll داره اگه زیادش کنید رنگ پوستش سیاه تر میشه
آیا اهل asia هست یا نه : اگه زیاد کنید چشم هاش بادومی میشه
انتخاب مو
انتخاب تعداداستخوان ها در بخش pose/animation برای game یا basic
دقت کنید روی basic بذارید تا 73 استخوان کامل رو اکسپورت کنه..
--
بعدش mhx خروجی بگیرید
می تونید ببرید توی بلندر و اونجا ریگ کنید(ریگ یا rigging و انیمیت کردن یا ایمیشن سازی یا هر اصطلاح تخصصی در زمینه ی بازیسازی رو نمی دونید ازم بپرسید)
انیمیشن ساز اپن سورس بلندر هم می تونید از اینجا رایگان دریافت کنید :
http://www.blender.org/
توی make Human می تونید قد و چاق یا لاغری،اندازه ی بازو و ماهیچه ها، و حتی دندان ها رو انتخاب کنید تا توی بلندر هم بتونید دهن کاراکتر رو باز و بسته کنید با استخون های لازم
در سربرگ face می تونید میزان پیری رو در بخش Edge (سن و سال) مشخص کنید تا خودش مدل رو چروکیئده و غوز کرده کنه
گردی دور صورت رو در بخش face می تونید توسط پارمتر های oval و .... دستکار کنید یا مربعی بودن...
اندازه افقی،عمودی،میزان قوس کمر و سایر تنظیمات 
درازی گردن
تنظیم فاصله ی بین چشم ها،و ابروها روی هر چشم دلخواه 
کشیدگی انگشتان دست و پا
اینم مدلی که خودم توی چند ثانیه باهاش ساختم :
http://s5.picofile.com/file/8126288434/makeHuman2.jpg
ضعف : قابلیت import مدل رو نداره فکر می کنم.
http://s5.picofile.com/file/8127263476/basic_mkHuman.jpg
سپس ctrl+E بزنید واسه export و عملیات ریگ سازی در بلندر(نرم افزار open source blender واسه انیمیشن سازی و مدلسازی و ...)
--
من پروژه ای رو به اسم exp1 در مسیر C:\Users\john\Desktop\exp اکسپورت کردم و سپس توی بلندر فایل exp1.mhx رو ایمپورت کردم
(واسه ایمپورت این مدل باید پلاگین rigify رو توی سربرگ add-ons از پنجره ی preferences( که با ctrl+alt+u باز میشه) فعال کنید.(توی کادر جستجو بزنید میاد)

توی import فایل mhx توی بلندر ممکنه دچار خطای فایل io_import_scene_mhx.py بشید. این چیزا اشکالات رایج بلندر هست. ممکنه بعضی وقتا به خاطر کامپایلر python یا مفسر باشه، می تونید برای رفع این مشکل بلندر رو ببندید (ورژن مورد استفاده ی من blender 2.70 هست)
و فایل io_import_scene_mhx.py رو از سایت های اصلی مثل
https://svn.blender.org/svnroot/bf-exten...ene_mhx.py
دانلود و در ویندوز 7 در مسیر
C:\Program Files\Blender Foundation\Blender\2.70\scripts\addons\io_import_scene_mhx.py
جایگزین کنید و سپس بلندر رو باز کنید و mhx رو ایمپورت کنید.
نکته: واسه دانلود باید add exception یا اجازه ی تایید به مرورگر رو بدید مثل fireFox.
فعال سازی rigify برای ایمپورت mhx در بلندر :
http://s5.picofile.com/file/8127269676/rigify_addons.jpg
نکته : موقع خروجی گرفتن مدل در نرم افزار makeHuman سعی کنید در بخش geometry(هندسه) در بخش teeth (دندان ها) یک نوع دندان رو انتخاب کنید(اگه روی none باشه دیگه مدل ما دارای دندان نیست و توی بلندر ابزار ریگ کردن و ابز و بسته کردن دهان و متحرک سازی اون رو نخواهیم داشت)
http://s5.picofile.com/file/8127269850/teeth.jpg
همچنین موقع خروجی گرفتن در make human در سربرگ files و سپس سربرگ export گزینه ی export for Rigify رو فعال کنید اینطوری بهتره.
http://s5.picofile.com/file/8127270426/export_for_rigify.jpg
و در نهایت وارد بلندر بشید و فایل mhx اکسپورت گرفته از قبل رو ایمپورت کنید
(از منوی files->import->import make human_mhx)
حالا هر اهرمی رو خواستید با راست کلیک روش توی بلندر می تونید انتخاب کنید و Rigging رو انجام بدید.
می تونید گردن کاراکتر رو خم کنید
می تونید واسش انیمیشن بسازید که راه بره یا jump (پرش کنه) یا ....
که انیمیشن سازی هم اسونه قبلا یاد دام. بازم بلد نبودید توی بخش blender و در بخش پرسش و پاسخ بپرسید .
http://s5.picofile.com/file/8127271276/mk_rig.jpg
یه راهنمایی هم می کنم واسه ریگ کردن. هیچ کاری نداره:
(R می زنید و سپس x و ماوس رو حرکت می دید حول محور X می چرخوند اهرم انتخاب شده رو. اگه y یا z هم بزنید روی اون محور ها میچرخن)
G واسه حرکت دادن یا Grabbing هست که بعد از G می تونید X بزنید و ماوس رو حرکت بدید مثل قبل و الی آخر.
واس انیمیت کردن هم می تونید فریم های کلیدی بسازید(کلید i واسه درج تغییرات هست و ماوس رو هر جا ببرید همون جا i بزنید و ...)
بعدشم نوار انیمیشن رو می برید جلو و دوباره مدل رو تغییر می دید و بازم i می زنید تا ثبت بشه به همین آسونی.
--
همه چی بستگی به تلاش خودتون داره تا یک ادم رو خوب ریگ کنید .(اما یه نکته ای: Rigging به طور دستی مصیبت هست و متاسفانه فقط پولدارهایی که دستگاه موشن کپچر دارند می تونند کاراکترها رو طبیعی ریگ کنند)

نکته : من در makeHuman در سربرگ Pose/animation نوع استخوان رو Muscles (ماهیچه ها) گذاشتم و بیشترین تعداد استخوان یعنی 107 استخون رو به من داد و این بهترین حالت واسم بود. در سربرگ file و تب export هم گزینه ی export for rigify رو غیرفعال کردم مشکلی نبود.
این بار تونستم فک کاراکتر رو هم حرکت بدم توی بلندر و دهان کاراکتر رو باز کنم و دندون هاشم ببینم :

http://s5.picofile.com/file/8127273268/dandoon.jpg

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



   


سایر پیوست ها


دریافت(دانلود)

حجم:3.42 مگابایت
pdf


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

اول یک اسپرایت (تکستچر یا تصویر PNG) با فتوشاپ بسازید و بکشید توی کادر project از unity رها کنید تا به پروژه اضافه بشه.

سپس انتخابش کنید و Texture Type رو در کادر insector(کادر خصوصیات) بذارید روی Sprite.

سپس Sprite mode ظاهر میشه که اگه اسپرایت شما چند فریم داشته باشه (شامل انیمیشن باشه) باید بذارید روی Multiple.

http://s3.picofile.com/file/8187792868/sprite_mode_unity.jpg

۰ نظر موافقین ۰ مخالفین ۰ ۲۰ ارديبهشت ۹۴ ، ۱۵:۰۶
مدیرکل
gameover.blog.ir
۱ نظر موافقین ۰ مخالفین ۰ ۲۰ ارديبهشت ۹۴ ، ۱۴:۰۶
مدیرکل
using UnityEngine;
 using System.Collections;
 
 public class Ctrl : MonoBehaviour
 {
     public float speed = 1.5f;
 
     void Update ()
     {
         if (Input.GetKey(KeyCode.LeftArrow))
         {
             transform.position += Vector3.left * speed * Time.deltaTime;
         }
         if (Input.GetKey(KeyCode.RightArrow))
         {
             transform.position += Vector3.right * speed * Time.deltaTime;
         }
         if (Input.GetKey(KeyCode.UpArrow))
         {
             transform.position += Vector3.up * speed * Time.deltaTime;
         }
         if (Input.GetKey(KeyCode.DownArrow))
         {
             transform.position += Vector3.down * speed * Time.deltaTime;
         }
     }
 }
نکته:
اسم اسکریپت سیشارپ رو بذارید Ctrl  که همنام با کلاسی هست که توی کد بالایی اومده.
منبع :

http://answers.unity3d.com/questions/667641/how-do-i-move-my-2d-object-using-arrow-keys-also-h.html



اینم یکی دیگه :


using UnityEngine;
using System.Collections;

public class Player : MonoBehaviour {

public float Gravity = 21f; //downward force
public float TerminalVelocity = 20f; //max downward speed
public float JumpSpeed = 6f;
public float MoveSpeed = 10f;

public Vector3 MoveVector {get; set;}
public float VerticalVelocity {get; set;}

public CharacterController CharacterController;

// Use this for initialization
void Awake () {
CharacterController = gameObject.GetComponent(“CharacterController”) as CharacterController;
}

// Update is called once per frame
void Update () {

checkMovement();
HandleActionInput();
processMovement();
}

void checkMovement(){
//move l/r
var deadZone = 0.1f;
VerticalVelocity = MoveVector.y;
MoveVector = Vector3.zero;
if(Input.GetAxis(“Horizontal”) > deadZone || Input.GetAxis(“Horizontal”) < -deadZone){
MoveVector += new Vector3(Input.GetAxis("Horizontal"),0,0);
}
//jump

}

void HandleActionInput(){
if(Input.GetButton("Jump")){
jump();
}
}

void processMovement(){
//transform moveVector into world-space relative to character rotation
MoveVector = transform.TransformDirection(MoveVector);

//normalize moveVector if magnitude > 1
if(MoveVector.magnitude > 1){
MoveVector = Vector3.Normalize(MoveVector);
}

//multiply moveVector by moveSpeed
MoveVector *= MoveSpeed;

//reapply vertical velocity to moveVector.y
MoveVector = new Vector3(MoveVector.x, VerticalVelocity, MoveVector.z);

//apply gravity
applyGravity();

//move character in world-space
CharacterController.Move(MoveVector * Time.deltaTime);
}

void applyGravity(){
if(MoveVector.y > -TerminalVelocity){
MoveVector = new Vector3(MoveVector.x, (MoveVector.y – Gravity * Time.deltaTime), MoveVector.z);
}
if(CharacterController.isGrounded && MoveVector.y < -1){
MoveVector = new Vector3(MoveVector.x, (-1), MoveVector.z);
}
}

public void jump(){
if(CharacterController.isGrounded){
VerticalVelocity = JumpSpeed;
}
}
}
۸ نظر موافقین ۰ مخالفین ۰ ۱۸ ارديبهشت ۹۴ ، ۲۰:۵۹
مدیرکل
http://s6.picofile.com/file/8185692418/move_snap.jpg
شکل کلی :

کد:
move_snap( hsnap, vsnap );
توضیح :
این تابع دو پارامتر می گیرد(به ترتیب مقدار افقی و مقدار عمودی) و برای تنظیم x و y روی نزدیک ترین x و y ای که به ترتیب به مقدار افقی و عمودی بخش پذیر است،بکار می رود.

مثال :
یک ابجکت روی صحنه و سپس توی رویداد Step این کد را قرار دهید تا با حرکت ماوس،ابجکت در خانه های بخش پذیر 100x100 حرکت کند.

کد PHP:
//harkat be andazeye sprite width + sprite_height
x=mouse_x
y
=mouse_y
move_snap
(100,100);//nazdiktarin (x) bakhsh pazir be 100 , nazdiktarin (y) bakhsh pazir be 100
//move_snap(sprite_width,sprite_height);//nazdiktarin (x) bakhsh pazir be sprite_width , nazdiktarin (y) bakhsh pazir be sprite_height 

سورس نمونه game maker 8.1 :
http://s6.picofile.com/file/8185692168/m....gm81.html

منبع :
http://docs.yoyogames.com/source/dadiosp..._snap.html
۰ نظر موافقین ۰ مخالفین ۰ ۱۰ ارديبهشت ۹۴ ، ۰۱:۱۶
مدیرکل

سوال)جسمی از بی نهایت تا آینه ی مقعر حرکت می کند،نسبت تصویر و شی به هم چگونه است؟

پاسخ )ابتدا که جسم از بی نهایت تا مرکز جابجا می شود،تصویر از کانون(F) تا مرکز(C) جابجا می شود.در نتیجه تصویر مسافت کمتری برای پیمودن دارد و سرعتش در این قسمت کمتر از سرعت انتقال جسم است.در مرحله دوم که جسم از مرکز تا کانون جابجا می شود تصویر از مرکز تا بی نهایت جابجا می شود در نتیجه تصویر مسافت بیشتری برای پیمودن دارد و سرعتش در این قسمت بیشتر از سرعت انتقال جسم است.

-----

نتیجه گیری کلی :

سرعت انتقال تصویر نسبت به سرعت انتقال جسم ابتدا کمتر و سپس بیشتر است.

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

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


کاریکاتوری کردن چهره :
عکس چهره دلخواه رو ببرید توی فتوشاپ و از منوی forbidden گزینه ی Liquify رو بزنید و بازی کنید با دو تا ابزار اصلیش.
کلید میانبر: ctrl+shift+X
تصویر اول :
[تصویر: b1.jpg]
تصویر بعد از ویرایش:

http://s5.picofile.com/file/8159311200/b2.jpg


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

http://s5.picofile.com/file/8164861750/flow.jpg


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

حل /رفع مشکل جدا شدن نوشته ها در فتوشاپ:
س ل ا م
سلام
-------
از منوی window گزینه ی paragraph و سپس یک فلش پایین داره(توی سمت راست پنجره ی باز شده) و از اون لیست گزینه ی reset paragraph رو انتخاب کنید
--
در سایر نرم افزارها احتمالا باید با فارسی ساز ها کار کنید مثل Leomoon ParsiNegar که اینجا هست :
http://p30download.com/fa/entry/12177/
=
برای تایپ فارسی با استفاده از این نرم افزار در محیط های گرافیکی بایستی به صورت زیر عمل نمایید:
- ابتدا متن مورد نظر خود را توسط برنامه تایپ نمایید.
- سپس برروی گزینه "کپی" کلیک نمایید.
- در برنامه موردنظر یکی از فونت هایی را که با حرف لاتین «_F» آغاز می شوند را انتخاب نموده و Paste نمایید.
منبع : همون که گفتم


===


برای zoom کلید Z رو بزنید. سپس به تعداد دلخواه کلیک کنید تا zoom بشه. اگر alt رو با کلیک نگه دارید zoom out میشه(کوچک)

===


فیلم های آپارات برای آموزش فتوشاپ :
http://www.aparat.com/result/%D8%A2%D9%8...8%A7%D9%BE



ctrl+0 : رفتن به حالت استاندارد
اگه zoom کرده باشید و بخواید به حالت اولیه برگردید و کل تصویر رو مشاهده کنید ctrl+0 بزنید .


ساخت تبلیغات gif با فتوشاپ با حجم بسیار کم:

به منوی
File > Scripts > Load Files into Stack

برید.
browse کنید و فایل های png یا عکس هایی که می خواید رو انتخاب و لود کنید تا به ازای هر عکس یه لایه توی سند جاری ساخته بشه.
منوی انیمیشن یا نوار زمان رو فعال کنید:

For Photoshop CS5: (Window > Animation).
For Photoshop CS6: (Window > Timeline ).
For Photoshop CC (Window > Timeline )

---
توی Animation/Timeline palette یک آیکن خاکستری فلش پایین در سمت راست هست .روش کلیک و از اونجا Make Frames From Layers رو انتخاب کنید. تا فریم ها از روی عکس ها به ترتیب ساخته بشه
Reverse Frames هم می تونید بزنید واسه برعکس کردن از آخر به اول.

--
حالا ثانیه بین فریم ها رو باید تنظیم کنیم:
کل فریم ها رو انتخاب کنید. بعدش یه فلش کوچیک کنار فریم ها هست که روش نوشته 0 صفر ثانیه یا 0 sec که اگه روش کلیک کنید می تونید ثانیه رو تنظیم کنید.
--
همه چی حله فقط منوی File > Save for Web & Devices رو انتخاب و فایل رو به صورت gif ذخیره کنید.
بعد هم می تونید بکشید روی firefox و انیمیشن رو تماشا کنید.


منبع:
http://www.briandalessandro.com/blog/cre...toshop-cs5


حذف فضای خالی اطراف تصویر:
از منوی image گزینه ی Trim رو برید.

http://s5.picofile.com/file/8146310742/trim.jpg


چرخش بین مدهای Full Screen در فتوشاپ:
گاهی وقتا وارد حالت تمام صفحه میشید نمی دونید چطوری برگردید به حالت اول، و سربرگ ها غیب میشه.
با ctrl+Tab هم سربرگ های document های باز شده نمایان نمیشن.
کلید F را چند بار بزنید حل میشه
PDF کلید های سرعتی در فتوشاپ :
http://www.nobledesktop.com/download/sho...uts_pc.pdf

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


ترفند ساخت پارچه از روی عکس
فتوشاپ رو باز کنید .
یک لایه ایجاد کنید(ctrl+shift+N)
یک عکس مثل این عکس رو کپی کنید توش

http://s5.picofile.com/file/8136733542/parcham1.jpg

یک لایه دیگه ایجاد کنید و این عکس رو کپی کنید توش


http://s5.picofile.com/file/8136733584/parche1.jpg قسمت blending mode از لایه ی بالا رو روی linear Light بذارید:

http://s5.picofile.com/file/8136734500/result.jpg


تبدیل عکس به نقاشی مدادی:
مرحله اول:
ابتدا عکسی را که می خواهید به طرح مدادی تبدیل کنید باز کنید.
مرحله دوم:
اکنون CTRL+J را فشار دهید تا یک کپی از لایه شما گرفته شود . حالا CTRL+U را فشار دهید تا پنجره Hue/Saturation باز شود و مقدار saturation-90 - قرار دهید.
مرحله سوم:
یکبار دیگه کلید های CTRL+Jرا بزنید.و سپس کلیدCTRL+I بزنید(تصویر باید سیاه و سفید بشه عین معتادا )
مرحله چهارم:
خب در این مرحلهblending mode را روی Color Dodgeقرار دهید.(blending mode رو توی بخش پنجره ی لایه ها تو لیست کشویی می تونید روی Color Dodge بذارید)
مرحله پنجم:
خب حالا چیزی نباید مشخص باشه ، نگران نباشید باید forbidden زیر را روی عکس اعمال کنید:
forbidden>Blur>Gaussian Blur
مقدار redius را به دلخواه انتخاب کنید(من روی 10 میذارم)
--
منبع :
http://psd111.blogsky.com



یه سری تکنیک نورپردازی :
http://www.psdbox.com/tutorials/manipula...d-lighting


جلوه ی بلور برای شطرنجی کردن یا پنهان کردن قسمتی از تصویر مثل مجله ها:
ابتدا قسمتی از تصویر رو انتخاب کنید(من با ابزار select دایره ای این کار رو کردم). سپس،از منوی (شیلتر) گزینه ی Blur و سپس lens blur رو انتخاب کرده و سپس نوار لغزان رو دستکاری کنید :
http://s5.picofile.com/file/8141927784/lens_blure.jpg

ایجاد ماسک برش یا Clipping Mask :
یک Layer با رنگ سیاه به عنوان پس زمینه ایجاد کنید(ctrl+shift+N و سپس انتخاب رنگ سیاه و سطل رنگ و سیاه کردن)
ابزار متن را بردارید(کلید میانبر T) و وسط صحنه کلیک کنید و یک متن دلخواه را بنویسید(مثال : SEGA با اندازه ی 100 pixel )
یک لایه ی دیگر ایجاد کنید(ctrl+shift+N) و یک عکس تکستچر دلخواه را روی آن بندازنید.
لینک دانلود تکستچر :
http://s5.picofile.com/file/8141935150/2.jpg

سپس ازمنوی Layer گزینه ی Create Clipping Mask را انتخاب کنید (کلید میانبر Alt+Ctrl+G )
خروجی :
[تصویر: kayerMask1.jpg]

آموزش Pen Tool در فتوشاپ:
این ابزار خیلی به درد می خوره و اکثر طراحان کاراکتر انسان و طراحای چهره از این ابزار استفاده می کنن.
برای فعال سازش کلید "P" رو میزنیم و روی یک نقطه کلیک می کنیم و سپس روی یه جای دیگه کلیک می کنیم و ماوس رو می کشیم به طرفی که می خوایم . آخرش که تموم شد راست کلیک می کنیم و Fill رو می زنیم توش پر میشه.
گزینه های دیگه رو توی راست کلیک پیدا کنید.
یه اموزش توپ اینجاست حتما بخونیدش. یادتون نره این ابزار واسه وقتی هست که با براش(brush کلید میانبر "B" برای نقاشی) مشکل دارید و دستتون لرزش داره. pen tool مشکل لرزش دست رو براتون حل می کنه
http://forum.majidonline.com/threads/145...88%D9%84-!


ایجاد Pattern برای جعبه ی رنگ (کلید G میانبر):
واسه اینکه pattern ( منظورش تصویر الگو یا همون texture هست) بندازی باید توی پنجره ی لایه ها روی لایه ی انتخاب شده دوبار کلیک کنی تا پنجره ی layer style باز بشه و سپس روی texture میریم و از بخش pattern ،الگو یا پترنی که ساختیم رو انتخاب می کنیم.
اگه خودت م خوای پترن(pattern یا texture ) ایجاد کنی ابتدا ctrl+N بزن و یه سند جدید باز کن و یه نقاشی بکش و سپس از منوی Edit گزینه ی Define pattern رو بزن و و الی آخر.
بعدش مثل قبل روی لایه ی دلخواه توی سند قبلیت دوبار کلیک کن و در کادر layer style پترن ایجاد شده رو انتخاب کن و سپس سطل رنگ رو بردار و بپاش روی صجنه ببین چه اتفاقی می افته:

http://s5.picofile.com/file/8143193126/1.jpg
http://s5.picofile.com/file/8143193142/2.jpg

دو PDF حاوی 500 ترفند، که کل تکنیک های فتوشاپ رو خلاصه کرده و فارسی به صورت یک کتاب در خودش داره :
بخش اول : 20 مگ:
http://www.dl.barggraph.com/barggraph/up...com%5D.rar
بخش دوم : 12 مگ:
http://www.dl.barggraph.com/barggraph/up...com%5D.rar
--
توصیه می کنم حتما دانلودش کنید ایده های خوبی می ده . واسه حرفه ای ها هم خوبه
طراحی بنر به کمک فتوشاپ و AAA Logo :

http://s5.picofile.com/file/8143878718/aaa_logo.jpg
این PDF ساده ی خودم:
http://s5.picofile.com/file/8143878692/%...r.pdf.html
200 و خورده ای کیلوبایت حجم داره
الفبا رو گفتم بقیه رو ور برید حله

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

ctr+Space+Click = زوم کردن سریع
Alt+Space+Click = کوچیک کردن سریع
--
با ctrl بعلاوه + یا - هم میشه همونکارا رو کرد


ctrl+D : برای خارج شدن از حالتی که با ابزار select چیزی رو انتخاب کردیم بکار میره

برای انتخاب ابزار moVe از کلید V (وی) استفاده کنید.(ctrl+T رو باهاش قاطی نکنید. اون واسه حالتی هست که بخواید با راست کلیک و انتخاب Warp شکلی رو کج و معوج کنید.

برای خارج شدن از move کلید A رو بزنید.

وقتی می خواید توی صفحه ی zoom شده به چپ و راست و پایین و بالا برید Space رو نگه دارید تا علامت دست ظاهر بشه و Drag کنید.
روش دیگه فشردن کلید H و رها کردن اون هست . با اینکار ابزار Hand فعال می شه و می تونید Drag کنید نیازی به نگه داشتن هم نیست (free hand یا دست آزاد هستید)
برای انتخاب ابزار shape (رسم مستطیل،مربع ،دایره و ...) کلید U رو بزنید
برای انتخاب سریع قلم (براش) : B : Brush
G : سطل رنگ ( Gradient )
I : قطره چکان(برای کلیک در جایی و set کردن رنگ انتخابی روی آن نقطه) (eyedropper=قطره چکان)
L : Lasso ابزار انتخاب محدوده ی دلخواه
برای رسم سریع یک کاراکتر می تونید یک shape رو رسم کنید.
سپس ctrl+T بزنید.
سپس روی آن راست کلیک کرده و warp را انتخاب نمایید.
سپس گوشه های شکل را Drag کنید.

ایجاد یک لایه جدید : ctrl+Shift+N

رسم صحنه ای مثل ماه گرفتگی

یک لایه ایجاد کنید و سطل رنگ آبی تیره رو بریزید توش.

یک دایره توپر سبز تیره با opacity و 40% ایجاد کنید. و یک افکت outer glow با رنگ زرد مثل این عکس بهش بدید:
http://s5.picofile.com/file/8135247000/outer_glow.jpg

یک لایه ی دیگر با رنگ قرمز ایجاد کنید .

دولایه ی بالایی رو overLay کنید.


یک لایه ی دیگر با رنگ قرمز ایجاد کنید .

دولایه ی بالایی رو overLay کنید.
http://s5.picofile.com/file/8135246084/ksoof.jpg


اینم فایل سورس PSD:
http://s5.picofile.com/file/8135247676/ksoof.zip.html
cs5 هست
--
اگه کمی با همین ترفند بازی کنید و عکس های مختلف رو با هم ترکیب و رنگ آمیزی کنید طرح های جالب زیادی می تونید بزنید:
http://s5.picofile.com/file/8135256134/cyrax2.jpg
http://s5.picofile.com/file/8135255742/cyrax1.jpg
حذف سرعتی پس زمینه ی یک عکس و آماده سازی برای انتقال به بازی:

paint رو باز کنید.
(برای اینکار، دکمه ی window+R رو بزنید
[تصویر: window_R.jpg]
و سپس تایپ کنید mspaint و enter کنید )

ctrl+O زده و عکس دلخواه رو باز کنید. روش دوم اینکه که window+D بزنید تا دسکتاپ نمایش داده بشه و سپس عکس رو بکشید روی آیکن نرم افزار paint روی taskbar(نوار پایین ویندوز) تا پینت باز شه و سپس بکشید توی محیط و رها کنید.

ctrl+A بزنید تا کل نواحی انتخاب بشه و سپس ctrl+C تا نواحی انتخاب شده توی clip board ذخیره بشه.

فتوشاپ رو باز کنید.

ctrl+N کنید.
گزینه ی background contents رو روی transparent بذارید و ok کنید.

ctrl+V کنید(paste) تا عکس ذخیره شده در clip board(حافظه ی buffer موقت کپی)

W بزنید روی یک جای خالی مثلا پس زمینه کلیک کنید تا انتخاب بشه و سپس DELete بزنید تا پس زمینه حذف بشه.

ctrl+shift+S بزنید و عکس رو save as کنید(موقع ذخیره از کادر پایین رونده drop down list یا DDL گزینه ی *.PNG رو انتخاب کنید)

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

--

پیکسلی کردن عکس
واسه پیکسلی کردن عکس یا کاراکترهاتون که میخواید واسه بازی های دو بعدی گیم میکری یا sega یا آتاری یا غیره ایجاد کنید :
forbidden-Pixelate-mosaic
http://s5.picofile.com/file/8135367684/pixelate.jpg

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


مسیر دقیق پوشه های نصب android sdk manager برای خروجی گرفتن اندروید در unity و game maker studio و basic4android :



محتوای پوشه ی android-SDK:

کد:
add-ons
AVD Manager.exe
build-tools
extras
platform-tools
platforms
samples
SDK Manager.exe
SDK Readme.txt
system-images
tools
uninstall.exe
پوشه های داخل پوشه ی add-ons:
کد:
addon-google_apis-google-13
addon-google_apis-google-7
addon-google_apis-google-8
محتوای پوشه build-tools :

کد:
android-4.2.2
android-4.4.2
android-4.4W

محتوای پوشه platforms:
کد:
android-10
android-11
android-12
android-13
android-14
android-15
android-16
android-17
android-18
android-19
android-20
android-7
android-8
__MACOSX
محتوای پوشه ی platform-tools:
کد:
adb.exe
AdbWinApi.dll
AdbWinUsbApi.dll
api
dmtracedump.exe
etc1tool.exe
fastboot.exe
hprof-conv.exe
NOTICE.txt
source.properties
sqlite3.exe
systrace

محتوای پوشه ی samples :
زیاد مهم نیست ولی اینان:
کد:
1.txt
AccelerometerPlay
ActionBarCompat
AndroidBeamDemo
ApiDemos
BackupRestore
BasicGLSurfaceView
BluetoothChat
BluetoothHDP
ContactManager
content_hash.properties
CrossCompatibility
CubeLiveWallpaper
GestureBuilder
Home
HoneycombGallery
JetBoy
LunarLander
MultiResolution
NFCDemo
NotePad
NOTICE.txt
RandomMusicPlayer
RenderScript
SampleSyncAdapter
SearchableDictionary
SipDemo
SkeletonApp
Snake
SoftKeyboard
source.properties
SpellChecker
Spinner
SpinnerTest
TicTacToeLib
TicTacToeMain
ToyVpn
TtsEngine
USB
VoicemailProviderDemo
VoiceRecognitionService
WeatherListWidget
WidgetPreview
WiFiDirectDemo
Wiktionary
WiktionarySimple
XmlAdapters

محتوای پوشه ی system-images :

کد:
android-14
android-17
armeabi-v7a

محتوای پوشه ی tool :

کد:
adb.Bat
adb.exe
AdbWinApi.dll
adb_has_moved.txt
android.bat
ant
apps
ddms.bat
dmtracedump.exe
draw9patch.bat
emulator-arm.exe
emulator-mips.exe
emulator-x86.exe
emulator.exe
emulator64-arm
emulator64-mips
emulator64-x86
emulator_NOTICE.txt
etc1tool.exe
hierarchyviewer.bat
hprof-conv.exe
Jet
jobb.bat
lib
lint.bat
mksdcard.exe
monitor.bat
monkeyrunner.bat
NOTICE.txt
proguard
source.properties
sqlite3.exe
support
systrace
templates
traceview.bat
uiautomatorviewer.bat
zipalign.exe

اینم عکس :
http://s6.picofile.com/file/8184662100/a...folder.jpg
http://s6.picofile.com/file/8184662476/add_ons.jpg
http://s6.picofile.com/file/8184662492/build_tools.jpg
http://s6.picofile.com/file/8184662550/platforms.jpg
http://s4.picofile.com/file/8184662592/p..._tools.jpg
http://s6.picofile.com/file/8184662600/samples.jpg
http://s4.picofile.com/file/8184662726/s...images.jpg
http://s6.picofile.com/file/8184662668/tools.jpg

خود خروجی گرفتن apk (اندروید) در گیم میکر استادیو قبلا اینجا اموزش داده شده:
http://promakers.ir/showthread.php?tid=7709


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


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

http://drphysics.ir/wp-content/uploads/2014/07/word%20counter.zip
۰ نظر موافقین ۰ مخالفین ۰ ۰۴ ارديبهشت ۹۴ ، ۰۴:۳۸
مدیرکل



نرم افزار موتور رندرینگ قدرتمند برای پروژه های 3 بعدی KeyShot Pro v4.1.35

KeyShot Pro نرم افزاری کاربردیست که به طراحان و مهندسان اجازه می دهد تا از مدل های سه بعدی تصاویر واقعی ثبت کنند. این نرم افزار قدرت CPU شما را به کار می گیرد تا تصاویر عالی و با کیفیت را به شماارائه کند. KeyShot Pro در مقابل خدمات ویژه ی خود به کارت گرافیک بالا و یا دیگر سخت افزارهای خاص نیاز ندارد! شما میتوانید رنگ و یا بافت مدل مورد نظر را تغییر دهید تا به حالت مطلوب دست پیدا کنید. این نرم افزار با به کارگیری تکنولوژی KeyShotVR به شما اجازه می دهد تا تصاویر کامل و فوق واقعی سه بعدی را روی دسکتاپ سیستم خود داشته باشید و همچنین قابلیت انیمیشن سازی از تصویر سه بعدی در زمانی بسیار کوتاه برای شما میسر است. برای کار با این برنامه تنها کافیست مدل سه بعدی خود را وارد، آن را رنگ بندی، نوع نورپردازی را انتخاب، دوربین و بک گراند را تنظیم کنید و از تصویر زیبایی که ساخته اید لذت ببرید. این نرم افزار را میتوانید به صورت کاملآ رایگان از وب سایت ایرنیان دانلود دریافت نمایید.


برخی از ویژگی های این نرم افزار:

قابلیت حرکت بخشیدن به تصاویر ساخته شده
نورپردازی سراسری و تصحیح تابش نور
سازگاری با انواع ویندوزها
نورپردازی فوری و واقعی
برچسب گذاری فعال
رندر با کیفیت تصویر
Bump-mapping
معماری ۶۴ بیت
رندر شبکه ای
و …
تصاویری از محیط این نرم افزار:


http://www.dl.ir-dl.com/user13/September.2013/pic/Luxion.KeyShot.Pro.v4.1.35.www.IR-DL.com.S.jpg

روش نصب و کرک نرم افزار:
۱ – از قطع بودن اتصال سیستم به اینترنت مطمئن شوید و تا پایان مراحل زیر به اینترنت متصل نشوید.
۲ – با اجرای فایل Luxion.KeyShot.Pro.v4.1.35.exe به نصب نرم افزار بپردازید.
۳ – بعد از پایان مراحل نصب نرم افزار آنرا اجرا نکنید و سیستم را رستارت نمایید.
۴ – بعد از بالا آمدن سیستم بدون آنکه نرم افزار را اجرا کنید فایل Luxion.KeyShot.Pro.v4.1.35.Update.exe اجرا و نصب کنید.
۵ – بعد از پایان مراحل نصب فایل آپدیت نرم افزار اجرا نکنید و سیستم را رستارت نمایید.
۶ – بعد از بالا آمدن سیستم بدون آنکه نرم افزار را اجرا کنید وارد پوشه ی Crack شوید و فایل keyshot4.exe را در محل نصب نرم افزار کپی نمایید.
۷ – پس از کپی فایل کرک ممکن است با اخطار تکراری بودن فایل رو به رو شوید که در این صورت گزینه تایید و جایگزین کردن فایل جدید را انتخاب نمایید.
۸ – همچنان نرم افزار را اجرا نکنید و اینبار وارد پوشه ی Keygen شوید و فایل Keygen.exe را در محل نصب برنامه کپی نمایید.
۹ – پس از آنکه فایل Keygen.exe را کپی کردید آنرا اجرا کنید. (در ویندوز Vista و ۷ ابتدا بر روی فایل Keygen.exe کلیک راست کنید و سپس گزینه Run as administrator را انتخاب نمایید)
۱۰ – در پنجره ی ظاهر شده بر روی دکمه Genarate کلیک کنید.
۱۱ – در صورتی که در مسیر نصب نرم افزار قرار ندارید وارد مسیر نصب نرم افزار شوید و برروی دکمه ی Save کلیک کنید.
۱۲ – نرم افزار با موفقیت رجیستر شد. همچنین به این نکته توجه داشته باشید که بعد از کرک نرم افزار هرگز نباید آنرا اپدیت کنید.

.:: نسخه ۳۲ بیتی ::.


——————————

.:: نسخه ۶۴ بیتی ::.



نکته : keygen  به درستی MAC رو شناسایی نمی کنه که می تونید توی سایت ir-dl.com بهشون گزارش کنید.

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

برای رفع این مشکل ، در قسمت File->Build Settings ، روی گزینه ی PC , Max & Linux Standalone و سپس دکمه ی Player settings کلیک کرده و از قسمت راست گزینه ی Direct 3d 11 را غیر فعال نمایید.ضمنا دقت کنید نوع فایل تکستچر شما بهتر است PNG باشد نه jpg.

http://s4.picofile.com/file/8184261942/d3d_11_disable_for_redChannel_unity.jpg

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

گیم ابجکتی که میخواید  فیزیک نداشته باشه بهش collider بدید سپس از قسمت collider تیک IsTirgger رو بزنید . برای بررسی برخورد با جسم دیگر یا وجود جس دیگر با تگ فرضی otherTag این کد سیشارپ رو استفاده کنید:


void OnTirggerEnter ( Collision Other ) {
if ( Other.gameObject.tag== "otherTag"){
Debug.Log("barkhord ba vojood");
}
}
۹ نظر موافقین ۰ مخالفین ۰ ۰۳ ارديبهشت ۹۴ ، ۰۳:۵۰
مدیرکل

http://s5.picofile.com/file/8173225818/DKICE.jpg

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

آموزش پرداخت درون برنامه ای همراه پی برای Basic4Android در کمتر از 5 دقیقه - آموزشهای
در این آموزش میتوانید در کمتر از 5 دقیقه نرم افزار های خود را به سرویس پرداخت درون برنامه ای همراه پی مجهز نمایید
نکته ی مهم: شما باید در http://hamrahpay.com/ یک حساب داشته باشید(برای ایجاد حساب نیاز به داشتن عکس اسکن شده رنگی از صفحه ی اول شناسنامه و همچنین عکس رنگی از کارت ملی برای آپلود و همچنین یک حساب بانکی اینترنتی بانک ملت دارید)

محیط برنامه نویسی : Basic4Android

موارد مورد نیاز :

دانلود نمونه سورس همراه پی(hamrahpay) :
https://hamrahpay.com/public_upload/modu...v1beta.zip

فایل را از حالت فشرده خارج نمایید.

محتویات فایل :
[تصویر: files.png]

از دایرکتوری libs فایل WebViewExtras2-v2.10 از حالت فشرده خارج نموده و فایل های آن را در مسیر نصب Basic4Android در زیر دایرکتوری Libraries کپی نمایید.
دایرکتوری hamrahpay_b4a_v1beta شامل نمونه پروژه همراه پی برای Basic4Android میباشد که شما باید این پروژه را در محیط Basic4Android باز نمایید.





شروع آموزش استفاده از همراه پی در Basic4Android



1- ابتدا یک پروژه جدید در b4a ایجاد نمایید و طبق تصویر زیر کتابخانه های مورد نیاز را فعال نمایید:
[تصویر: libs.png]

2- اضافه کردن ماژول همراه پی : در این مرحله باید یک ماژول جدید به نام hamrahpay ایجاد نمایید . طبق تصویر زیر :

https://hamrahpay.com/assets/images/tutorials/b4a/add_module.png

سپس نام آن را hamrahpay گذاشته

https://hamrahpay.com/assets/images/tutorials/b4a/module_name.png

و کد های داخل ماژول hamrahpay که در نمونه کد های دانلود شده قرار دارد را در این فایل کپی نمایید.



3- ایجاد یک اکتیویتی جدید به نام payment_activity طبق تصویر زیر :

https://hamrahpay.com/assets/images/tutorials/b4a/create_activity.png

در این مرحله نیز باید همانند مرحله قبل کد های payment_activity را از نمونه کدهای دانلود شده کپی نمایید و در این فایل قرار دهید.



3- حال نوبت به ساخت دکمه پرداخت رسیده است . برای این کار شما باید یک دکمه در پروژه خود ایجاد نموده و در رویداد click آن کد درخواست پرداخت را بنویسید . این کار به سادگی هرچه تمام و تنها با 2 خط کد انجام میشود . در تصویر زیر نمونه کد پرداخت را مشاهده مینمایید که در نمونه کد پروژه نیز وجود دارد.

https://hamrahpay.com/assets/images/tutorials/b4a/pay_btn.png

در خط اول ابتدا صحت اتصال به اینترنت توسط کتابخانه همراه پی چک میشود و در صورت عدم اتصال پیام خطایی به کاربر نمایش داده میشود و در غیر اینصورت یک درخواست پرداخت ارسال خواهد شد و در صورتی که مشکلی وجود نداشته باشد صفحه پرداخت به کاربر نمایش داده خواهد شد . در این کدproduct_sku یک متغیر از نوع string میباشد که حاوی کد شناسه کالا میباشد . این کد را میتوانید پس از ثبت کالا در همراه پی از پنل خود کپی نمایید.



برای ایجاد دکمه پرداخت میتوانید از Designer وارد محیط طراحی شده و از منوی Add View و انتخاب Button یک دکمه به نام pay_btn ایجاد نمایید . طبق تصویر زیر :

https://hamrahpay.com/assets/images/tutorials/b4a/create_btn.png


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

نکته : این دکمه در هرکجای نرم افزار شما میتواند قرار گیرد ، ما در این پروژه در اکتیویتی Main قرار داده ایم که میتوانید از نمونه کدهای دانلود شده مشاهده نمایید .

در اکتیویتی Main یک متغیر به نام product_sku از نوع String قرار دارد که حاوی کد شناسه محصول میباشد و باید با شناسه محصول شما جایگزین گردد.

[تصویر: sku.png]

مرحله نهایی :

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

برای این کار فایل ماژول hamrahpay را باز کرده و در خط آخر یک متد یا sub به نام activate_app وجود دارد که باید کدهای فعال سازی برنامه خود را در آن بنویسید و یا در صورتی که تابع فعال سازی دیگری دارید در این تابع فراخوانی گردد .

هم اکنون در 4 مرحله بسیار ساده نرم افزار شما به سرویس پرداخت درون برنامه ای همراه پی مجهز شده است.

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

منبع : همراه پی
http://hamrahpay.com/

-
کپی مطلب از
http://quicklearn.ir/forums/topic/4695-%...B1-%DA%A9/

ماژول پرداخت برای eclipse هم اینجا (سایت hampay ) می تونید تهیه کنید با مستندات :
http://hamrahpay.com/modules


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

gameover.blog.ir
دانلود فایل و ذخیره در محل پروژه توسط سیشارپ در یونیتی(روی اندروید هم ج میده) :
کد سیشارپ(دقت کنید اسم اسکریپت بذارید NewBehaviourScript   ) :


using UnityEngine;
using System.Collections;

public class NewBehaviourScript : MonoBehaviour {
    public string url = "http://sajjad3011.xzn.ir/sajjad3011.avi";
    IEnumerator Start() {
        WWW www = new WWW(url);
        yield return www;
        //renderer.material.mainTexture = www.texture;
        //save downloaded File
        System.IO.File.WriteAllBytes("sajjad3011.avi", www.bytes);
        Debug.Log (Application.persistentDataPath);
    }
}
عکسی از اجرای اسکریپت و فایل avi دانلودی و ذخیره در مسیر جاری پروژه:
http://s4.picofile.com/file/8183626768/downloadFileAndSave.jpg

نکته 1: لینک دانلود باید مستقیم باشه. نه اینکه مثل picofile ابتدا دکمه ی دانلود رو بزنیم و بعدش لینک دانلود بیاد.
نکته 2: بعضی اوقات با خطایی مثل این مواجه بشیم:
کد:
couldn't connect to host
که به علت دستکاری تنظیمات پ_ر_ا_ک_30 یونیتی یا قندشکن شما ممکن هست باشه .منظورم همون تنظیماتی هست که برای دانلود از asset store در بخش environment variables از device manager انجام دادید.
یادتون نره طبق شکل Android رو انتخاب کرده و به قسمت Player settings رفته و در زیر شاخه ی Other settings گزینه ی write access رو روی SD Card(یا اجازه دسترسی کارت حافظه) قرار بدید.
گزینه bundle indentifier (شناسه کاربری) هم اسم اپلیکیشن شما بعد از نصب روی دستگاه اندروید هست.(مثال : com.gameover.test1  که گیم آور اسم شرکت و test1 اسم اپلیکیشن هست).
http://s4.picofile.com/file/8184039568/playerSettings_SD_card_setting_for_android.jpg

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

http://i.stack.imgur.com/T5DP4.jpg


در هنگامی که می خواید یک AVD=android virtual device یا دستگاه مجازی اندروید ایجاد کنید ممکنه با خطای پیدا کردن system images مواجه بشیم.

برای رفع این مشکل، دو نکته مهم رو باید حتما رعایت کنید:

به احتمال زیاد مسیرandroid.jar  رو توی b4a درست config کانفیگ نکردید.

پوشه ی  android-14 موجود در فایل zip  دانلود شده از لینک زیر رو داخل پوشه system-images  در مسیر

AppData\Local\android\android-sdk\system-images

کپی کنید:

https://www.mediafire.com/?18qpqdkz3cq8oxm


بعد از نصب می تونید برید ببینید ARM -ABI (ای آر ام ای بی آی) نصب شده:

http://i.stack.imgur.com/GQal9.jpg

حالا basic4android رو باز کنید و از منوی Tools گزینه ی Configure paths رو انتخاب کنید و جلوی android.jar مسیر درست سیستم خودتون رو بدید. برای من مسیرش اینه :

C:\Users\userName\AppData\Local\android\android-sdk\platforms\android-14\android.jar

به جای userName باید اسم کاربری دقیق سیستم خودتونو بدید.

البته اگه بلد نیستید می تونید توی منوی Run بنویسید appdata و enter بزنید تا مسیر رو بیاره و برید توی local و سپس android و android-sdk و بقیشو دنبال کنید تا به مسیر دقیق دسترسی پیدا کنید.

حالا راحت می تونید create AVD بزنید و یه دستگا ایجاد کنید و اونو Start کنید.

http://s6.picofile.com/file/8183832350/arm_abi.jpg

http://s6.picofile.com/file/8183832434/avd_2.jpg


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

ابتدا در subtool روی آبجکتی که می خوایم کلیک می کنیم تا انتخاب بشه. سپس روی دکمه ی Merge>merge Down می زنیم تا با ابجکت زیرینش ادغام بشه. البته با اون فلش پایین یا بالا یا فلش هایی که وجود داره می تونید ابجکت ها رو شیفت(انتقال) بدید به بالا یا پایین(کلید میانبر ctrl+Up یا ctrl+Down)

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

Fibermesh>Export Curves

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

 

برای شروع کار یک پروژه جدید ایجاد می کنیم و اسمش رو ListView with Alphabetical قرار میدیم که به معنی لیست ویو به همراه حروف الفبا است.بر روی لایه برنامه از یک listview برای نمایش لیست میوه ها و از یک LinearLayout برای نمایش حروف اافبا استفاده می کنیم.(کدهای کامل لایه برنامه یا activity_main.xml).

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal"
android:paddingLeft="5dp"
tools:context=".MainActivity"
android:baselineAligned="false" >

<ListView
android:id="@+id/list_fruits"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:paddingRight="5dp" >
</ListView>

<LinearLayout
android:id="@+id/side_index"
android:layout_width="50dp"
android:layout_height="fill_parent"
android:background="#c3c3c3"
android:gravity="center_horizontal"
android:orientation="vertical" >
</LinearLayout>

</LinearLayout>

بعد از اینکه لایه برنامه رو تکمیل کردیم نوبت اون میرسه که یک لایه جدید ایجاد کنیم به اسم side_index_item.xml تا حروف الفبا داخل اون قرار بگیره.ایجاد یک لایه و یک فایل xml رو در جلسه پنجاه و ششم میتونید ببینید.(کدهای کامل لایه جدید).

<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/side_list_item"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:gravity="center"
android:padding="3dp"
android:textSize="14sp" />

خیلی عالی ,بعد از اینکه لاهی های برنامه رو تکمیل کردیم وقت اون میرسه که اسم میوه هامون رو به لیست ویو اضافه کنیم.برای این کار از پوشه  values فایل String.xml رو انتخاب می کنیم  و ایتم های زیر رو بهش اضافه می کنیم.(لیست ایتم های فایل string).فایل string در واقع به نوعی وظیفه ذخیره سازی اطلاعات در قالب یک فایل xml رو برعهده داره.

<?xml version="1.0" encoding="utf-8"?>
<resources>

<string name="app_name">ListView with Alphabetical</string>
<string name="action_settings">Settings</string>
<string name="hello_world">Hello world!</string>

<string-array name="fruits_array">
<item>Apples</item>
<item>Apricots</item>
<item>Avocado</item>
<item>Annona</item>
<item>Banana</item>
<item>Blueberry</item>
<item>Blackberry</item>
<item>Blackapple</item>
<item>Custard Apple</item>
<item>Clementine</item>
<item>Cantalope</item>
<item>Date</item>
<item>Elderberry</item>
<item>Fig</item>
<item>Grapefruit</item>
<item>Grape</item>
<item>Gooseberry</item>
<item>Guava</item>
<item>Honeydew melon</item>
<item>Jackfruit</item>
<item>Juniper Berry</item>
<item>Kiwi</item>
<item>Kumquat</item>
<item>Lemons</item>
<item>Limes</item>
<item>Lychee</item>
<item>Mango</item>
<item>Mandarin</item>
<item>Nectaraine</item>
<item>Orange</item>
<item>Olive</item>
<item>Prunes</item>
<item>Pears</item>
<item>Plum</item>
<item>Pineapple</item>
<item>Peach</item>
<item>Papaya</item>
<item>Pomelo</item>
<item>Raspberries</item>
<item>Rambutan</item>
<item>Strawberries</item>
<item>Sweety</item>
<item>Salmonberry</item>
<item>Tangerines</item>
<item>Tomato</item>
<item>Ugli</item>
<item>Watermelon</item>
<item>Woodapple</item>
</string-array>

</resources>

در بخش بعدی کلاس MainActivity.java رو اجرا میکنیم و کدهای زیر رو بهش اضافه می کنیم.در این اموزش با HashMap اشنا میشیم.(کدهای کامل کلاس MainActivity.java).

import java.util.ArrayList;
import java.util.Arrays;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ArrayAdapter;
import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.TextView;

public class MainActivity extends Activity implements OnClickListener {


Map<String, Integer> mapIndex;
ListView fruitList;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

//گرفتن اطلاعات از فایل xml
String[] fruits = getResources().getStringArray(R.array.fruits_array);

//ایجاد یک ارایه
Arrays.asList(fruits);

fruitList = (ListView) findViewById(R.id.list_fruits);
fruitList.setAdapter(new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_1, fruits));

getIndexList(fruits);

displayIndex();

}

//با استفاده از hashmap کلید ها و حروف ها رو به صورت لیست نمایش میدیم
private void getIndexList(String[] fruits) {
mapIndex = new LinkedHashMap<String, Integer>();
for (int i = 0; i < fruits.length; i++) {
String fruit = fruits[i];
String index = fruit.substring(0, 1);

if (mapIndex.get(index) == null)
mapIndex.put(index, i);
}
}

//نمایش حروف الفبا
private void displayIndex() {
LinearLayout indexLayout = (LinearLayout) findViewById(R.id.side_index);

TextView textView;
List<String> indexList = new ArrayList<String>(mapIndex.keySet());
for (String index : indexList) {
textView = (TextView) getLayoutInflater().inflate(
R.layout.side_index_item, null);
textView.setText(index);
textView.setOnClickListener(this);
indexLayout.addView(textView);
}
}

public void onClick(View view) {
TextView selectedIndex = (TextView) view;
fruitList.setSelection(mapIndex.get(selectedIndex.getText()));
}


منبع :
http://appinapps.com/Articles_View.aspx?t=%D8%B3%D8%A7%D8%AE%D8%AA%20%D9%84%DB%8C%D8%B3%D8%AA%20%D9%88%DB%8C%D9%88%20%D8%A8%D8%A7%20%D9%82%D8%A7%D8%A8%D9%84%DB%8C%D8%AA%20%D8%AC%D8%B3%D8%AA%D9%88%D8%AC%D9%88%DB%8C%20%D8%A7%D9%84%D9%81%D8%A8%D8%A7%DB%8C%DB%8C&gid=11&aid=127
۱ نظر موافقین ۰ مخالفین ۰ ۲۸ فروردين ۹۴ ، ۰۸:۳۷
مدیرکل
var radius = 5.0;
    var power = 10.0;
    function Start () {
        // Applies an explosion force to all nearby rigidbodies
        var explosionPos : Vector3 = transform.position;
        var colliders : Collider[] = Physics.OverlapSphere (explosionPos, radius);
        
        for (var hit : Collider in colliders) {
            if (hit && hit.rigidbody)
                hit.rigidbody.AddExplosionForce(power, explosionPos, radius, 3.0);
        }
    }

explosionRadius شعاع انفجار هست.


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

این اموزش ویدئو کوچولوی سه مگی رو گذاشتم اونا که خیلی تازه کار هستن راست چین چپ چین و فونت و رنگ رو بلد شن:
(فقط چون با بچه های مختلف کار می کنم و می بینم اموزش سازی ساده هم براشون سخته اینو میذارم تا اگه استقبال شد بازم بذارم همینجا)

فرمت فایل MP4


http://s5.picofile.com/file/8142953668/w...1.zip.html

به هر آموزشی نیاز دارید درخواست بدید.

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

برای اینکار می تونیم Alt+Space بزنیم و از لیست ابزارها،Scale رو انتخاب کنیم. روش بعدی انتخاب Scale از ناحیه بالایی هست. روش دیگه فشردن کلید E هست.
برای Move و Rotate هم کلید W یا R رو می تونید بزنید(یادتون باشه در Edit mode باید باشیم)

http://s4.picofile.com/file/8182826400/scale_subTool.jpg

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

مسیر Tool > SubTool ->Split to parts رو طی و OK کنید.
سپس در قسمت sub tool قسمت دلخواه رو انتخاب کنید.
حالا می تونید روی قسمت انتخاب شده کار کنید و ویرایش رو انجام بدید.

http://s4.picofile.com/file/8182172050/split_parts_zbrush.jpg

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

http://s2.picofile.com/file/7878490749/Load_And_Save_Game.rar.html

-----------------------------------
این کدهای باز کردن فایل و خوندن اطلاعات:
فرض می کنیم فایلی در مسیر جاری به نام ali.ini وجود داره با محتوا و ساختاری مثل این :

کد PHP:
[data]
esm=dd
emtiaz
=14
max_emtiaz
=33 
-------------------------------------
باز کردن فایل ali.ini :
کد PHP:
ini_open'ali.ini' ); 
-------------------------------------
کد PHP:
global.my_nameini_read_string('data','esm',''); 
کد بالا میگه توی فایل باز شده تمام متن های زیر کلمه ی data رو سرچ کن و اگه دیدی چیزی به نام esm پیدا شد بعدش یه مساوی زده ؛ اون مقداری که بعد از مساوی اومده رو برگردون و بریز توی متغیر my_name.
ضمنا اگه چیزی پیدا نشد یه مقدار خالی یا رشته ی خالی رو بریز توی my_name به صورت پیشفرض یا default
---------------------------
بعدش یه while گذاشتی توی کدها که اونم یه جاش اشتباهه که به جای = باید == بذاریم (اینا نکات ریزی هست که فقط حرفه ای ها درک می کنن چی می گم ولی سوال بود ازم بپرسید)
من کمی تغییرش میدم:
کد PHP:
while (global.my_name=='') global.my_name=get_string('Enter Your Name',''
توی کد بالا می گه اگه در مرحله ی قبلی چیزی پیدا نشد و تا زمانی که متغیر سراسری my_name مقداری نداره یه کادر ورودی باز کن و به کاربر بگو Enter your name یعنی اسمتو وارد کن. و اگه کاربر هیچی وارد نکنه مقدار خالی رو بریز توی my_name (که بازم شرط تکرار بشه تا زمانی که کاربر یه چرت و پرتی رو به عنوان اسم وارد کنه. یعنی در حقیقت اول میاد توی فایل می گرده اگه بود که دیگه while اجرا نمیشه اما اگه نبود از ورودی اسم رو میخواد)
--------------------
خط بعدی شبیه اینه :
کد PHP:
global.my_emtiazini_read_real('data','emtiaz',0); 
می گه همون داستان رو تکرار کن ولی اینبار توی فایل بگرد ببین مقداری که بعد از emtiaz= اومده رو بریز توی متغیر my_emtiaz
و اگه امتیازی پیدا نشد مقدار پیشفرض رو بذار صفر(0)
------------------------------------
دستور بعدی اینه :
کد PHP:
global.highestscoreini_read_real('data','max_emtiaz',0); 
این دستور می گه max_emtiaz و بعدش = رو پیدا کن و بعدش مقداری که هست رو بخون بریز توی highestscore
و اگه مقداری وجود نداشت به طور پیشفرض 3 رو بذار
-------------
آخر کار هم می گه ini_close که دیگه توضیح بی توضیحbig grin
----------------------------------------------------------------------------------
اینم کدهای اصلی شما برای نوشتن توی فایل (این کدها طبق ساختار پروژه ی شما عینا آورده شده و من هیچ توضیحی نمی دم چون مطمئنم دوستان با توضیحات قبلیم و تفکر روی اینا این بخش رو هم به سادگی درک خواهند کرد):
کد PHP:
ini_open('My_Game_Name'+'.'+'format');//Open ini file

ini_write_string('data','name',global.name);//write global.name to 'data' > 'name'
ini_write_real('data','coins',global.coins);//write global.coin to 'data' > 'coins'
if (score>global.highestscore) global.highestscore=score//if the score was higher than the highestscore set variable score into global.highestscore
ini_write_real('data','highestscore',global.highestscore);//write global.highestscore to 'data' > 'highestscore'
//You can Change variable names and saved position

ini_close() //close the ini file

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

وقتی یک مدل رو unwrap می کنیم و مثلا از توی بلندر میبریم توی یونیتی، باید حتما تسکتچر هر بخش ساخته شده رو جدا جدا توی یونیتی ایمپورت کنیم و سپس set کنیم روی متریال جدیدی که حالا bumped هست(شامل تو texture یکی نرمال مپ و یکی دیفیوس)، یا diffuse یا ..
. .
پس دقت کنید که اگه یک تکستچر جدید میسازید که روی مدلتون توی بلندر دوباره ویرایش شده باشه باید حتی اون مدل قبلی رو از توی یونیتی حذف کنید و دوباره مدل ویرایش شده رو(دقت کنید علاوه بر تکستچر ها باید خود مدل رو هم) دوباره اسکپورت و سپس توی یونیتی دوباره ایمپورت کنید وگرنه ممکنه بعضی جاهای خالی جدای از UV شما(مثل اون بخش های شطرنجی یا حالا هرچیز اضافی) روی مدل قبلی تاثیر داشته باشه.


نکته ی بعدی اینه که:

شما نباید یک عکس png یا حالا jpg و .. رو مستقیم بکشید روی مدلتون توی یونیتی.

بلکه شما باید ابتدا یک material جدید رو new کنید و سپس متریال رو انتخاب کنید و سپس تکستچر رو بکشید روی کادر مربوط توی inspector توی قسمت تکستچر از متریال ایجاد شده تا تکستچر شما روی متریال set بشه .

و نهایتا باید قسمت دلخواه مدل رو توی یونیتی جدای از بقیه در حالت انتخاب قرار بدید(روش کلیک کنید تا انتخاب بشه) و سپس این متریال رو بکشید روش. با اینکار دقیقا همون تکستچر گذاری دقیقی که قبلا توی بلندر بود رو توی یونیتی خواهید دید.

نکته ی بعدی که مربوط به بلندر هست ولی اینجا بازم یاد آوری می کنم اینه که برای اینکه توی بلندر در مد uv editing براش یا قلم شما روی تکستچر دلخواهتون set بشه و رنگ که می کنید با تکستچر روی مدل بندازه،باید توی بخش نقاشی روی کادر تکستچر بزنید و تکستچری رو که قبلا load کرده بودید رو انتخاب کنید نه color paint رو.
--
نکته ی آخر که واسه مبتدیا بگم اینه که :

نرمال مپ که می گن همون bumped texture هست که چیز خاصی نداره فقط یک متریال ایجاد می کنید و نوع تکستچر رو از کادر مربوط توی inspector روی bumped می ذاریم خودش دو تا گزینه میاره یکش واسه تکستچر diffuse هست و یکیش واسه normal map. تکستچر دیفیوس همون تکستچری هست که ساختیم و می کشیم روی همین گزینه.
برای ساخت تکستچر normal map کاقیه نرم افزار crazy bumped رو داشته باشید که یکی از بهترین نرم افزار ها هست که فقط همون تکستچر عادی یا diffuse رو توش open می کنید و موقع save فقط save normal to file رو می زنید که یک فایل png آبی و صورتی تولید می کنه که در حقیقت واسه ایجاد یک جور برجستگی روی مدل هست همون می گیم تصویر نرمال یا normal map texture که بعد از ساخت، کافیفه png file رو ببریم توی یونیتی و بعد از ایمپورت شدن بکشیم روی همون کادر normal map تا تکستچر نرمال مپ هم set بشه و در نهایت روی دکمه ی fix فقط یکبار کافیه کلیک کنید تا نتیجه رو روی مدل توی صحنه ی بازی ببینید. البته دقت کنید که معمولا برای شاهده ی بهتر کافیه یک directional light (نور مستقیم) بندازید توی صحنه و در زاویه ی مناسب.
--
سوالی بود بگید تا تصویر بذارم. چون ممکنه بعضیا بگن سطح مطلب بالا بود و متوجه نشن.
۰ نظر موافقین ۰ مخالفین ۰ ۲۳ فروردين ۹۴ ، ۱۴:۵۵
مدیرکل
حجم : 2 مگ
کپی شده از پرومیکرز
http://opizo.com/rjiMTG



۰ نظر موافقین ۰ مخالفین ۰ ۲۳ فروردين ۹۴ ، ۰۲:۴۵
مدیرکل
منبع:gameover.blog.ir
شماره تماس سازنده: 09358077198   sajjad3011    یادش بخیر.... خودمم ادمین.ههههه.... پرومیکرزی ها یادتون بخیر.... نظر بذارید یا sms اگه خواستید تیم بزنید زنگ بزنید منم حاضرم بیام....
دانلود کنید
نظر یادتون نره
(نکته: بعد از گیم میکر/استادیو حتما به سمت یونیتی کوچ کنید.فقط به خاطر مبتدی ها این سورس ها رو یکی دوستان م برای ما گذاشته.)
۲۶ نظر موافقین ۰ مخالفین ۰ ۲۳ فروردين ۹۴ ، ۰۲:۳۸
مدیرکل

ابتدا Http Dll 2.2 رو از اینجا دانلود کنید.
هر ورژنی رو که دوست دارید منتهی من با http_dll_2_3.gex توی گیم میکر 8.1 و با http_dll_2_3_studio.gex توی گیم میکر استادیو کار می کنم.
----
لینک دانلود Http Dll 2.2 :
http://www.maartenbaert.be/game-maker-dl.../#download
احتمالا فایل Gex توی مسیر source\http-dll-2-3\gm هست.
-----------
حالا باید این gex file ها رو توی گیم میکر install کنیم و به سمت چپ انتقال بدیم. توی شکل ببینید

http://s6.picofile.com/file/8182071418/httpDll.gif

سپس یه object بسازید و رویم room بذارید و براش اینا رو ایجاد کنید :

توی رویداد room end:

کد PHP:
// room end event
if httprequest!=-{
    
httprequest_destroy(httprequest);


رویداد draw:
کد PHP:
draw_text(room_width/2,room_height/2,"press Space to Download"); 

رویداد press space :
کد PHP:
globalvar httprequestst;
httprequest httprequest_create();
// download(url, destination)
// downloads a file and saves it at the destination
// returns whether successful
var stresultb;
httprequest httprequest_create();
//httprequest_connect(httprequest, argument0, false);
httprequest_connect(httprequest"http://latex-project.org/lppl/lppl-1-1.txt"false);
while 
true {
    
httprequest_update(httprequest);
    
st httprequest_get_state(httprequest);
    if 
st=or st={
        break;
    }
    
sleep(10);
}
if 
st={
    
result false;
} else {
    
result true;
    
buffer_create();
    
httprequest_get_message_body_buffer(httprequestb);
    
buffer_write_to_file(b"download.txt");
    
show_message("saved download.txt")
    
buffer_destroy(b);
}
httprequest_destroy(httprequest);
return 
result
---------
پروژه رو با F5 اجرا کنید
---------
دقت کنید که توی بالا من دارم فایل :
http://latex-project.org/lppl/lppl-1-1.txt
رو دانلود می کنم و با نام download.txt در مسیر جاری میریزم.
شما می تونید بعد از دانلود فایل اونو move کنید جای دلخواه و سپس اونو delete کنید که از این جور اسکریپت های کار با file هم واسه GML توی اینترت زیاده.
موفق باشید.big grin
هر کی نتونست اجرا بگیره و مشکل داشت پ.خ بده خود فایل gm81 سورس رو بدم اجرا بگیره ولی اول خودتون ور برید باهاش

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

برای ساخت یک فایل HTML مثل index.html مراحل زیر رو دنبال کنید.

توی game maker برید و یک room و یک object بسازید .

توی کد create ابجکت چیزی شبیه اینو بنویسید:

کد :
txtfile file_text_open_write("index.html");
text1="<html><body><form name=form1 id=form1 action=";
text1+="http://sitename.com/sabte_emtiaz/index.php ";
text1+=" method=post><input type=text id=esm name=esm value=ali>";
text1+="<input type=text id=emtiaz name=emtiaz value=123>";
text1+="<input type=submit name=submit value=submit>";
text1+="</form>";
text1+="</body>";
text1+="</html>";
file_text_write_string(txtfile,text1);
file_text_close(txtfile); 
یک بار ابجکت رو توی room قرار بدید.
با F5 سورس رو اجرا کنید.
مشاهده می کنید که در مسیر جاری فایل به اسم index.html ساخته شده که شامل یه فرم دلخواه با مقادیر پیش فرض هست.
از این روش می خواستم برای ثبت امتیاز آنلاین استفاده کنم که به وقتش اگه ساختم سورسشو (هر چند به نظرم دارای باگ هایی هست) میذارم.
هر کی خوشش اومد تشکر رو بزنه بی زحمت
۰ نظر موافقین ۰ مخالفین ۰ ۲۳ فروردين ۹۴ ، ۰۲:۲۹
مدیرکل


جایی که کد رفتن به مرحله ی بعد رو میخواید بدید قبلش کد ذخیره رو اجرا کنید:

کد :
game_save("file.sav"
این کد هم برای ادامه از آخرین save:
کد :
if(file_exists("file.sav")) game_load("file.sav")

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

بزن تا کادر فرمان باز بشه.
Add UV Sphere رو بنویس یا بعضی حروفشو بنویسی خودش لیست می کنه و enter کن تا یک کره(Sphere) ایجاد بشه.
(روش دیگه shift+A و انتخاب mesh->sphere)

حالا با راست کلیک انتخابش کن و برو به Edit mode (با Tab یا از اون پایین به جای object mode باید edit mode رو انتخاب کنی)

حالا برو به UV editing(بالا کادر کنار منوی help) و یک عکس چشم باز کن.

حالا در سمت راست 1 و سپس 5 رو بزن تا به نمای روبرو و ارتوگرافیک(دو بعدی بره) و سپس Space بزن و Project From View رو بنویس و Enter کن تا آنرپ بشه.(البته U هم بزنی می تونی از لیست Project From view رو انتخاب کنی) یعنی انداختن تکستچر روی مدل از نمای جاری روبرو.

بعدش در سمت چپ ماوس رو می بری توی کادر uv editing(اگه صحنه بزرگ بود F بزن تا عکس جا بشه ) و بعدش A می زنی تا تمام رئوس(vertex ها) انتخاب بشه و سپس در همون سمت چپ S بزن و مدل رو Scale کن تا دقیقا اندازه ی تکستچر بشه.

اگه می خوای جابجا کنی G بزن و ماوس رو حرکت بده تا Grab(جابجا بشه) و سپس Enter یا کلیک کن. واسه ذخیره هم مدل رو به obj اکسپورت کن و تکستچر هم با F3 می تونی ذخیره کنی(خودش UV map میشه چون آنرپ کردیم)

http://s4.picofile.com/file/8181953226/eye_model_texture.jpg

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

منبع:gameover.blog.ir

ابتدا یه rigifbody هم بدید به اشیاتون و سپس این اسکریپت رو بندازید روی ابجکتی که میخواید با ماوس بگیرید و جابجاش کنیم(نکته : دوربین رو از نمای بالا قرار بدید) :

منبع : سایت سازنده یونتیی

کد سیشارپ:

using UnityEngine;
using System.Collections;
 
[RequireComponent(typeof(Rigidbody))]
public class Dragable : MonoBehaviour
{
 
	public int normalCollisionCount = 1;
	public float moveLimit = .5f;
	public float collisionMoveFactor = .01f;
	public float addHeightWhenClicked = 0.0f;
	public bool freezeRotationOnDrag = true;
	public Camera cam  ;
	private Rigidbody myRigidbody ;
	private Transform myTransform  ;
	private bool canMove = false;
	private float yPos;
	private bool gravitySetting ;
	private bool freezeRotationSetting ;
	private float sqrMoveLimit ;
	private int collisionCount = 0;
	private Transform camTransform ;
 
	void Start () 
	{
	    myRigidbody = rigidbody;
	    myTransform = transform;
	    if (!cam) 
		{
	        cam = Camera.main;
	    }
	    if (!cam) 
		{
	        Debug.LogError("Can't find camera tagged MainCamera");
	        return;
	    }
	    camTransform = cam.transform;
	    sqrMoveLimit = moveLimit * moveLimit;   // Since we're using sqrMagnitude, which is faster than magnitude
	}
 
	void OnMouseDown () 
	{
	    canMove = true;
	    myTransform.Translate(Vector3.up*addHeightWhenClicked);
	    gravitySetting = myRigidbody.useGravity;
	    freezeRotationSetting = myRigidbody.freezeRotation;
	    myRigidbody.useGravity = false;
	    myRigidbody.freezeRotation = freezeRotationOnDrag;
	    yPos = myTransform.position.y;
	}
 
	void OnMouseUp () 
	{
	    canMove = false;
	    myRigidbody.useGravity = gravitySetting;
	    myRigidbody.freezeRotation = freezeRotationSetting;
	    if (!myRigidbody.useGravity) 
		{
			Vector3 pos = myTransform.position;
	        pos.y = yPos-addHeightWhenClicked;
	        myTransform.position = pos;
	    }
	}
 
	void OnCollisionEnter () 
	{
	    collisionCount++;
	}
 
	void OnCollisionExit () 
	{
	    collisionCount--;
	}
 
	void FixedUpdate () 
	{
	    if (!canMove)
		{
			return;
		}
 
	    myRigidbody.velocity = Vector3.zero;
	    myRigidbody.angularVelocity = Vector3.zero;
 
		Vector3 pos = myTransform.position;
	    pos.y = yPos;
	    myTransform.position = pos;
 
	    Vector3 mousePos = Input.mousePosition;
	    Vector3 move = cam.ScreenToWorldPoint(new Vector3(mousePos.x, mousePos.y, camTransform.position.y - myTransform.position.y)) - myTransform.position;
	    move.y = 0.0f;
	    if (collisionCount > normalCollisionCount)		
		{
	        move = move.normalized*collisionMoveFactor;
	    }
	    else if (move.sqrMagnitude > sqrMoveLimit) 
		{
	        move = move.normalized*moveLimit;
	    }
 
	    myRigidbody.MovePosition(myRigidbody.position + move);
	}
}

کد جاوا اسکریپت:


var normalCollisionCount = 1;
var moveLimit = .5;
var collisionMoveFactor = .01;
var addHeightWhenClicked = 0.0;
var freezeRotationOnDrag = true;
var cam : Camera;
private var myRigidbody : Rigidbody;
private var myTransform : Transform;
private var canMove = false;
private var yPos : float;
private var gravitySetting : boolean;
private var freezeRotationSetting : boolean;
private var sqrMoveLimit : float;
private var collisionCount = 0;
private var camTransform : Transform;
 
function Start () {
    myRigidbody = rigidbody;
    myTransform = transform;
    if (!cam) {
        cam = Camera.main;
    }
    if (!cam) {
        Debug.LogError("Can't find camera tagged MainCamera");
        return;
    }
    camTransform = cam.transform;
    sqrMoveLimit = moveLimit * moveLimit;    // Since we're using sqrMagnitude, which is faster than magnitude
}
 
function OnMouseDown () {
    canMove = true;
    myTransform.Translate(Vector3.up*addHeightWhenClicked);
    gravitySetting = myRigidbody.useGravity;
    freezeRotationSetting = myRigidbody.freezeRotation;
    myRigidbody.useGravity = false;
    myRigidbody.freezeRotation = freezeRotationOnDrag;
    yPos = myTransform.position.y;
}
 
function OnMouseUp () {
    canMove = false;
    myRigidbody.useGravity = gravitySetting;
    myRigidbody.freezeRotation = freezeRotationSetting;
    if (!myRigidbody.useGravity) {
        myTransform.position.y = yPos-addHeightWhenClicked;
    }
}
 
function OnCollisionEnter () {
    collisionCount++;
}
 
function OnCollisionExit () {
    collisionCount--;
}
 
function FixedUpdate () {
    if (!canMove) return;
 
    myRigidbody.velocity = Vector3.zero;
    myRigidbody.angularVelocity = Vector3.zero;
    myTransform.position.y = yPos;
    var mousePos = Input.mousePosition;
    var move = cam.ScreenToWorldPoint(Vector3(mousePos.x, mousePos.y, camTransform.position.y - myTransform.position.y)) - myTransform.position;
    move.y = 0.0;
    if (collisionCount > normalCollisionCount) {
        move = move.normalized*collisionMoveFactor;
    }
    else if (move.sqrMagnitude > sqrMoveLimit) {
        move = move.normalized*moveLimit;
    }
 
    myRigidbody.MovePosition(myRigidbody.position + move);
}
۰ نظر موافقین ۰ مخالفین ۰ ۲۲ فروردين ۹۴ ، ۰۳:۴۹
مدیرکل
۰ نظر موافقین ۰ مخالفین ۰ ۲۲ فروردين ۹۴ ، ۰۳:۲۲
مدیرکل

function OnCollisionEnter (myCollision Collision) {

     if(
myCollision.gameObject.name == "Platform"){
      if(!
myCollision.gameObject.rigidbody){
       
myCollision.gameObject.AddComponent(Rigidbody);
      }
     }
    }
۰ نظر موافقین ۰ مخالفین ۰ ۲۲ فروردين ۹۴ ، ۰۰:۲۱
مدیرکل


switch show_menu('text1|text2|text3','')
{
case 
1: break;//doe iets bij text1
case 2: break;//doe iets bij text2
case 3: break;//doe iets bij text3
default:
}

منبع : http://www.game-maker.nl/forums/topic,61897.0

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

draw_sprite_ext(sprite_index,image_index,x,y,image_xscale,image_yscale,image_angle,image_blend,image_alpha)

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

http://s4.picofile.com/file/8181699500/Bomb_and_People.gm81.html

برای ابجکت obj_people طبق عکس زیر تنظیم رو انجام بده(یعنی وقتی کد میدی تو بالا به جای self و other گزینه object رو بزن و object5 رو برای عملیات انتخاب کن(این ابجکت همون شاخه ای هست که می خوایم چک کنیم بمب روش افتاده یا نزدیکش اومده یا نه اگه اومده بعدش فاصله ی آدمک رو تا بمب چک می کنیم و نابودی)

http://s6.picofile.com/file/8181699242/obj_people_Step.jpg

با کلید R بازی ریست میشه.

۰ نظر موافقین ۰ مخالفین ۰ ۲۱ فروردين ۹۴ ، ۰۴:۰۴
مدیرکل
رویداد right_keyboard :
//-hol dadan be rast--// Push Right
if ( place_meeting(x,y,target_obj) && (x < target_obj.x - 5)  )
{
target_obj.x+=speed;
}

رویداد left_keyboard :
//-hol dadan be chap--// push Left
if (  place_meeting(x,y,target_obj) && (x > target_obj.x + 5)  )
{
target_obj.x-=speed;
}

برای پرت شدن بمب همکافیه زیر آبجکت رو چک کنی که اگه خالی بود یا در y+1 شی ای وجود نداشت(با place_empty یا place_meeting یا توابع collision یا ...) جاذبه بدید بهش و اگه برخورد داشت جاذبه یا gravity رو صفر کنید.
--
برای انفجار هم می تونید به اندازه ی sprite_width فاصله ی اطراف بمب رو چک کنید(بعد از برخورد با زمین if y==y1 و انفجار پارتیکل دود یا انفجار و destroy شدن) ، اگه distance_to_object از حد دلخواه کمتر بود اشیایی که در posision_meeting بود رو instance_destroy و نابود کنید و یه پارتیکل انفجار یا چه میدونم دود یا چیزی هم بذارید و بعد از پایان پارتیکل ، پارتیکل رو هم حذف کنید.



۰ نظر موافقین ۰ مخالفین ۰ ۲۰ فروردين ۹۴ ، ۱۳:۲۰
مدیرکل
آموزش ایجاد فایل ini در php :


<?php
//@URL http://stackoverflow.com/questions/1268378/create-ini-file-write-values-in-php?answertab=votes#answer-1268642
function write_ini_file($assoc_arr, $path, $has_sections = FALSE)
{
$content = "";
if ($has_sections) {
foreach ($assoc_arr as $key => $elem) {
$content .= "[" . $key . "]\n";
foreach ($elem as $key2 => $elem2) {
if (is_array($elem2)) {
for ($i = 0; $i < count($elem2); $i++) {
$content .= $key2 . "[] = \"" . $elem2[$i] . "\"\n";
}
} else if ($elem2 == "") $content .= $key2 . " = \n";
else $content .= $key2 . " = \"" . $elem2 . "\"\n";
}
}
} else {
foreach ($assoc_arr as $key => $elem) {
if (is_array($elem)) {
for ($i = 0; $i < count($elem); $i++) {
$content .= $key . "[] = \"" . $elem[$i] . "\"\n";
}
} else if ($elem == "") $content .= $key . " = \n";
else $content .= $key . " = \"" . $elem . "\"\n";
}
}
if (!$handle = fopen($path, 'w')) {
return false;
}
$success = fwrite($handle, $content);
fclose($handle);
return $success;
}
// write your array now in a .ini file
$sampleData = array(
'first' => array(
'first-1' => 1,
'first-2' => 2,
'first-3' => 3,
'first-4' => 4,
'first-5' => 5,
),
'second' => array(
'second-1' => 1,
'second-2' => 2,
'second-3' => 3,
'second-4' => 4,
'second-5' => 5,
));
write_ini_file($sampleData, './data.ini', true);


خواند فایل ini در php :
آموزش رو با مثال دنبال کنید :
در مسیر C:\xampp\htdocs\ini فایلی به اسم sample.ini با محتوای زیر ایجاد کن :

[Cars]
var1 = 1
var2 = 2

حالا فایلی به نام index.php با محتوای زیر ایجاد کن :


<?php
// Parse without sections
$ini_array parse_ini_file("sample.ini");
print_r($ini_array);

// Parse with sections
$ini_array parse_ini_file("sample.ini"true);
print_r($ini_array);

?>


حالا با مرورگر fireFox اینو اجرا بگیر :
http://localhost/ini/
خودش index.php رو اجرا می کنه و خروجی میشه چیزی شبیه این :

Array ( [var1] => 1 [var2] => 2 ) Array ( [Cars] => Array ( [var1] => 1 [var2] => 2 ) )

منبع :

اگه خونه ی اول آرایه رو هم بخوای تکی بدست بیاری :
echo($ini_array["var1"]);

خروجی: 1


-------
اطلاعات بیشتر بر گرفته از پرومیکرز:

تجزیه یک فایل ini



parse_ini_file

parse_ini_file — تجزیه یک فایل ini

شرح
کد PHP:
array parse_ini_file string $filename [, bool $process_sections false [, int $scanner_mode INI_SCANNER_NORMAL ]] ) 
این تابع همه ی اطلاعات یک فایل ini را به صورت یک آرایه ی بر می گرداند .

پارامتر ها
filename
فایل ini ای که می خواهید آنرا تجزیه و تحلیل کنید .
process_sections
اگر مقدار این پارامتر را برابر true قرار دهید یک آرایه ی چند بعدی بر می گرداند با نام section ها ( بخش هایی که در [] هستند ) و setting ( داده ها ) مقدار این پارامتر به صورت پیش فرض برابر false است .

scanner_mode
دو مقدار INI_SCANNER_NORMAL و INI_SCANNER_RAW را می تواند داشته باشد .
INI_SCANNER_NORMAL مقدار پیش فرض است

اگر INI_SCANNER_RAW انتخاب شود مقدار ها( ارزش های متغیر ها ) تجزیه نخواهند شد .

برگرداندن مقدار ها
یک آرایه ی چند بعدی را در صورت موفقیت بر می گرداند اگر موفق نباشد مقدار false بر گردانده می شود .


یک مثال

فایل زیر را با نام sample.ini در نظر بگیرید :

; This is a sample configuration file
; Comments start with ';', as in php.ini

[first_section]
one = 1
five = 5
animal = BIRD

[second_section]
path = "/usr/local/bin"
URL = "http://www.example.com/~username"

[third_section]
phpversion[] = "5.0"
phpversion[] = "5.1"
phpversion[] = "5.2"
phpversion[] = "5.3"
در فایل php زیر می خواهیم فایل را تجزیه کنیم:

<?php

define
('BIRD''Dodo bird');

// Parse without sections
$ini_array parse_ini_file("sample.ini");
print_r($ini_array);

// Parse with sections
$ini_array parse_ini_file("sample.ini"true);
print_r($ini_array);

?>


*** define تا اونجایی که من می دونم یک ثابت ایجاد می کنه الان ما یک ثابت ایجاد کردیم با اسم BIRD و مقدارش رو برابر Dodo bird قرار دادیم
ثابت ها بر خلاف متغیر های برای فراخونیشون نیاز به $ نیست و فقط اسمش رو بنویسیم فراخوانی می شن
برای مثال
echo BIRD;

خروجی این کد چیزی شبیه به این میشه:

Array
(
    [one] => 1
    [five] => 5
    [animal] => Dodo bird
    [path] => /usr/local/bin
    [URL] => http://www.example.com/~username
    [phpversion] => Array
        (
            [0] => 5.0
            [1] => 5.1
            [2] => 5.2
            [3] => 5.3
        )

)
Array
(
    [first_section] => Array
        (
            [one] => 1
            [five] => 5
            [animal] => Dodo bird
        )

    [second_section] => Array
        (
            [path] => /usr/local/bin
            [URL] => http://www.example.com/~username
        )

    [third_section] => Array
        (
            [phpversion] => Array
                (
                    [0] => 5.0
                    [1] => 5.1
                    [2] => 5.2
                    [3] => 5.3
                )

        )

)

***همونطوری که می بینید مقدار BIRD به جای Dodo bird هست

منبع اصلی :
http://php.net/manual/en/function.parse-ini-file.php

http://www.promakers.ir/showthread.php?tid=8956&pid=98665#pid98665
۰ نظر موافقین ۰ مخالفین ۰ ۱۷ فروردين ۹۴ ، ۱۱:۲۶
مدیرکل


برای تشخیص شیب از Raycasting() استفاده می شه.
اگه میخوای شیب زمین رو تشخیص بدی پیشنهاد میشه از Colider.Raycast() به جای Physics.Raycast() استفاده کنی.
کد نمونه(js) :

نمی دونم تا چه حد کمکت می کنه ولی یه متنی رو برات ترجمه کردم امیدوارم از هیچی بهتر باشه.
برای تشخیص شیب از Raycasting() استفاده می شه.
اگه میخوای شیب زمین رو تشخیص بدی پیشنهاد میشه از Colider.Raycast() به جای Physics.Raycast() استفاده کنی.
کد نمونه(js) :


var hit RaycastHit;
var 
ray = new Ray(transform.positionVector3.down);
if (
someCollider.Raycast(rayhit)) {
var 
slope hit.normal;
//Adjust character based on normal

کد بالا یک سطح نرمال رو نسبت به شیب ،پس می ده . مثل عکس زیر
http://s6.picofile.com/file/8180183634/surface_normal.jpg

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

var someCollider Collider;
var 
hit RaycastHit;
var 
ray = new Ray(transform.positionVector3.down);
if (
someCollider.Raycast(rayhit1000)) {
transform.rotation Quaternion.FromToRotation(transform.uphit.normal) * transform.rotation;

اسکریپت رو بداز روی player.
همچنین در inspector، زمین(terrain) شیب دار خودتو با ماوس Drag کن(بگیر) و بنداز روی متغیر someCollider در کادر خصوصیات inspector.
به player هم می تونی چند تا کالیدر بدی مثل برخورد کننده ی کپسولی(capsule collider).
برای جلوگیری از فرو رفتن ابجکت هم می تونی چرخش در جهت بردار انتخابی رو freeze کنی و یا اینکه می تونی مقدار پارامتر Drag در کامپوننت rigidbody رو که به ابجکتت دادی زیاد کنی.
منبع :
http://answers.unity3d.com/questions/509...ction.html


------------------------

حرکت یک گیم آبجکت روی سطح شیب دار :

http://s4.picofile.com/file/8180221934/gif_walker_perimeter.gif

منبع: http://www.asteroidbase.com/devlog/7-lea...w-to-walk/
مترجم : sajjad3011

یک روش آن است که از raycast برای چک کردن collider زیر player (یا شی در حال حرکت روی سطح شیب دار که در اصطلاح به آن Walker هم می گوییم) استفاده کنیم.اما Walker در حین حرکت به اطراف و با توجه به تغییرات باید مثل سنجاب نگاه کند.(منظورش زاویه چرخش هست).در عوض ما دو اشعه(ray) را پرتاب می کنیم.هر کدام برای یک طرف Walker:

bool doubleRaycastDown(TerrainMovementRayProperties movementRay, float rayLength,
        out RaycastHit leftHitInfo, out RaycastHit rightHitInfo)
{
    Vector3 transformUp = transform.up;
    Vector3 transformRight = transform.right;
    Ray leftRay = new Ray(transform.position + movementRay.originOffsetY * transformUp
        + movementRay.distanceFromCenter * transformRight, -transformUp);
    Ray rightRay = new Ray(transform.position + movementRay.originOffsetY * transformUp
        – movementRay.distanceFromCenter * transformRight, -transformUp);

    return Physics.Raycast(leftRay, out leftHitInfo, rayLength, DefaultTerrainLayerMask)
        && Physics.Raycast(rightRay, out rightHitInfo, rayLength, DefaultTerrainLayerMask);
}

اگر هر دو ray به یک کالیدر با لایه ی مناسب برخورد کرد،ما میانگین position و بردارهای normal نتیجه شده ی ابجکت های RaycastHit را بکار برده و از آنها به ترتیب برای تنظیم و موقعیت دهی Walker استفاده خواهیم کرد.این کار آسان است:

void positionOnTerrain(RaycastHit leftHitInfo, RaycastHit rightHitInfo,
        float maxRotationDegrees, float positionOffsetY)
{
    Vector3 averageNormal = (leftHitInfo.normal + rightHitInfo.normal) / 2;
    Vector3 averagePoint = (leftHitInfo.point + rightHitInfo.point) / 2;

    Quaternion targetRotation = Quaternion.FromToRotation(Vector3.up, averageNormal);
    Quaternion finalRotation = Quaternion.RotateTowards(transform.rotation, targetRotation,
        maxRotationDegrees);
    transform.rotation = Quaternion.Euler(0, 0, finalRotation.eulerAngles.z);

    transform.position = averagePoint + transform.up * positionOffsetY;
}

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

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

if(rigidbody.velocity.sqrMagnitude > 0)
{
    //if moving left
    if(MathUtilities.VectorSimilarity(rigidbody.velocity, selfTransform.right) > 0)
    {
        RaycastHit overrideLeftHitInfo;
        Ray overrideLeftRay = new Ray(transform.position
            + horizontalRayProperties.originOffsetY * selfTransform.up, selfTransform.right);
        if(Physics.Raycast(overrideLeftRay, out overrideLeftHitInfo,
            horizontalRayProperties.attachedRayLength, DefaultTerrainLayerMask))
        {
            leftHitInfo = overrideLeftHitInfo;
        }
    }
    //if moving right
    else
    {
        RaycastHit overrideRightHitInfo;
        Ray overrideRightRay = new Ray(transform.position
            + horizontalRayProperties.originOffsetY * selfTransform.up, -selfTransform.right);
        if(Physics.Raycast(overrideRightRay, out overrideRightHitInfo,
            horizontalRayProperties.attachedRayLength, DefaultTerrainLayerMask))
        {
            rightHitInfo = overrideRightHitInfo;
        }
    }
}


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

خطوط زرد و قرمز اشعه های پرتابی از طرف Walker را نشان می دهند.

خطوط بنفش و سبز،نرمال های تولید شده از ray های برخوردی با زمین را نشان می دهند.

خط آبی فیروزه ای ،میانگین آن نرمال ها،از نقطه ی وسط Walker در برخورد با زمین است.

اشعه ی باطل کردن افقی(horizontal override ray) در شکل نشان داده نشده.

دشمن کهکشانی در حال حرکت رو ترکیبی از collider ها مثل sphere collider و capsule collider می باشد اما این سیستم مثل همان mesh collider به خوبی کار می کند.

http://s4.picofile.com/file/8180219642/gif_walker_rays.gif

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

منبع :

http://www.joomprod.com/forum/search?q=pathway&childforums=1







public_html/components/com_adsmanager/views/list/tmpl/default.php

<?php 
/*
if ($conf->display_inner_pathway == 1) { ?>
	<div class="adsmanager_pathway">
	<?php 
		$pathway ="";
		$nb = count($this->pathlist);
		for ($i = $nb - 1 ; $i >0;$i--)
		{
			$pathway .= '<a href="'.$this->pathlist[$i]->link.'">'.$this->pathlist[$i]->text.'</a>';
			$pathway .= ' <img src="'.$this->baseurl.'components/com_adsmanager/images/arrow.png" alt="arrow" /> ';
		}
		if (isset($this->pathlist[0]))
			$pathway .= '<a href="'.$this->pathlist[0]->link.'">'.$this->pathlist[0]->text.'</a>';
	echo $pathway;
	*/
	?>
۰ نظر موافقین ۰ مخالفین ۰ ۱۰ فروردين ۹۴ ، ۲۰:۰۶
مدیرکل
۰ نظر موافقین ۰ مخالفین ۰ ۰۹ فروردين ۹۴ ، ۱۲:۵۳
مدیرکل

http://s5.picofile.com/file/8146304076/anime_studio_animate_fanar.jpg

چون احساس کردم خیلیا نیاز دارن از سردرگمی در بیان،توی این اموزش یاد می دم چطوری استخون بذارید و یک عکس png از فنر رو ببرید توی anime studio و اینیمیشن کنید و توی 12 فریم به صورت PNG اسپورت بگیرید واسه ساخت sprite :

http://s5.picofile.com/file/8146305934/fanar_tut_animestudio_sajjad3011.zip.html

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

http://s6.picofile.com/file/8177716118/shoot.jpg

http://s4.picofile.com/file/8177716268/football_shoot.rar.html

توی رویداد step از ball:

if speed>0 speed-=1;
if 
speed<0 speed=0


--
رویداد های player:


رویداد create:

//script:sajjad3011 promakers.ir
globalvar harkat,x_clicked,y_clicked,shoot,jahat;


رویداد step:

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

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

}
else

speed+=0.5;
}

}


فشردن کلید R برای ری استارت room:


room_restart()


global left mouse:

x_clicked=mouse_x;
y_clicked=mouse_y;
jahat=point_direction(x,y,x_clicked,y_clicked)
direction=jahat
image_angle
=point_direction(x,y,ball.x,ball.y)-90;
harkat=true 


press_space:

if(distance_to_object(ball)<50 
{
with ball
{
speed=20;
}
ball.direction=player.direction;
}


با click به توپ نزدیک میشیم و با space شوت می کنیم.
direction جهت هست. و image_angle زاویه ی نمایش sprite هر ابجکت.

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

gameover.blog.ir


#یونیتی 

آموزش بردار نرمال در یونیتی /کاربرد متد نرمالایز در یونیتی/کاربرد normalize/کاربرد تابع normalize در یونیتی/حرکت به سمت مقصد توسط بردار نرمال(بردار عمود بر هدف یا بردار حرکت مستقیم به سمت هدف


تابع Lerp از کلاس Vector3 :


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


🔶 #یونیتی


نکته: بی نرمالایز هم به سمت هدف حرکت انجام میشه ولی ابتدا سرعت زیاد و وقتی به هدف نزدیک میشیم،سرعت کمه،چون تفاضل فاصله ها کم شده در speed ضرب کنیم سرعت ثابت نیست،ولی با نرمال سرعت همیشه ثابت هست. لرزش هم داریم در انتها.




🔶🔶🔶نکته ی بعدی : متد لرپ یا تابع Lerp در حرکت نرم ،نسبت به روش normalize بهتر و جدیدتر هست. اما مقایسه ما از این جهت هست که قدرت تابع لرپ تکمیل تر از نرمالایز هست. یعنی لرپ امکانات بیشتری هم داره ولی اینکه بگیم nomalize منسوخ هست نه اینکار هم نمی کنیم. فعلا اون توی جایگاه خودش بمونه ولی فقط قصد ما اثبات قدرت لرپ بود. همین(بیسواد)


مثال ساده :


Public Transform target;

void Update(){

transform.position = Vector3.Lerp(transform.position, target.position, speed  * Time.deltaTime);

}




ادامه (کاربرد تابع Lerp)

حرکت به اندازه ای که تابه لرپ نسبت به ضریب 0.1f  از مبدا t1 به مقصد t2 محاسبه می کنه.
نمی تونیم بگیم 0.1f قدر. چون کار تابع لرپ اینه که اگه پارامتر سوم 1 باشه پوزیشن t2  و اگه 0 باشه پوزیشن t1 و اگه 0.5 باشه پوزیشن بین  t1 و t2 رو برگشت می ده.





using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class NORMAL : MonoBehaviour {

    public Transform t1, t2;
    float speed = 0.01f;
    void Update()
    {
        if (Input.GetKeyUp(KeyCode.A))
        {

        t1.position = Vector3.Lerp(t1.position, t2.position, 0.1f);

        }

    }
}

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

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

سپس گیم ابجکت اول  و دوم رو به ترتیب درگ کنید روی متغیر t1 و t2.

اجرا بگیرید. جسم مقصد رو جابجا کنید تا جسم مبدا بیاد دنبالش.






پیاده سازی normalized با استفاده از lerp/پیاده سازی متد نرمالایز با استفاده از متد لرپ/ساخت normalized با استفاده از Lerp/شبیه سازی تابع/متد normalized با استفاده از متد/تابع Lerp


'تمام محاسبه و کد توسط گیم اور انجام شده و کپی از جایی نیست.

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class NORMAL : MonoBehaviour {

    public Vector3 t1, t2;
    float speed = 0.01f;
    void Start()
    {
        t1 = new Vector3(0, 0, 0);
        t2 = new Vector3(1, 2, 2);
    
    }
    void Update()
    {
        if (Input.GetKeyUp(KeyCode.A))
        {
            Debug.Log(Vector3.Lerp(t1, t2, 1.0f/Vector3.Distance(t1,t2)));
            Debug.Log((t2-t1).normalized);
        Debug.Log("Thank u bisavad ma behet eftekhar mikonim");
        }

    }
}

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



تابع لرپ/متد لرپ/تابع Lerp/متد Lerp  از کلاس Vector3

شکل کلی


public static Vector3 Lerp(Vector3 a, Vector3 b, float t);


خروجی:
اگر t=0 بردار a
اگر t=1 بردار b
اگر t=0.5  بردار بین a,b 

در غیر اینصورت برداری روی فاصله ی بین بردار a و b
بر گشت داده میشه.

اگه  بخوایم  تابع normalized رو با Lerp پیاده سازی کنیم باید عدد 1 رو تقسیم به فاصله ی بین دو بردار کنیم،چون یک قسمت از این فاصله رو باید بدیم تا بردار حرکت به ما تحویل داده بشه.

دوستان این نکات رو بنویسید توی دفترتون. چون هر جایی گفته نشده.



توضیحات اضافی

slerp هم مثل lerp هست. شما lerp رو درک کنید اونم یادمی گیرید.

یه اسکریپت cs با کد زیر ایجاد کنید :

//lerp.cs
using UnityEngine;
using System
public class LightLerp: MonoBehaviour
{
private Vector3 newPosition;
void Awake()
{
newPosition = transform.position;
}
void Update()
{
PositionChanging();
}

PositionChanging()
{
Vector3 positionA = new Vector3(-5,3,0);
Vector3 positionB = new Vector3(5,3,0);

if(Input.GetKeyDown(KeyCode.Q))
newPosition = positionA;

if(Input.GetKeyDown(KeyCode.E))
newPosition = positionB;

transform.posision=newPosision;
}
}

اگه کد اشتباه داشت برطرف کنید چون همشون رو از روی فیلم سایت اصلی یونیتی تایپ کردم.
یه نور نقطه ای بذارید روی صحنه(point light) . شدت نور رو کمی زیاد کنید(خصوصیت Identsity) تا روی plane به چشم بیاد. 
اسکریپت فوق رو بدید به نور(بکشید روش رها کنید).
اجرا کنید .
طبق اسکریپت اگه Q بزنیم نور به موقع positionA میره و اگه E بزنیم به نقطه ی positionB .
شما اینو اجرا کنید می تونید ببینید چی می گم.( نور جابجا میشه )

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

برای اینکه نور با یک سرعت تعریف شده از نقطه ی A به نقطه ی B بره از تابع Lerp استفاده می کنیم. 

مثال شکل کلی استفاده از Lerp :
transform.position = Vector3.Lerp(transform.position, newPosition, smooth * Time.deltaTime);

تابع Lerp سه تا پارامتر می گیره :

From : از 
To: به
t : من بهش می گم time و شما هم بگید time. 
(با این که t مخفف چی هست و چی نیست یا اصلا غلط هست یا درست هم کاری نداشته باشید بذارید ما درس خودمون رو بدیم و اگه زیبا نبود بیخیالش بشید. اینم بگم خودم مقالات سایت رفرنس و سایت های ایرانی و خارجی زیادی رو مطالعه می کنم ولی مهم نیست همون time اسم گذاری کنید.)

به جای t مقدار smooth * Time.deltaTime رو بدید و به جای From و To هم متغیری از نوع بردار سه بعدی (در درس ما A و B) رو بدید.

smooth هم در بخش public(بالای برنامه) تعریف می کنید از نوع float(اعشاری).

و بعد از نسنب دادن اسکریپت به نور نقطه ای، خصوصیت smooth رو با مقدار 1 عدد بدید(اگه بیشترش کنید روان بودن و سرعت حرکت بیشتر میشه. این smooth داره در Time.deltaTime ضرب میشه و طبیعی هست دیگه هرچی بیشتر باشه سرعت زمانی حرکت نور بالا میره)

وقتی پروژه رو اجرا کنید با فشردن کلید Q و E نور به آرومی بین نقاط سه بعدی A و B تغییر موقعیت میده.

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

سه مثال کاربردی از روش استفاده از تابع Lerp :

معمولا گیم ابجکت های مختلفی هستند که از تابع Lerp استفاده می کنند.

سه حالت رو مثال می زنم:

حالت اول :
کد:

transform.position = Vector3.Lerp(transform.position, newPosition, smooth * Time.deltaTime);

کد بالا رو شرح دادم.پس بیخیالش.

حالت دوم :
کد:
light.intensity = Mathf.Lerp(light.intensity, newIntensity, smooth * Time.deltaTime);

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

حالت سوم :
کد:

light.color = Color.Lerp(light.color, newColour, smooth * Time.deltaTime);

این کد برای تغییر رنگ نور از رنگ فعلی به رنگ جدید که در متغیر newColour تعریف شده بکار می ره. تیو اسکریپت که در ادامه میارم یادتون میدم ببینید چقدر زیباست و یاد گرفتنش از روی راهنمایی من چه قدر خوبه.
-
این کلیپ بی کیفیت که من ساختم رو ببینید تا قدرت Lerp رو درک کنید :
http://s5.picofile.com/file/8153633500/clip_lerp_func_unity3d_sajjad3011.zip.html

-
حالا روش ساخت :

یه پروژه 3d ایجاد کنید با این اجزا : main Camera ، plane و Point Light

اسکریپت js زیر رو بدید به نور نقطه ای (point Light):

#pragma strict

public var smooth : float;

private var newPosition : Vector3;
private var newIntensity : float;
private var newColour : Color;


function Awake ()
{
    newPosition = transform.position;
    newIntensity = light.intensity;
    newColour = light.color;
}


function Update ()
{
    PositionChanging();
    IntensityChanging();
    ColourChanging();
}


function PositionChanging ()
{
    var positionA : Vector3 = new Vector3(-5, 3, 0);
    var positionB : Vector3 = new Vector3(5, 3, 0);
    
    if(Input.GetKeyDown(KeyCode.Q))
        newPosition = positionA;
    if(Input.GetKeyDown(KeyCode.E))
        newPosition = positionB;
    
    transform.position = Vector3.Lerp(transform.position, newPosition, smooth * Time.deltaTime);
}


function IntensityChanging ()
{
    var intensityA : float = 0.5f;
    var intensityB : float = 5f;
    
    if(Input.GetKeyDown(KeyCode.A))
        newIntensity = intensityA;
    if(Input.GetKeyDown(KeyCode.D))
        newIntensity = intensityB;
    
    light.intensity = Mathf.Lerp(light.intensity, newIntensity, smooth * Time.deltaTime);
}


function ColourChanging ()
{
    var colourA : Color = Color.red;
    var colourB : Color = Color.green;
    
    if(Input.GetKeyDown(KeyCode.Z))
        newColour = colourA;
    if(Input.GetKeyDown(KeyCode.C))
        newColour = colourB;
    
    light.color = Color.Lerp(light.color, newColour, smooth * Time.deltaTime);
}

بعد از افزودن اسکریپت فوق به نور نقطه ای، نور رو انتخاب کنید و در پنجره ی خصوصیات یا inspector پارامتر Smooth رو بدید 1 یا 2 (یه عدد غیر صفر معمولا از 1 به بالا بدید که قبلا توضیحش دادم)

اجرا کنید .
با کلید های زیر بازی کنید:
Q و E
A و D
Z و C
--
خروجی :
http://s5.picofile.com/file/8153635742/lerp_noor.jpg
می بینید چقدر زیباست ؟ دقیقا عین چشماتون happy
همین الان تست کنید و ببینید چه قدر قشنگه کار با یونیتی.
کاربرد این کد در هوش مصنوعی هم هست و دستوری به اسم (Quaternion.Slerp(From,To,Time داریم که برای درکش فقط کافیه همین Lerp ای که بالا توضیح دادم رو تست کنید و بعدش Slerp همون پارامترها رو می گیره که یه جایی به دردتون میخوره توضیحات من.
۳ نظر موافقین ۰ مخالفین ۰ ۲۶ اسفند ۹۳ ، ۰۴:۱۰
مدیرکل
۰ نظر موافقین ۰ مخالفین ۰ ۲۶ اسفند ۹۳ ، ۰۲:۵۲
مدیرکل

http://s5.picofile.com/file/8147420068/emtiaz_sajjad3011.jpg

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

هم روی And Roidجواب میده هم ویندوز هم iphone OS و هم ... (از کجا معلوم : از اونجا معلوم که من می گم)


من اسم متغیر ها رو طوری گذاشتم که بهش می گم کد تمیز یا clean code .
clean code ، یعنی کدی که برنامه نویس یا اسکریپت نویس بسازه تا نه فقط خودش،بلکه همه به سادگی منظورشو درک کنند حتی پس از سالیان زیاد.happy
--
چیز خاصی نداره.
فقط باید اینو بدنید تابع http_post_string دو مقدار می گیره. یک url و یک string .
url آدرس get.php هست که آنلاین روی سایت هست و پارامترها رو میخوایم بهش ارسال کنیم.
ما به دو صورت می تونیم داده ها رو بفرستیم به get.php .
یکی روش get هست که انتخای url یک علامت سوال می ذاریم و بعدش اسم متغیرها رو با مقدار میاریم و با & از هم جدا می کنیم که من چون فقط v1 رو دارم از url با متد get می فرستم نیازی به & نبود.
روش دوم روش post هست که قوی تر هم هست و متغیرها رو میریزیم توی یه رشته مثل "v2=145&v3=45" .
(اگه می خواید روش ارسال get و post رو درک کنید باید ساخت فرم توی html رو sumbit اونو بلد باشید که اونو تو بخش html بپرسید )

اسم این متغیرها هم دلخواه بود که من v1 و v2 و v3 دادم.

فقط روی سایت و توی get.php باید یادمون باشه هرچیز رو اینجا با متد get ارسال کردیم با دستور $_GET می گیریم و چیزی که با متد post فرستادیم با دستور $_POST می گیریم مثال

کد:
$_POST["v2"]
یا
کد:
$_GET["v1"]


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

نکته برای مبتدی ها :
قبل از درک این مفاهیم باید ساخت فرم و روش های sumit فرم های html با متدهای GET و POST رو بلد باشید.
شما تا php بلد نباشید خیلی از چیزایی که می گم رو درک نمی کنید.
ضمنا توی کد game maker که گفتم :
کد:
send_With_GET_method="v1=9";
send_With_POST_method="v2=4&v3=reza";

myURL="http://localhost/emtiaz/get.php?" + send_With_GET_method;
global.post[0] = http_post_string(myURL,send_With_POST_method ) ;
هیچکس نمیاد اسم های send_With_GET_method و send_With_POST_method رو انتخاب نمی کنه.
اکثر سایت های خارجی کد فوق رو ممکنه اینطوری بیارن که شما درک نکنید و بیشتر (بلانسبت) گیج بشید :
کد:
global.post[0] = http_post_string("http://localhost/emtiaz/get.php?v1=9","v2=4&v3=reza" ) ;
من اومدم کد رو طوری تمیز کردم که راحت بفهمید کدوم متغیرها با متد get میفرستیم و کدوما رو به متد post(با استفاده از روش صحیح اسم گذاری استاندارد متغیرها)
-
با تشکر از sajjad3011
کپی شده از پرومیکرز
۰ نظر موافقین ۰ مخالفین ۰ ۲۶ اسفند ۹۳ ، ۰۲:۲۸
مدیرکل

یک پروژه new کنید.
یک room بسازید.
یک ابجکت بسازید به نام particle_smoke و یک نمونه از اون رو بذارید روی room.
کد اکشن زیر رو توی رویداد keyboard pressed space این کد رو بذارید :

size=3;
effect_create_below(ef_smoke,room_width/2room_height/2sizec_red); 

پروژه رو اجرا کنید و space بزنید....
دقیقا وسط room دود قرمز ایجاد میشه..... با اندازه ی 3 (فکر کنم 1 یعنی small و 2 یعنی medum و 3 یعنی big و تا یه اندازه ی خاصی میشه ایجاد کرد و سایز دود رو با ابر فعلا قاطی نکنید)
----------------------
اینم کل توابعی که باهاشون می تونید پارتیکل ایجاد کنید(سیستم ذرات مثل برف و بارون و غیره توی گیم میکر استادیو)
http://docs.yoyogames.com/source/dadiosp...index.html
----------------------
دقت کنید که تمام اینا رو توی موبایل اندروید و .... میشه بکار گرفت....
۰ نظر موافقین ۰ مخالفین ۰ ۲۶ اسفند ۹۳ ، ۰۲:۱۹
مدیرکل
// Get the latest webcam shot from outside "Friday's" in Times Square
var url = "http://images.earthcam.com/ec_metros/ourcams/fridays.jpg";
function Start () {
	 // Start a download of the given URL
	var www : WWW = new WWW (url);

// Wait for download to complete yield www;

// assign texture renderer.material.mainTexture = www.texture; }
۰ نظر موافقین ۰ مخالفین ۰ ۲۵ اسفند ۹۳ ، ۱۶:۰۵
مدیرکل

newObject.gameObject.addcompenet("scriptName")

۰ نظر موافقین ۰ مخالفین ۰ ۲۵ اسفند ۹۳ ، ۱۵:۲۹
مدیرکل
gameover.blog.ir
using UnityEngine;
using System.Collections;

public class PlayerHealth : MonoBehaviour {
    public int maxHealth = 100;
    public int curHealth = 100;
    
    public float healthBarLength;


    void Start () {
    healthBarLength = Screen.width / 2;
    }
    

    void Update () {
    AddjustCurrentHealth(0);
        
    }
    
    
    void OnGUI(){
    GUI.Box(new Rect(10, 10, healthBarLength, 20), curHealth + "/" + maxHealth);    
    }
    
   
    public void AddjustCurrentHealth(int adj) {
      curHealth += adj;    
        
        if(curHealth < 0)
            curHealth = 0;
        
        if(curHealth > maxHealth)
            curHealth = maxHealth;
        
        if(maxHealth < 1)
            maxHealth = 1;
        
        healthBarLength = (Screen.width / 2) * (curHealth / (float)maxHealth);
    }
}

نکته:
در سیستم جدید مستقیم می تونید ui | text بذارید یا ui | image بذارید و دیگه نیاز به این نیست که مثلا بیاید از Rect و کد نویسی زیاد پیچیده استفاده کنید. برای یادگیری این موارد کتاب ui ترجمه sajjad3011 رو بخرید که در بالای وبلاگ معرفی شده.
http://gameover.blog.ir/1395/03/27/%DA%A9%D8%AA%D8%A7%D8%A8-%D9%81%D8%A7%D8%B1%D8%B3%DB%8C-%DB%8C%D9%88-%D8%A2%DB%8C-%D8%AF%D8%B1-%DB%8C%D9%88%D9%86%DB%8C%D8%AA%DB%8C-5-%D8%AA%D8%B1%D8%AC%D9%85%D9%87-%D8%B4%D8%AF-%DA%A9%D8%AA%D8%A7%D8%A8-%D9%81%D8%A7%D8%B1%D8%B3%DB%8C-%D8%A2%D9%85%D9%88%D8%B2%D8%B4-ui-%D8%AF%D8%B1-%DB%8C%D9%88%D9%86%DB%8C%D8%AA%DB%8C
۰ نظر موافقین ۰ مخالفین ۰ ۲۵ اسفند ۹۳ ، ۰۶:۳۱
مدیرکل

زبان کد : سیشارپ

این کد برای بررسی فاصله ی دشمن تا player بکار می ره و سپس با تابع slerp حرکت آرام چرخش و رو کردن به سمت player و حرکت به سمتش:

(البته با تنظیم متغیرها می تونید انیمیشن دویدن رو توسط کامپوننت animator  اجرا کنید و بعد از رسیدن به هدفبه حالت idle سوئیچ کنید.)

using UnityEngine;
using System.Collections;

public class 
EnemyAI MonoBehaviour {
    public 
Transform target;
    public 
int moveSpeed;
    public 
int rotationSpeed;
    public 
int maxdistance;
    
    private 
Transform myTransform;
    
    
void Awake(){
        
myTransform transform;
    }


    
void Start () {
        
GameObject go GameObject.FindGameObjectWithTag("Player");
        
        
target go.transform;
    
        
maxdistance 2;
    }
    

    
void Update () {
        
Debug.DrawLine(target.positionmyTransform.positionColor.red); 
        

        
myTransform.Rotation Quaternion.Slerp(myTransform.RotationQuaternion.LookRotation(target.position myTransform.position), rotationSpeed Time.deltaTime);
        
        if(
Vector3.Distance(target.positionmyTransform.position) > maxdistance){
        
//Move towards target
        
myTransform.position += myTransform.forward moveSpeed Time.deltaTime;
    
        }
    }
        

۰ نظر موافقین ۰ مخالفین ۰ ۲۵ اسفند ۹۳ ، ۰۶:۲۸
مدیرکل
private void notRenderer()
{
if(notMat)
{

Destroy(GetComponent<ParticleSystem>());
Material mat = (Material) FindObjectOfType(typeof(Material));

if (mat)
Debug.Log("Material object found: " + mat.name);
else
Debug.Log("No Material object could be found");

}


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

دوربین اصلی را انتخاب کنید.
مسیر assests->importt package->image Efect pro را طی کنید.
مسیر component->image effects->blur و زیر شاخه هایش ا امتحان کنید.
بازی رو اجرا کنید تا حالت بلور یا تار شدن دوربین را ببینید. تنظیمات دیگر را در inspector(کادر خصوصیات سمت راست) می تونید انجام بدید.

http://s4.picofile.com/file/8176846434/assset_imageEffectPro_package.jpg

اجرا :

http://s4.picofile.com/file/8176847676/blur_effect.jpg

البته برای کج و معوج کردن هم بکار میره که میتونید مسیر component->image effects->Displacement->Vortex یا ... رو به دوربین بدید:

http://s6.picofile.com/file/8176857800/diplacement_vortex.jpg

-

با تشکر از سجاد

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

خوب تصمیم گرفتم مقدماتی رو یاد بدم واسه اینکه گم نشن مبتدی ها:
ساده ترین محیط کد زنی borland turbo c هست. TC.EXE .
واسه windows 7 هم ورژن مربوط رو اگه مورد داشتید بگید من راهنمایی کنم واس دانلود.
با VS و DEVCPP و Eclips و ... هم میشه کد زد ولی من TC کار می کردم.
---
خوب توی TC ساختار اینطوری هست:

کد:
#include <conio.h>
#include <iostream.h>
#include <stdlib.h>
#include <stdio.h>
void main()
{
//my codes
getch();
}
کد بالا چیز خاصی نداره.
تابع اولی که اجرا میشه main هست.
بالاشم فایل های header(سر فایل یا فایل های سرایند پسوند h) رو ضمیمه کردیم با دستور include که توی PHP با include( هست و توی جاوا و VB.net با import هست و توی csharp با using هست و و و .... winking
--
معمولا ابتدا نوع تابع میاد بعدش نام تابع(int main یا void main یا float main و ...)
چون تابع اصلی ما main نمی خواد چیزی رو به دستوری برگشت(return) بده واسه همین نوعش رو void یا غیر بازگشتی دادم.
getch هم get می کنه یک character رو بدون نمایش(echo)(اگه میخواستیم نماش بده getche رو میذاشتیم به جاش)
http://s5.picofile.com/file/8118656018/tc_win7.jpg
http://s5.picofile.com/file/8118656350/tc2_win7.jpg

کل مطلب رو Rar کردیم(بعد از Extract با مروگر fireFox فایل html رو باز کنید):
http://s4.picofile.com/file/8176849500/c_tut_gameover.rar.html


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

enum یعنی داده های شمارشی.... مثلا یک متغیر می گیری می دی یک بعدش هر اسمی بعدش میدی مقدارش یکی اضاف میشه.
مثلا ali=1 و اگه بدی reza مقدار reza خودکار میشه 2 و الی آخر... هر چی شروع بدی بعدی ها یکی یکی زیاد میشه و اگه مثلا وسط کار یکی اضافه کنی با مقدار دلخواه و بعدی رو بی مقدار بدی یکی بعد اون مقداری که همونجا تعیین کردی اضاف می کنه و الی آخر

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

کد:
#pragma strict

enum Direction{North, East, South, West};
function Start ()
{
    var myDirection : Direction;
    
    myDirection = Direction.North;
}

function ReverseDirection (dir : Direction) : Direction
{
    if(dir == Direction.North)
        dir = Direction.South;
    else if(dir == Direction.South)
        dir = Direction.North;
    else if(dir == Direction.East)
        dir = Direction.West;
    else if(dir == Direction.West)
        dir = Direction.East;
    
    return dir;    
}
مثال :

کد:
num DoorStates {open,closed};
var doorState :DoorStates;

function Awake()
{
doorState =DoorStates.closed;
}




function OnTriggerEnter (triger : Collider)
{
    
    if ((triger.gameObject.tag == "Player_A")&&(doorState==DoorStates.closed))
    
        {
            doorState=DoorStates.open;
            GameObject.FindWithTag("Door_L").animation.Play("Door_Anim_A_Left_Open");    
            GameObject.FindWithTag("Door_R").animation.Play("Door_Anim_A_Right_Open");
        }
    


}

function OnTriggerExit (triger : Collider)

{
    
    if ((triger.gameObject.tag == "Player_A")&&(doorState==DoorStates.open))
    
        {
            doorState=DoorStates.closed;
            GameObject.FindWithTag("Door_L").animation.Play("Door_Anim_A_Left_Close");    
            GameObject.FindWithTag("Door_R").animation.Play("Door_Anim_A_Right_Close");
        }
    
}
منبع:
http://unity3d.com/learn/tutorials/modules/beginner/scripting/enumerations

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

برای تغییر سلاح یا تعویض اسلحه یا قطعات یا بدنه ی ماشین یا سوئیچ یا تغییر لباس یا فعال و غیرفعال کردن آبجکت های دلخواه در صحنه چه کنیم؟

برای اینکار از تابع setActive استفاده می کنیم. مثلا اسکریپت زیر رو ببینید. با فشردن کلید 1 و 2و3 روی numpad و یا 1و2و3 زیر کلید های تابعی(fuctional keys) بین قطعات تنظیم شده در پارامترهای ghete1 و ghete2 و ghete3 سوئیچ می کنیم و در هر لحظه یک آیتم را فعال خواهیم کرد.

کد csharp:
//setActive.Cs
using UnityEngine;
using System.Collections;
public class setActive : MonoBehaviour {
    public GameObject ghete1;
    public GameObject ghete2;
    public GameObject ghete3;
    // Use this for initialization
    //edit:Sajjad3011
    void Start () {
        ghete1.gameObject.SetActive(true);
        ghete2.gameObject.SetActive(false);
        ghete3.gameObject.SetActive(false);
    }
    // Update is called once per frame
    void Update(){
        if(Input.GetKeyDown("1") || Input.GetKey (KeyCode.Keypad1)){
            //switch part1
            killAll();
            ghete1.gameObject.SetActive(true);
        }
        if(Input.GetKeyDown("2") || Input.GetKey (KeyCode.Keypad2)){
            //switch part2
            killAll();
            ghete2.gameObject.SetActive(true);
        }
        if(Input.GetKeyDown("3") || Input.GetKey (KeyCode.Keypad3)){
            //switch part3
            killAll();
            ghete3.gameObject.SetActive(true);
        }
    }
    void killAll(){
        ghete1.gameObject.SetActive(false);
        ghete2.gameObject.SetActive(false);
        ghete3.gameObject.SetActive(false);
    }
} 
به اسکریپت دقت کنید.زبان آن سیشارپ بوده و با اندکی تغییر می توانید آن را به js تغییر دهید. تابع killAll رو هر بار صدا می زنیم تا تمام آیتم ها رو غیر فعال کنیم و سپس یکی از قطعات رو با نوشتن اسمش و سپس تابع setActive از کلاس gameObject فعال می کنیم.
دقت کنید که سه تا گیم آبجکت به عنوان قطعه ی 1 و 2 و 3 باید توی صحنه بذارید و همچنین یک گیم آبجکت تهی(empty game object) ایجاد کنید و اسکریپت رو بندازید روش. سپس قطعات رو بندازید روی پارامترهاش توی inspector تا توی آرایه تنظیم بشه.winking
نکته ی مهم : دقت کنید که موقعت(position) و زاویه ی چرخش(rotation) و مقیاس(scale) تمام قطعات یکی باشه تا بتونید به راحتی قطعات ماشین رو تنظیم کنید و بزرگ بودن یا قطعات خودرو تو هم نرن. برای تغییر سلاح یا تغییر اسلحه اینکار مهم نیستhappy

منبع مطالعه شده : http://answers.unity3d.com/questions/606...cript.html

با تشکر از سجاد از پرومیکرز

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

سعی کنید از طبیعت الهام بگیرید و روش های جدید رو بیاموزید.
مثال : به این تصویر shading بر حسب تکنیک های فیزیک در یونیتی 5 نگاهی بیندازید :

http://s5.picofile.com/file/8153024750/shot1.jpg

http://s5.picofile.com/file/8153023692/shot2.jpg


در یونیتی 5 می تونید با ادغام PBS و Enlighten GI نورهای خود را در تمام صحنه به سرعت ایجاد کنید.

البته من خودم هنوز از یونیتی 4.5 استفاده می کنم چون ورژن 5 هنوز در حال آزمایش خطایابی beta هست.

به تحته ها نگاه کنید. برچستگی ها رو می بینید؟ چیز خاصی نیستن. با نرمال مپ و کمی zbrush ترکیب شدن. نرمال مپ هم چیزی نیست و اموزش هاش توی انجمن هست.

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

http://s5.picofile.com/file/8152660100/mech_walk.jpg

لینک شیلتر نیست اگه بود بگید آپ کنم یه جا دیگه. مرغ رو دانلود کنید(توی قسمت قبل لینک دانلود مدل انیمیت شده مرغ در بلندر رو گذاشتم) و طبق اموزش جلو برید و مشکلات رو پ.خ کنید سادست.

با استفاده از همین ایده می تونید اولین بازی سه بعدی خودتون رو برای عظیمت از game maker به unity بسازید.
اسکریپت js برای دکمه ی x و z و چرخش 20 درجه منفی و مثبت به چپ و راست حول محور UP(همون محور Y) بسازید و این کد رو بریزید توش و بدید به مدل مرغ که گفتم دانلود کنید :

کد PHP:
//char controller simple.js
function Update () {

  if (
Input.GetKey (KeyCode.Z)) {

    
transform.RotateAround (Vector3.zeroVector3.up20 Time.deltaTime);

  } else if (
Input.GetKey (KeyCode.X)) {

    
transform.RotateAround (Vector3.zeroVector3.up, -20 Time.deltaTime)

  }


کد بالا هیچی نداره .
تابع RotateAround سه پارامتر می گیره و الگوش اینه:
کد PHP:
RotateAround(pointVector3axisVector3anglefloat): void
point : نقطه ی چرخش که اگه Vector3.zero باشه به معنی نقطه ی مرکزی صفر ( دقیقا وسط ابجکت) حساب می شه.
دومین پارامتر axis یا بردار یا محور چرخش مدل هست که محور y هست و با دستور Vector3.up تنظیمش کردیم.
سومی هم زاویه چرخش هست.

(KeyCode.Z) فشردن کلید Z رو بررسی می کنه و (KeyCode.X) فشردن کلید X رو . اگه روی صفحه کلید نگاه کنید می بینید Z سمت چپ X هست .پس X باید باعث چرخش به راست و Z باعث چرخش به چپ بشه(یعنی حول محور Y) که توی کد فوق باید به وضوح ببینید.
البته در کد فوق احتمالا با کلید Z مرغ به راست می چرخه و با X به چپ که خودتون می تونید توی اسکریپت -20 رو با +20 در قسمت دلخواه تغییر بدید.

اگه یه نفر هم موفق بشه و نمونه کارشو بعد از این اموزش ها بذاره من ایده های دیگه و راهکارهای دیگه و ترفندهای زیادی یاتون میدم که مطمئن باشید با استفاده از همین چیزا می تونید بازی های خوبی بسازید که در حین گرافیک کم ایده های جالبی میشه ساخت.
۰ نظر موافقین ۰ مخالفین ۰ ۲۱ اسفند ۹۳ ، ۱۵:۳۳
مدیرکل

http://s5.picofile.com/file/8152662668/Rigify11.png

http://s5.picofile.com/file/8152665376/b...g.zip.html

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

البته کامپوننت انیماتور (animator component)در یونیتی رو باید بلد باشید.

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


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

گیم میکر اگه event داره یونیتی هم داره.

اگه توی گیم میکر رویداد کلیک داریم توی یونیتی می گیم رویداد های onMouseDown و غیره داریم:

رویداد های ماوس + تکستچر گذاری gui

کد PHP:
var normalTex Texture2D;

    var 
hoverTex Texture2D;
     
    function 
OnMouseEnter () {
     
guiTexture.texture hoverTex;
    }
     
    function 
OnMouseExit(){
     
guiTexture.texture normalTex;
    }
     
    function 
OnMouseDown(){
     
Debug.Log("clicked");
    } 
منبع :
http://www.unity3dstudent.com/2010/10/be...se-events/

مثال2 :
بار گذاری یک مرحله توسط رویداد onMouseDown :
کد PHP:
    // Loads the level named "SomeLevel" as a response
    // to the user clicking on the object

function OnMouseDown () { Application.LoadLevel ("SomeLevel"); } 
منبع :
http://docs.unity3d.com/ScriptReference/...eDown.html
کدهای بالا به زبون js بود.

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

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

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

بعضی از این پارامتر های اصلی در کامپوننت wheel collider قرار داره که به تک تک چرخ ها نسبت میدیم:

http://s5.picofile.com/file/8151252792/wheel_collider.jpg


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

radius: بهش عدد بدید و در صحنه نگاه کنید تا دقیقا دایره ای هم اندازه با لاستیک ایجاد بشه.(البته با scale خود گیم ابجکت های empty ای که واسه تکتک چرخ ها ساختید هم می تونید بازی کنید. rotation هم واسه تنظیم زاویه دقیقا هم زاویه با لاستیک به منظور فرمون دادن درست لاستیک ها و نداشتن حالت غیر عادی)

از جمله پارامترهای دیگه ای که می تونید به ماشین نسبت بدید دو یا چد لامپ هست که می تونید با اسکریپ اونها رو کنترل کنید و همینطور دود و غیره که البته من دود برای هر چهار چرخ رو توصیه نمی کنم چون particle محاسبات زیادی می بره و cpu میخوره و optimize(بهینه) نیست.

http://s5.picofile.com/file/8151253534/car_207.jpg

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

http://s5.picofile.com/file/8151249350/divar.jpg

دانلود آموزش:حجم:200 کیلوبایت PDF

http://s5.picofile.com/file/8151245626/divar.pdf.html

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

http://s5.picofile.com/file/8117682642/rain.jpg



Unity.Pro.v4.3.4f1 رو باز کنید و یک پروزه new کنید و یک planeبندازید و دوربین رو در مکان دلخواه بذارید.

پکیج بارون رو از اینجا دانلود کنید :
حجمش 800 کیلوبایته :
http://s5.picofile.com/file/8117681700/rainpackage_259.zip.html
سپس بکشید با ماوس و بندازید توی پروژه در بخش assets رها کنید.
سپس بکشید با ماوس و بندازید توی پروژه در بخش assets رها کنید.

سپس در زیر شاخه ی Fire->Rain باورن یا rain رو در کادر assets انتخاب کنید و با ماوس بگیرید بکشید توی hierarchy روی Plane یا یکی از game Object های دلخواه رها کنید تا اعمال بشه.

بارون ساخته شد. فقط می مونه صدا.
یک فایل صوتی صدای بارش باران رو دانلود کنید و ببرید توی پروژه درگ(drag) کنید(با ماس بگیرید و بکشید توی پروژه رها کنید تا اضافه بشه به بخش assets)
یک آبجکت تهی از طریق gameObject->Create Empty ایجاد کنید.(می تونید از ابجکت های دیگه هم استفاه کنید ولی لازم نیست)
سپس اونو انتخاب کنید و منوی component->audio->Audio Source رو بزنید تا یک منبع صوتی بهش اضاف بشه.
سپس فایل صوتی رو از توی پروژه بگیرید و روی AudioClip در inspector رها کنید.
http://s5.picofile.com/file/8117681576/audio_source_add.jpg
پروژه رو اجرا کنید و لذت ببرید.تشکر هم بی زحمت بزنید .
۳ نظر موافقین ۰ مخالفین ۰ ۲۱ اسفند ۹۳ ، ۱۴:۰۳
مدیرکل


Unity.Pro.v4.3.4f1
شاید دلتون بخواد در حین اجرا با فشردن یک کلید تکستچر عوض بشه یا متریال .


ابتدا دو متریال ایجاد کنید به نام های mat1 و mat2 و تکستچر های دلخواه یا رنگ دلخواه رو بهش نسبت بدید.

نکته: برای ایجاد متریال در قسمت project راست کلیک کنید و Create Material رو بزنید.
(اگه تکستچر می خواد بذارید باید تکستچر رو بکشید با ماوس توی assets در بخش project به پروژه اضافه کنید و بعدش متریال رو انتخاب کرده و سپس تکستچر رو بکشید روی texture توی inspector از متریال انتخاب شده و رها کنید یا اونجا از کادر باز شده تکستچر رو براش set کنید که من فرض می کنم اینو بلدین اگه سوال داشتید بپرسید ازم)

سپس یک Plane ایجاد کنید.

سپس یک اسکریپت java بسازید و اسمشو بذارید: chColor.js و اونو بکشید روی Plane در hierarchy و کدهای زیر رو بریزید توش:


Material mat1,mat2;

void
Update () 
{
if (
Input.GetKeyUp (KeyCode.R)) renderer.material mat1;
if (
Input.GetKeyUp (KeyCode.G)) renderer.material mat2;


سکریپت رو با ctrl+S ذخیره یا Save کنید.

(نکته : بعضی اوقات یونیتی قاطی می کنه و مجبورید اسکریپت رو ببندید و دوباره باز کنید تا کد ها درست کپی بشن)
بعد از ذخیره ی اسکریپت به محیط پروژه برگردید و Plane رو انتخاب کنید .
توی inspector(پنجره ی خصوصیات)، در زیر شاخه ی همین اسکریپتی که اضاف کردید به Plane،باید دو تا گزینه Mat1 و Mat2 اومده باشه که جلوی هر کدوم یه کادر هست.از توی اون کادر متریال 1 و 2 رو به هر کدوم نسبت بدید(mat1 و mat2)

شکل پروژه باید شبیه این باشه:
http://s5.picofile.com/file/8117468600/change_material_using_js_unity_sajjad3011.jpg

http://s5.picofile.com/file/8117468600/c...ad3011.jpg

پروژه رو Play کنید
اگه R بزنید باید رنگ plane قرمز بشه و اگه G بزنید باید رنگش سبز بشه.
شما می تونید تکستچر دلخواه رو بدید ولی من تکستچر ندادم فقط رنگ قرمز و سبز رو به ترتیب به متریال mat1 و متریال mat2 نسبت دادم.
امیداورم لذت برده باشید.
نکته:
(فقط روی دکمه ی play بزنید تا Run بشه و دوباره برای خروج روی Play بزنید . دقت کنید روی دکمه های دیگه مثل pause و اینا نزنید کمی قاطی می کنه و undo میشه و اگه مبتدی هستید شما رو گیج می کنه و مجبورید دوباره تنظیمات اسکریپت ها رو بنویسید و اعمال کنید)
۰ نظر موافقین ۰ مخالفین ۰ ۲۰ اسفند ۹۳ ، ۱۷:۴۳
مدیرکل

ابتدا تکسچر آسمون رو به صورت دوار یا گرد پیدا کنید:
http://www.tutorialsforblender3d.com/Tex...ome_1.html
بعد از دانلود ببرید توی blender یا max یا maya یا ...
سپس یک نیمکره بسازید.
بعدش unwrap کنید و تکستچر رو بندازید دقیق روش بعدش obj file و uv map texture رو اکسپورت کنید ببرید توی یونیتی یا ... استفاده کنید.

http://s6.picofile.com/file/8176323934/sky_asemoon_blender_unity.jpg

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


IK چیست ؟
IK inverse kinematic = سینماتیک بلعکس می باشد.
وقتی ما در بلندر یا مکس یا نرم افزارهای دیگه استخوان بندی رو آغاز می کنیم،استخوان ها رو از گره ی نوک (غیر ریشه)، امتداد می دیم.
بعضی اوقتا نیاز داریم استخوانی رو از جای دیگه extrude کنیم و سپس با حرکت اون استخوان ، کنترل بهتری روی استخوان دیگه داشته باشیم. به این استخوان می گیم IK .

برای اینکار کافیه استخوان رو در object mode انتخاب کنیم و سپس به pose mode رفته و ابتدا استخون اول و سپس دومی رو انتخاب(با shift و راست کلیک) کنیم و بعدش space می زنیم تا کادر فرمان باز بشه. کلمه ی ik رو تایپ می کنیم.گزینه ی add ik to bone رو می زنیم(کلید میانبر shift+i هست) و سپس To Active Bone رو انتخاب می کنیم.استخون دوم اگه تحت تاثیر قرار بگیره باید به رنگ زرد شفاف در بیاد

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

نکته: برای اینکه استخوان ها در pose mode همراه با مدل نمایان بشه کافیه در کادر سمت راست از قسمت armature(آیکن استخوان انسان بعد از آیکن زنجیر ،نزدیک آیکن فیزیک و تکستچر و ...)و از شاخه ی display و octahed گزینه ی x-Ray رو فعال کنیم.

http://s4.picofile.com/file/8175679184/ik1.jpg

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

http://s6.picofile.com/file/8174732376/tank.jpghttp://s4.picofile.com/file/8174732334/_Refraction_improved2.jpg

http://s4.picofile.com/file/8174732350/chev.jpg


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


لینک آپارات:

لینک دانلود فیلم آموزش به صورت فشرده و بدون تغییر کیفیت.
حجم : 2 مگا بایت
بعد از extract فیلم میشه 20 مگ کیفیتش هم عالی هست.

http://s6.picofile.com/file/8174730326/uvMapBestTut_sajjad3011.rar.html
=

۰ نظر موافقین ۰ مخالفین ۰ ۱۳ اسفند ۹۳ ، ۰۵:۴۲
مدیرکل
لطفا نظرتون رو بگید.اگه حمایت کنید یک اپلیکیشن بهتر رو در نسخه بعدی تقدیم می کنیم.
این اپلیکیشن شماره های ضروری ایرانسل و همراه اول رو در خودش داره
رمز بازی های سگا رو در خودش داره
رمز های بازی GTA رو در خودش داره
به معرفی ابزار هک و تقلب بازی های اندرویدی می پردازه
شماره هازی ضروری مثل اورژانس،آتش نسانی، مخابرات و ... رو در خودش داره. به شما یاد میده با ایرانسل رایگان چت کنید
و :
SBgameHacker 3.1 ابزار هک و تقلب در بازی های اندروید
حرکات در مورتال کمبات ۱
حرکات در مورتال کمبات ۲
تمامی رمز های مورتال کمبت 3
ترفندهای اندروید قسمت اول
تمام کدهای ایرانسل
تمام کدهای همراه اول
لیست شماره تلفنهای ضروری
علاءالدین
Alien 3
Art of Fighting
Cannon Fodder
Cliffhanger
Comix Zone
Contra: Hard Corps
Cutthroat Island
Demolition Man
Desert Strike – Return To The Gulf
Dragon: The Bruce Lee Story
Earthworm Jim
Earthworm Jim 2
ESWAT Cyber Police
فیفا FIFA Soccer 96
عصر حجر/Flintstones
Golden Axe تبر طلایی
تبر طلایی 2
تبر طلایی 3
کدهای بازی “فوتبال فانتزی” سگا
Gunstar Heroes
کد تقلب بازی “هوک” سگا
تقلب بازی “ هالک شگفت انگیز” سگا
تقلب بازی” فوتبال گزارشی ” سگا
کد های تقلب بازی ” جیمز باند” سگا
تقلب بازی “پارک ژوراسیک” سگا
کد های تقلب بازی ” شیر شاه” سگا
تقلب بازی ” رنجر” سگا
کد ضد ضربه شدن بازی مایکل جکسون سگا
کد های تقلب بازی ” مورتال کمبات 5″ سگا
تقلب بازی ” پیتفال” سگا
کد های تقلب بازی “دانلد داک” سگا (ورژن W)
کدهای بازی “رمبو 3″ سگا
کد های تقلب بازی ” ریستار” سگا
تقلب بازی “پلیس آهنی” سگا
تقلب بازی ” پلیس آهنی در برابر نابودگر” سگا
کد های تقلب بازی ” تندر 3″ سگا
کد تقلب بازی “سامورایی” سگا
کدهای بازی “نینجا و سگ” سگا
کد ضد ضربه شدن بازی شینوبی 3 سگا
کدهای بازی “سونیک 1″ سگا
کد های تقلب بازی “سونیک 2″ سگا
کد های تقلب بازی “سونیک 3″ سگا
تقلب بازی “ خانه ی شیطانی 3” سگا
کد تقلب بازی” استارگیت” سگا
شورش در خیابان 1 سگا
کد ضد ضربه برای بازی شورش در خیابان 2 سگا
کد های جالب و بدرد بخور برای بازی شورش در خیابان 3 سگا
کدهای بازی “سواران غروب” سگا
کد تقلب بازی “تازمانیا” سگا
کد تقلب بازی “فوتبالیستها”ی سگا
تقلب بازی “نینجاهای لاکپشتی” سگا
کد های تقلب بازی “تینی تون” سگا
تقلب بازی “داستان اسباب بازی” سگا
کد های تقلب بازی “مورتال کمبات 3 آلتیمیت” سگا
کد های تقلب بازی “وکتور من” سگا
کد های تقلب بازی “وکتور من 2 ” سگا
کد تقلب بازی “یوگی خرسه” سگا
آموزش تکنیک های pes2012
آموزش قسمت اول بازی PES 2013
ترفندهای دیگری در PES 2011
روشهای گل زنی خفن در PES 2011
کپی صورت بازیکن ها PES 2011
پاس کاری صحیح در PES 2011
پنالتی زدن و ضربه آزاد در PES 2012
گل ضربه آزاد از فاصله ی خیلی نزدیک در PES 2012
دفاع در PES 2012
ترفند های pes2012
تکنیک عالی شدن بازی در PES 2012
تکنیک های ساده در PES 2012
دریبل درPES 2012
حرکات فردی در PES 2012
چند ترفند جالب در PES 2010 :
زیباترین تکنیک بازی PES 2011 :
تنظیم تکنیک ها بر روی دکمه در PES 2011
رمز های مورتال کمبت 9 یا 2011 برای XBOX
رمز بازیه need for speed -underground
رمز بازی امپراطوری های جنگ سگاempire total war
GTA:San Andreas
رمز و کد تقلب های بازی call of duty 4: Modern Warfare
رمز بازیه زیبای mostwanted
ترفند های sims3
رمزبازی gta4-ps2
مکس پین -رمز بازی Max Payne 2
رمز بازیps2-vice city stories: gta
رمز بازیstronghold
GTA5 _PS2رمز های بازی
رمز gta4
کد تقلب-رمزهای بازی رم توتال وار rome: total war
برداشت محصول: (یا مزرعه دار)
رمز بازی Hitman 2: Silent Assassin:
رمزبازیTotal Overdose
هک بازی Clash of clans برای اندروید
رمز تقلب بازی جنگ خان ها
کدهای تست سخت افزاری (وای فای، بلوتوث، جی پی اس)
کدهای مخفی برای تست های مختلف کارخانه ای
کدهای مخفی برای دستیابی به اطلاعات فریم ور (میان افزار)
روش سوئیچ کردن بین اپلیکیشن های باز روی اندروید
بستن برنامه های در حال اجرا در اندروید
تنظیم برنامه پیشفرض برای باز کردن فایل ها در اندروید
نصب برنامه بر روی گوشی اندروید از منابع خارجی
حذف کردن کامل برنامه ها – Uninstall کردن برنامه اندروید
معرفی
نرم افزار جامع کدهای تقلب بازی ها
معرفی نرم افزاری برای کد تقلب 1000بازی مختلف

http://iranapps.ir/app/gameover.daftarche_ramz


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

کلید ctrl+shift+F

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

how to disable kaspersky addons for firefox

-

به مسیر زیر برید و گزینه automatically activate plugins رو غیرفعال کنید.

-

Try settings > protection > web anti virus > advanced settings and uncheck automatically activate plugins.

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