سلام
فکر کنم باید از << استفاده کنید(البته مطمئن نیستم).در موردش آقا محمد قبلا توضیح زیر رو داده.سلام
من یه جسمو زمان اجرای بازی (نه تو ادیتور) بر اساس یه معادله ای می چرخونم. ولی این معادله بر حسب محورهای فضا (world) هست. برای همین موقع چرخش به مشکل میخورم. می خواستم بدونم چه جوری می شه یه جسمو بر اساس محورهای فضا چرخوند یا چه طوری محورهای local جسمو تغییر داد (زمان اجرا)
ببین. وقتی عدد بهش میدی (فرض کن M اول کار 32 باشه) مثلا M <<2، بهت 128 میده. این یکی شیفت بیتی هست. مثلا 32 میشه 00100000 ، الان این دستور عددو 2 رقم به چپ شیفت می ده که میشه 10000000 یعنی 128. این یکی چندان مهم نیس.
تو حالت دوم که بردار می دی(اصلش باید اینو یاد بگیری). در حقیقت << میاد برداری که بهش میدی رو یه تبدیل روش انجام میده نسبت به اون Rotation که دادی. مثالش میشه این:
فرض کن یه تانک داری، بالای تانک میتونه دور خودش بچرخه، خب؟ حالا مختصات سر لوله ی تانکو تو متغیر Loc داری و جهت لوله تو متغیر Rot هست. الانه یه چیز خیلی به درد بخور، اینه که موقع شلیک یه پارتیکل سیستم برا تیر زدن دقیقا جلو لوله (مثلا با یه فاصله که تو متغیر X داریش) ایجاد کنی. این چجوریه؟ برا این کار اول باید محل این پارتیکل رو به دست بیاری، محلش این جوری به دست میاد:
کد:
Loc + (X >>Rot)
این کد میاد X رو در جهتی که لوله هست به دست میاره، بعد با مختصات نوک لوله جمع می کنه. به همین راحتی.