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

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

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

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

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

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

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

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

۷۳ مطلب در خرداد ۱۳۹۴ ثبت شده است




 

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



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

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

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

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



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



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

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



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

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

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

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

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



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

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



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

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

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

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

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



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

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

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

A – Toggles the Angle Snap tool on/off

B – Changes the active viewport to “Bottom” view

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

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

E – Select and Rotate tool

F – Changes the active viewport to ‘Front’ view

G – Toggles grid on/off

H – ‘Select by Name’ window is displayed

I – Centres active viewport to mouse position

J – Show or hide selection brackets

L – Changes the active viewport to ‘Left’ view

M – Opens Material Editor Window

N – Toggles ‘Auto Key’ on/off

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

P – Changes the active viewport to ‘Perspective’ view

R – ‘Select and Scale’ tool

S – Toggles ‘Snap’ tool on/off

T – Changes the active viewport to ‘Top’ view

U – Changes the active viewport to ‘User’ view

W – ‘Select and Move’ tool

X – Show/hide Gizmo

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

6 – Opens ‘Particle View’ Window

7 – Shows polygon count of selected object(s)

CTRL+A – Select all

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

CTRL+I – Select Inverse

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

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

CTRL+Z – Undo

CTRL+Y – Redo

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

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

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

منبع :

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

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

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

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

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

منبع :

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


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

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

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


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

Access javascript variables using csharp script in unity

---

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

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

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

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

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

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

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


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

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

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

gameover.blog.ir

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

منبع:gameover.blog.ir

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

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

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

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

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

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

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

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

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

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

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

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

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

    delay(10);

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


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

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

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



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

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

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

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

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

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

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

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

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

کد معادل :

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

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

Mouse drag movement

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


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

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

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

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

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

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


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

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

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

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


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


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

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

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


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

رویداد Create :

کد :
value 

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



با F5 بازی رو اجرا کن. با فلش بالا و پایین می تونی zoom کنی
یادت باشه توی game maker studio جواب میده و توی game maker منسوخ هست.
۰ نظر موافقین ۰ مخالفین ۰ ۲۸ خرداد ۹۴ ، ۰۴:۳۹
مدیرکل
۵ نظر موافقین ۰ مخالفین ۰ ۲۶ خرداد ۹۴ ، ۲۲:۳۹
مدیرکل
۰ نظر موافقین ۰ مخالفین ۰ ۲۶ خرداد ۹۴ ، ۲۲:۳۲
مدیرکل
۰ نظر موافقین ۰ مخالفین ۰ ۲۶ خرداد ۹۴ ، ۰۳:۳۶
مدیرکل

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

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

کد:
static var insideUnitCircle: Vector2;

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

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

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

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


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

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


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

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


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

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



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

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


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

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


توابع کلاس Random :

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

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


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

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

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

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


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

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

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

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

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

---

مثال :

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

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

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

Vector3.Dot 

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

Description

Dot Product of two vectors.

Returns lhs . rhs.

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

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

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

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

using UnityEngine;
using System.Collections;

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

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

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


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

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

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

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

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

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

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

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

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


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

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

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

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

if mouse_check_button(mb_left)
{

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

}

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


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



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

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


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

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

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

Sub rv_RequestUpdate
    rv
.UpdateWidget
End Sub

Sub rv_Disabled
    StopService
("")
End Sub

Sub Service_Destroy

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

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

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

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

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

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

ممنون.

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

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

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

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

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

gameover.blog.ir

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

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

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

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


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

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

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

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


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

Fire text effect:

fire text effect

Burning text effect:

burning text

Lava text effect:

lava text effect

Blazing text effect:

blazing text



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


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

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

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

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


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

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

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

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

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

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

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


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


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

gameover.blog.ir


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

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

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

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

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

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

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

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

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



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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

مثالی از هوش :

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

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

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

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


[تصویر: box_collider_1.jpg]

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

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

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

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

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

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

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

}//update

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

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

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

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




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


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



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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

فصل دهم: تابع

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

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

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

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

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

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

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

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

 

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

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

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

خوش باشی

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

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

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


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

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

--

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

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

---

ترجمه توسط sajjad3011 :


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


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


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


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


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


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


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


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

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


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


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


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


موفق باشید . 

منبع :

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

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

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

-

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

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

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

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

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

خلاصه:

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

ادامه :

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

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

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

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

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

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

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

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

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

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

سورس gm81:

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

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