View Full Version : سوال: چجوری میشه یه اسکریپت جدید با چند متغیر ساخت ؟
orache
شنبه 16 دی 1391, 22:09 عصر
سلام من میخام یه جرف اسکریپتی بسازم مثلا player_move = keyboard_keys
بعضی از دوستا میگن از تابع namespace استفاده کنم ولی یه مشکل کد بالایی رو که هیچی ولی این کد رو چجوری میشه درست کرد
(player_tilt(10,10,10
من میخام به ازای تغییر اون 3 تا عدد مقادیر با هم فرق کنند مثلا نیمخام فقط یه کد پیشفرض باشه میخام بشه به جای اون اعداد مثلا از متغیر بشه استفاده کرد از عدد اعشاری از استرینگ و ...
ممنون
kochol
یک شنبه 17 دی 1391, 14:16 عصر
سوالت اصلا واضح نیست
خوب از متغییر استفاده کن دیگه
می خوای از یه زبان اسکریپت استفاده کنی؟
agep110
یک شنبه 17 دی 1391, 14:38 عصر
(player_tilt(10,10,10
من میخام به ازای تغییر اون 3 تا عدد مقادیر با هم فرق کنند مثلا نیمخام فقط یه کد پیشفرض باشه میخام بشه به جای اون اعداد مثلا از متغیر بشه استفاده کرد از عدد اعشاری از استرینگ و ...
ممنون
نمی دونم این چیزی که می خوام بگم منظورت هست یا نه.:لبخند:(اگه نبود لطفا تاپیک من رو حذف کنید:افسرده:)
میتونی از اشاره گر با نوع *void استفاده کنی:
bool f(void* a, void* b, void* c)
بیشتر زمانی کاربرد داره که نوع پارامترهای یه تابع مشخص نیست.
orache
یک شنبه 17 دی 1391, 15:47 عصر
ببینین مثلا تو اگری اینجوری مینویسن
()ogre::render
اینو چجوری ساختن که بشه بهش پارامتر داد اصلا بگین چجوری میشه همچین چیزی ساخت
agep110
یک شنبه 17 دی 1391, 16:08 عصر
()ogre::render
تا جایی که من میدونم فکر کنم اینجوری درستش کردن(البته خودتم میدونی:لبخند:):
namespace AA
{
int a = 2;
void f()
{
a = 6;
AA::a = 5;
}
}
namespace BB
{
int a = 3;
}
int main()
{
cout<< AA::a ; //خروجی 2 است
AA::f(); //اینجا دقت کن
cout<< AA::a ; //خروجی 5 است
}
اگه این نیست دیگه نمی دونم.:لبخند:
mohammadali1375
دوشنبه 18 دی 1391, 12:09 عصر
الان منظورت اصلا وازح نیست :متفکر:
اصلا ogre مگه اسکریپت داره ؟
orache
دوشنبه 18 دی 1391, 12:47 عصر
فکر کنم این کدی که agep110 گفت کار کنه فعلا باید امتحانش کنم اره اگری هم کلی اسکریپت پیش فرض داره که باید ازش استفاده کنیم من میخام یه قسمتی از یه موتور رو تغییر بدم
mohammadali1375
دوشنبه 18 دی 1391, 12:52 عصر
اسکریپت پیش فرض داره ؟؟؟؟؟؟
دادا اصلا میدینوی اسکریپت چیه ؟
اسکریپت زبانیه که توسط مفسر اجرا بشه.
حالا اگر کجاش اسکریپت داره ؟
()ogre::render یک تابع از کلاس ogre هست. اسکریپت نیستش که :متفکر:
pswin.pooya
دوشنبه 18 دی 1391, 13:14 عصر
اسکریپت زبانیه که توسط مفسر اجرا بشه.هيچ دليلي وجود نداره كه يه اسكريپت فقط توسط مفسر اجرا بشه. زبانهاي اسكريپت نوعي خاصي از زبانهاي برنامه نويسي هستن كه معمولا در محيط اجرايي خاصي به سيستم داده ميشن تا دستورالعمل هايي خاصي رو اجرا كنه. مثلا زبان اسكريپت جاوا داخل مرورگر براي تم و ... به كار ميره و يا Lua داخل گيم انجينها براي كنترل روند بازي به كار ميره.
حالا يه زبان اسكريپت ميتونه توسط مدلهاي مختلفي اجرا بشه كه برخي از اونها عبارتند از:
مفسر: مفسر خط به خط كد رو ميخونه و اجرا مي كنه و كندترين مدل زبان اسكريپت هست.
ماشين مجازي: زبان اسكريپت ميتونه به يه زبان مياني كه شبه اسمبلي هست تبديل و بعد توسط ماشين مجازي اجرا بشه.
يا حتي كد ماشين: برخي از زبانهاي اسكريپت توسط كامپايلرهايي به اسم JIT به كد ماشين تبديل ميشن.
مرز دقيقي مابين زبانهاي برنامه نويسي اسكريپت وجود نداره. يعني فقط تفاوت عمده در اين هست كه در 99 درصد موارد نميشه با زبانهاي اسكريپت برنامه مستقل ساخت. اما 99 درصد زبانهاي برنامه نويسي براي اين منظور طراحي شدن.
معمولا هدف از طراحي زبانهاي اسكريپت ساده تر كردن كار برنامه نويسي (مخصوصا با يه فريم ورك خاص) و يا دادن قابليت انعطاف بالا در يه محيط خاص هست.
ogre براي سيستم متريالش زبان اسكريپت خودش رو داره كه باعث شده تا حدي سيستم متريالش قابليت انعطاف بيشتري نسبت به برخي از موتورهاي ديگه پيدا كنه اما معمولا براي كنترل منطق بازي از زبانهاي اسكريپت زير استفاده ميشه:
Lua
Angle Script
Game Monkey
بهتره موارد زير رو هم مطالعه كنيد:
http://codeplea.com/game-scripting-languages
http://en.wikipedia.org/wiki/Scripting_language
orache (http://barnamenevis.org/member.php?262445-orache):
دوست من. اصلا سوالهايي كه ميپرسي واضح نيست. يعني من شخصا واقعا نمي دونم چي پرسيدي. در مورد namespace هم بايد بگم كه يه تابع نيست. بلكه يه كلمه كليدي هست و كاربردش براي جدا كردن فضاهاي نام از هم ديگه است. اين مورد براي مراحل كامپايل خصوصا در لينكر بسيار با اهميت است. علاوه بر اون به سهولت برنامه نويسي هم كمك زيادي ميكنه.
فضاي نام: فضاي نام يه اصلاح كامپيوتري است و بزرگترين ويژگي كه بايد داشته باشه منحصر به فرد بودن هر نام در اون هست. مثلا فضاي نام داخل سيستم فايل هم وجود داره و يا فضاي نام داخل برنامه نويسي هم وجود داره كه همون امضاء توابع هست. اصطلاحهايي همانند اين و خيلي از موارد ديگه از اصول سيستم هاي كامپوتري بشمار ميرن و متاسفانه به غير از يكسري از كتابهاي منبع در كتابهاي ديگه توضيح داده نمي شن.
agep110
دوشنبه 18 دی 1391, 13:29 عصر
()ogre::render یک تابع از کلاس ogre هست.
طبق گفته دوست عزیز mohammadali1375 میشه اینجوری هم نوشت:
class A
{
public:
void function();
};
void A::function()// <<===اینجا Ogre::render()
{
cout << "Hello!";
//Statement
}
از pswin.pooya عزیزم به خاطر اطلاعات تشکر میکنم.
mohammadali1375
دوشنبه 18 دی 1391, 14:16 عصر
pswin.pooya دمت گرم.
ولی ()ogre::render هنوز اسکریپت نیست که :لبخند:
جاش نیست ولی یه سوال برام پیش اومد. اینکه معمولا توی گیم انجین های بزرگ کدوم نوع پردازش اسکریپت استفاده میشه ؟ منظورم از اون سه حالتیه که گفتید. :متفکر:
یا در کل مثلا lua که خیلی جاها هم میبینیم این چجوری پردازش میشه ؟
pswin.pooya
دوشنبه 18 دی 1391, 17:37 عصر
سلام
اصولا ogre كتابخونه و از لحاظ نرم افزاري يك موتور گرافيكي هست. كه تمامش با زبان C++ نوشته شده. پس داخل كد خودش چيزي به اسم اسكريپت وجود نداره. فقط يه زبان ساده اسكريپت براي سيستم متريال برنامه هاش پياده سازي كرده كه اونم ربطي به خودش نداره.
جاش نیست ولی یه سوال برام پیش اومد. اینکه معمولا توی گیم انجین های بزرگ کدوم نوع پردازش اسکریپت استفاده میشه ؟ منظورم از اون سه حالتیه که گفتید
به عنوان مثال Lua و يا خيلي از زبونهاي اسكريپت ديگه از ماشين مجازي استفاده مي كنن. (حالا خود ماشين مجازي هم انواع مختلفي داره). اما باز هم يه LuaJit داريم كه سريعتر از Luaي معمول هست.
كلا مفسر كنتدترين، و JIT سريعترين نوع اجرا رو داره.
H_G_G_I
جمعه 22 دی 1391, 17:28 عصر
سوالت که خیلی نامفهومه و بی معنی!
ببینین مثلا تو اگری اینجوری مینویسن
()ogre::render
اینو چجوری ساختن که بشه بهش پارامتر داد اصلا بگین چجوری میشه همچین چیزی ساخت
یعنی چی خب مگه سی پلاس بلد نیستی :قهقهه:
orache
جمعه 22 دی 1391, 20:12 عصر
مرسی از تمامی دوستان پویا جان مفهوم حرفتو فهمیدم ولی الان یه جای کار میلنگه من یه بازی با اپن جی ال ساختم البته فکرت تو اون جاها نره ها بازی که یعنی بازی اتاری اونورتر :لبخند: یعنی یه ادم بتونه به چپ و راست راه بره و تیر بزنه البته یه جورایی خیلی بد شده ولی خاب الان یه چیزی
من میخام برای همین یه لول ادیتور درست کنم چیکار باید کرد من نمیتونم کارمو به عنوان یک فریم ورک بیرون بدم ولی میخام لول ادیتور براش بسازم با کد هایی که ساختم البته از هیچ اسپرایتی استفاده نکردم همشونو با اپن جی ال ساختم درخت دیوار زمین و.... ولی اگه میتونین حتما بگین که چجوری لول ادیتور رو بسازم
orache
جمعه 22 دی 1391, 21:29 عصر
اینا همین شکلی هست . البته گرافیکش خیلی بهتر از ایناست ولی با یاهو مسنجر عکس گرفتم و فقط 3 تا فرمت داشت جی پی جی بی ام پی و پی ان جی و من با جی پی جی گرفتم برا همین خیلی افتضاح شده
http://orache.persiangig.com/asdsad.jpg
.
راستی یه سوال داشتم ازت پویا جان یادم رفت تو پ خ بگم نیاز به یه سورس کاراکتر و تراین دارم {واسه kge } داری . هر سورسی داری حتما بده و دریغ نکن
pswin.pooya
جمعه 22 دی 1391, 23:15 عصر
سلام توي عكس دسكتاپت يه فايل براي kge هست :بامزه: خوبه :لبخند:
در مورد بازيت. بايد بگم براي شروع خوبه. ولي حتما يكي دوتا كتاب OpenGL بخون. توي لينك زير ميتوني يسري كتاب پيدا كني. دنبال جزوه دكتر جواد مهري براي گرافيك كامپيوتري بگرد.
راستی یه سوال داشتم ازت پویا جان یادم رفت تو پ خ بگم نیاز به یه سورس کاراکتر و تراین دارم {واسه kge } داری . هر سورسی داری حتما بده و دریغ نکن
منظورتون سورسي هست كه كاراكتر لود كنه و ترين بسازه؟!! اين سورسها (مخصوصا ترين) رو بهتره از يوزر kochol بگيريد. توي مدتي كه اين امكان اضافه ميشد من بشدت مشغول درسيدن بودم :لبخند: و نتونستم به تيم كمك كنم. ( البته بيشتر از كمك معمولا خرابكاري ميكنم)
orache
شنبه 23 دی 1391, 13:16 عصر
لینک ؟؟ یادت رفت بذاری
باشه
orache
شنبه 23 دی 1391, 21:56 عصر
راستی از حرف فهمیدم سوالم خیلی چرت بود
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.