Contacts
صفحه اصلی پورتال | صفحه اصلی تالار | ثبت نام | اعضاء | گروه ها | جستجو | پرسش و پاسخ | فروشگاه الکترونیکی | خرید پستی بازی های کامپیوتری





صفحه اول انجمنها -> برنامه نويسي تخصصي DirectX و اصول برنامه نويسي تحت ويندوز -> كمك در زبان اسكريپت lua
 

ارسال يك موضوع جديد   پاسخ به يك موضوع ديدن موضوع قبلي :: ديدن موضوع بعدي
برو به صفحه قبلي  1, 2, 3, 4, 5  بعدي

نويسنده
پيغام
MahanGM
پیر بازی سازی
پیر بازی سازی


تاريخ عضويت: 3 شنبه 20 شهريور 1386
تعداد ارسالها: 1846
محل سكونت: USS Terra Nova


3 شنبه 1 مرداد 1392 - 06:02
پاسخ بصورت نقل قول
razielsina, فقط 1 دونه اسکریپت لود میکنی؟ Shocked خوب چرا چندتا لود نمیکنی؟

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

سینا جان من که خودم دیگه هیچ هدفی برای ساخت بازی تو داخل کشور ندارم، بعد از ناکامی تیم خودمون و دیدن بقیه دوستان هم مثل استادیو سورنا، فکر کنم اصلا از اول نباید به اینکار به عنوان یک صنعت تو اینجا نگاه میکردیم!

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

من کلا در مورد زبون های اسکریپتی یک چیز خوب رو فهمیدم. اول اینکه اکثر پروژه های جدی برا خودشون یه زبون مینویسن، این رو میشه توی انجین Unreal مشاهده کرد. مشهور ترین جایی هم که lua استفاده شد CryEngine بود و اونها هم خودشون از اول خلقت lua داشتن نسخه ی خودشون رو develop میکردن. تا اونجا که من میدونم نسخه ای که توی Cry داره استفاده میشه یکسری فرق با نسخه public خود lua داره.

_________________
I have a dream that little children will one day live in a nation where they will not be judged by the color of their skin but by the content of their character. I have a dream today
هیچ راه فراری نیست!
http://www.dreamfactory.ir
ارسال  بازگشت به بالا
ديدن مشخصات كاربر ارسال پيغام خصوصي
 

نويسنده
پيغام
knight-rak
متخصص ساخت بازی
متخصص ساخت بازی


تاريخ عضويت: 5 شنبه 21 خرداد 1388
تعداد ارسالها: 405
محل سكونت: BOOTSTRAP LOADER


3 شنبه 1 مرداد 1392 - 10:27
پاسخ بصورت نقل قول
سلام به دوستان عزیز بعد از مدت های زیاد

راستش من که کلن از همه چیز فاصله گرفتم و کار و گرفتاری دیگه فرصت زیادی برای این چیزا نذاشته بعضی وقتا که فرصت کنم میام تو چندتا انجمن و سایت میچرخم اکثر موارد هم روی مود read only هستم متاسفانه

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

حالا من چطوری میتونم یه زبون اسکریپتی ایجاد کنم که با استفاده از کلمات کلیدی و اون نحوی که من خواستم بعد از نوشتن یکسری کد دقیقن همون کار رو که با خود c++ با دردسر های بیشتر انجام میدادم رو ساده تر رو کمتر کنم
ببینید من با نحوه عمل کردنش کار دارم نه اینکه چه زبان اسکریپتی خوب هست اصلن اصولش چی هست و نظر شما ها در موردشون چیه از این چیزا چطوری این زبون اسکریپتی که من آماده کردم میتونه عمل کنه اصلن چطوری این زبون رو میشه ایجاد کرد؟ باید براش مفسر نوشت ؟ کل این جور چیزا
اگر یکم سوالم گنگ و نامفهوم بود ببخشید آخه مدت زیادی هست تو جمع نیستم از دستم در رفته همه چیز

_________________
18.
به تکبر از مردم روی مگردان و به خودپسندی بر زمين راه مرو ، زيرا خدا هيچ به ناز خرامنده فخر فروشی را دوست ندارد
(سوره:لقمان آیه: 18 )
ارسال  بازگشت به بالا
ديدن مشخصات كاربر ارسال پيغام خصوصي
 

نويسنده
پيغام
razielsina
متخصص ساخت بازی
متخصص ساخت بازی


تاريخ عضويت: 5 شنبه 8 تير 1385
تعداد ارسالها: 326
محل سكونت: ايران


3 شنبه 1 مرداد 1392 - 13:05
پاسخ بصورت نقل قول
مخلص ماهان عزيز. باور ميكني فكر ميكردم كه با يه حالت لوا استيت ميشه فقط در هر لحظه داده هاي يه اسكريژت رو در پشته داشت و نميشه چندتا لود كرد. بعضي وقتها درجه هوشيم ميره زير 70. Confused

تو اكثر انجينها از لوا استفاده ميكنن و همين اينقدر محبوبش كرده چون كارايي لازم رو براي بازيهاي نسل بعد رو داشت(منظور نسل قبل از اين نسل جديد) براي نمونه در بازي company of heroes و در انجين اين بازي از سيستم اسكريپت لوا استفاده شده. خلاصه براي بي پولها بهترين و شايد يه گزينه معجزه اسا هستش. Very Happy
knight-rak
در زبانهاي اسكريژت نويسي اينكار رو با فراخواني توابع و متدهاي اصلي انجين انجام ميدن. براي مثال اگر متد شما براي جابجايي در كلاس مربوطه settranslation هستش ميشه خيلي راحت يك تابع در زبان اسكريژت نويسي براي اين متد ثبت كرد كه در واقع تابع ثبت شده در فايل اسكريپت نماينده اجراي متد شما در هسته انجين باشه.

_________________
اهورا مزدا اين سرزمين مقدس را از هر گونه دشمن و خشكسالي به دور نگه دارد.
همانا از اسب افتاده ايم نه از اصل(مهدي اخوان ثالث)
www.sina-kian.com
ارسال  بازگشت به بالا
ديدن مشخصات كاربر ارسال پيغام خصوصي ارسال ايميل
 

نويسنده
پيغام
MahanGM
پیر بازی سازی
پیر بازی سازی


تاريخ عضويت: 3 شنبه 20 شهريور 1386
تعداد ارسالها: 1846
محل سكونت: USS Terra Nova


3 شنبه 1 مرداد 1392 - 13:24
پاسخ بصورت نقل قول
razielsina, یعنی از اون نظریه ها برا خودت درست کرده بودی ها!!! Very Happy والا من انجین های زیادی رو نمیشناسم که از لوا استفاده کنن، البته منظورم انجین های تجاری و جدی هست نه رایگان و یا اوپن سورس ها. لوا زبون خیلی سریع و خوبیه، یعنی من خودم چند دفعه خواستم ازش مهاجرت کنم ولی نشد! چون با خودم میگفتم وقتی این رو توی یه چیزی مثل CryEngine استفاده کردن پس حتما اون قابلیتی که من نیاز دارم رو داشته. میتونم بگم 70 درصد مواقع اینجوری حودم رو قانع کردم و اینکه وقتی به آخرش رسیدم دیدم درست بود! باسه ما بی پول ها که همیشه عذاب آوره همه چیز، حالا خوبه تو ایران زندگی میکنیم وگرنه اگه خارج از کشور بودیم به قول یکی از بچه ها C++ For Food میشدیم Very Happy

_________________
I have a dream that little children will one day live in a nation where they will not be judged by the color of their skin but by the content of their character. I have a dream today
هیچ راه فراری نیست!
http://www.dreamfactory.ir
ارسال  بازگشت به بالا
ديدن مشخصات كاربر ارسال پيغام خصوصي
 

نويسنده
پيغام
__UFNHGGI_H__
کاربر جدید
کاربر جدید


تاريخ عضويت: 2 شنبه 23 بهمن 1391
تعداد ارسالها: 16


3 شنبه 1 مرداد 1392 - 19:27
پاسخ بصورت نقل قول
می تونی از angle script استفاده کنی . سینتکسش مثل سی می مونه
من یکی که از lua حالم بهم می خوره منو یاده مرحوم وی بی 6 میندازه (که لعنت خدا بر او باد)
ارسال  بازگشت به بالا
ديدن مشخصات كاربر ارسال پيغام خصوصي
 

نويسنده
پيغام
razielsina
متخصص ساخت بازی
متخصص ساخت بازی


تاريخ عضويت: 5 شنبه 8 تير 1385
تعداد ارسالها: 326
محل سكونت: ايران


4 شنبه 2 مرداد 1392 - 02:07
پاسخ بصورت نقل قول
راستي اين تكه از حرفت رو به چند حالت برداشت كردم. منظور كاملت رو ميتوني بهتر بيان كني.
؛توی هر فریم من میام فقط خود اسکریپت ها که بصورت pointer توی resource manager قبلش لود شدن رو آپدیت میکنم. اگه بخوای بیای هر بار توی موقع ترسیم هر گره رو بگیری و این لیست رو پیمایش کنی یه سربار کاملا اشتباه بوجود میاد.
؛

ببين من به اسكريپت منيجر دارم كه توي اون يه ليست كه از شپ هاي ساخته شده از نوع كلاس اسكريپت دارم كه هر كدامش حاوي داداه هاي ترجمه شده فايل اسكريپت هستش. حالا براي اينكه يه اشاره گر از رابط رو به اسكريپت بفرستم و پردازشهاي لازم رو رو اون انجام بدم مشكلي پيش مياد.

_________________
اهورا مزدا اين سرزمين مقدس را از هر گونه دشمن و خشكسالي به دور نگه دارد.
همانا از اسب افتاده ايم نه از اصل(مهدي اخوان ثالث)
www.sina-kian.com
ارسال  بازگشت به بالا
ديدن مشخصات كاربر ارسال پيغام خصوصي ارسال ايميل
 

نويسنده
پيغام
MahanGM
پیر بازی سازی
پیر بازی سازی


تاريخ عضويت: 3 شنبه 20 شهريور 1386
تعداد ارسالها: 1846
محل سكونت: USS Terra Nova


4 شنبه 2 مرداد 1392 - 02:28
پاسخ بصورت نقل قول
__UFNHGGI_H__, من هم با as موافقم. مسلما انتخاب اول من هم همونه.

razielsina, ببین من تو کلاس resource manager یه لیست از کلاس script ها دارم مثل بقیه منابع. بعد هر وقت که میخوام یه اسکریپت لود کنم میام با استفاده از متدی که تو resource manager تعریف کردم اینکار رو میکنم و اون هم به من یه پونتر بر میگردونه. این یه مثال کلی از اینکه من چطور اسرکیپت لود میکنم و استفاده میکنم:
كد:

auto scrMovement = resManager->addScript("movement", "C:\\movement.lua");
auto scrAI = resManager->addScript("ai", "C:\\ai.lua");
auto entPlayer = resManager->addEntity("player", 0, 0);

entPlayer->addScript(scrMovement);
entPlayer->addScript(scrAI);


حالا وقتی من بخوام اسکریپت ها رو آپدیت کنم، قبل از شروع حلقه آپدیت کردن entity ها میام اینکارو میکنم:

كد:

for(auto i = resManager->scripts.begin(); i != resManager->scripts.end(); i++)
{
  (*i)->callFunction("Update");
}


الآن من میام با استفاده از متد callFunction کلاس اسکریپت میام توی کدی که لود کرده function آپدیت رو صدا میزنم. بعد اینکار ها میرم سراق حلقه آپدیت کردن entity ها و ترسیم.

_________________
I have a dream that little children will one day live in a nation where they will not be judged by the color of their skin but by the content of their character. I have a dream today
هیچ راه فراری نیست!
http://www.dreamfactory.ir
ارسال  بازگشت به بالا
ديدن مشخصات كاربر ارسال پيغام خصوصي
 

نويسنده
پيغام
razielsina
متخصص ساخت بازی
متخصص ساخت بازی


تاريخ عضويت: 5 شنبه 8 تير 1385
تعداد ارسالها: 326
محل سكونت: ايران


4 شنبه 2 مرداد 1392 - 02:44
پاسخ بصورت نقل قول
عالي ماهان جان همين هم تو ذهن خودم بود ولي قاطي كرده بودم.
حالا يه نكته مهم. فرض كن دو تا تابع هم نام تو دوتا فايل اسكريپت داريم تو ميدوني چطوري بايد تابع مورد نظر رو فراخواني كنيم. ببين تو لوا مثلاْ من اينو نوشتم كه در واقع كارنت ند همون رابط اشاره گر به يه گره هست كه قرار اسكريپت مورد نظر رو اون اعمال بشه.تا بع SetInstance هم رابط اشاره گر گره رو از سي به لوا ميفرسته. كه در واقع كارنت ند بشه گره مورد نظر ما تو سي تا از طريق ديگر متدها رو اون اعمال تغييراتي داشته باشيم. حالا فرض كن اين تابع SetInstance توي دو تا فايل اسكريپت باشه اونوقت چي؟ از كجا من بتونم تابع مورد نظر رو تو فايل مورد نظر فراخواني كنم؟

CurrentNode=Node


function SetInstance(Instance)
CurrentNode=Instance
end

_________________
اهورا مزدا اين سرزمين مقدس را از هر گونه دشمن و خشكسالي به دور نگه دارد.
همانا از اسب افتاده ايم نه از اصل(مهدي اخوان ثالث)
www.sina-kian.com
ارسال  بازگشت به بالا
ديدن مشخصات كاربر ارسال پيغام خصوصي ارسال ايميل
 

نويسنده
پيغام
MahanGM
پیر بازی سازی
پیر بازی سازی


تاريخ عضويت: 3 شنبه 20 شهريور 1386
تعداد ارسالها: 1846
محل سكونت: USS Terra Nova


4 شنبه 2 مرداد 1392 - 05:39
پاسخ بصورت نقل قول
razielsina, سینا اگه یه lua_State سراسری داشته باشی مسلما اون functionی که اول میاد توی stack اجراء میشه چون از همون state همه اسکریپت ها دارن استفاده میکنن، اگه بخوای هر اسکریپت بصورت جداگانه اجراء بشه باید برای هرکدوم یه lua_State تعریف کنی و نسبت به state اون اسکریپت کارهاتو انجام بدی. من خودم در حال حاضر اینکارو میکنم. من تا اونجا که میدونم اینکار سربار خاصی نداره چون خودم هم از توی یکی از سایت ها دیدم که اینکارو انجام میدن و کسی هم اشاره به بهینه بودن یا نبودن نکرد. البته یدونه سایت که ملاک نمیشه.

_________________
I have a dream that little children will one day live in a nation where they will not be judged by the color of their skin but by the content of their character. I have a dream today
هیچ راه فراری نیست!
http://www.dreamfactory.ir
ارسال  بازگشت به بالا
ديدن مشخصات كاربر ارسال پيغام خصوصي
 

نويسنده
پيغام
razielsina
متخصص ساخت بازی
متخصص ساخت بازی


تاريخ عضويت: 5 شنبه 8 تير 1385
تعداد ارسالها: 326
محل سكونت: ايران


4 شنبه 2 مرداد 1392 - 05:45
پاسخ بصورت نقل قول
پس به نظرت اگر تو هر كلاس يه استيت داشته باشيم و مجموعه اي شپ از اون كلاس بسازيم كه هر كدومشون يه لوا استيت داشته باشن مشكلي پيش نمياد؟
من تو اينترنت سرچ زدم و مثل اينكه با يه استيت و ذخيره كردن توابع اون فايل ميشه از يه استيت هم استفاده كرد البته اين مسپله براي ذخيره متغيرهاي صدق نميكنه و به طور كلي استفاده از اين مشكلات زيادي هم داره.
تو اينكارو كردي راضي بودي؟ مشكلي نداشته تو مصرف حافظه و يا باگ نداشتي؟

_________________
اهورا مزدا اين سرزمين مقدس را از هر گونه دشمن و خشكسالي به دور نگه دارد.
همانا از اسب افتاده ايم نه از اصل(مهدي اخوان ثالث)
www.sina-kian.com
ارسال  بازگشت به بالا
ديدن مشخصات كاربر ارسال پيغام خصوصي ارسال ايميل
 

نمايش نامه هاي ارسال شده قبلي:   
ارسال يك موضوع جديد   پاسخ به يك موضوع    صفحه 2 از 5 تمام ساعات و تاريخها بر حسب 3.5+ ساعت گرينويچ مي باشد
برو به صفحه قبلي  1, 2, 3, 4, 5  بعدي


 
پرش به:  


شما نمي توانيد در اين انجمن نامه ارسال كنيد.
شما نمي توانيد به موضوعات اين انجمن پاسخ دهيد
شما نمي توانيد نامه هاي ارسالي خود را در اين انجمن ويرايش كنيد
شما نمي توانيد نامه هاي ارسالي خود را در اين انجمن حذف كنيد
شما نمي توانيد در نظر سنجي هاي اين انجمن شركت كنيد


unity3d

بازگردانی به فارسی : علی کسایی @ توسعه مجازی کادوس 2004-2011
Powered by phpBB © 2001, 2011 phpBB Group
| Home | عضويت | ليست اعضا | گروه هاي كاربران | جستجو | راهنماي اين انجمن | Log In |