پیادهسازی دوربین 2.5D (نمای سهچهارم) و حرکت شخصیت/ Implementation of 2.5D Camera (Quarter View) and Character Movement
در سراسر کشور
در وبسایت پارسکدرز(3 هفته پیش)
دورکاری
اطلاعات شغل:
امکان دورکاری و کار در منزل: دارد
نوع همکاری: پروژهای
مهارتهای مورد نیاز:
برنامه نویسی با C++ (C++ Programming)
طراحی بازی (Game Design)
اینترنت اشیاء (IoT)
بینایی رایانهای (Computer Vision)
نویسندگی دانشگاهی (Academic Writing)
مقاله (Articles)
بازه حقوق:از 750,000 تا 5,000,000 تومان
متن کامل آگهی:
\*\*اسلاید 2: مقدمه\*\*
- پیادهسازی دوربین 2.5D (نمای سهچهارم) و حرکت شخصیت - \*\*شرط 1\*\*: شخصیت و دوربین باید بر اساس کلیدهای جهت کیبورد (بالا، پایین، چپ، راست) حرکت کنند. - \*\*شرط 2\*\*: شخصیت باید به جهتی که حرکت میکند، نگاه کند (چرخش مدل).
\*توجه\*: نیازی نیست که کد موجود در این سند را بهطور دقیق دنبال کنید، تا زمانی که شرایط بالا رعایت شوند.
---
\*\*اسلاید 3: کلاس اصلاحشده: Camera\*\*
- قبلاً حرکت بر اساس جهتگیری دوربین بود.- این کلاس به گونهای اصلاح میشود که حرکت در جهت ثابت بر اساس مختصات جهانی باشد.- جهت دید (m\_target) ثابت باقی میماند.
\*نکته\*: حرکت به سمت بالا/پایین (کلیدهای q و e) و ورودی ماوس حذف شود.
---
\*\*اسلاید 4: کلاس جدید: Character\*\*
- اضافه کردن کلاس Character که از کلاس Model ارثبری کرده است، برای پیادهسازی حرکت.- \*\*پیادهسازی حرکت\*\*: - در تابع \`Update()\` از \`Renderable::Translate()\` برای حرکت استفاده کنید. - \`Translate()\` بر اساس موقعیت فعلی حرکت میکند، بنابراین آن را طوری پیادهسازی کنید که بر اساس تفاضل \`m\_targetPosition\` و \`m\_currentPosition\` حرکت کند.
---
\*\*اسلاید 5: کلاس جدید: Character (چرخش)\*\*
- \*\*پیادهسازی چرخش\*\*: - از \`Renderable::RotateY()\` برای چرخش بر اساس مختصات جهانی استفاده کنید. - تابع \`RotateYInObjectCoordinate(float angle, XMVector objectOffset)\` را برای چرخش نسبی نسبت به مختصات شیء ایجاد کنید. - از \`CharacterDirection\` enum برای نشان دادن جهت فعلی شخصیت استفاده کنید. - زاویه چرخش را از جهت فعلی محاسبه کنید (از دستورات if یا switch استفاده کنید).
\*توجه\*: برای رادیانها از \`XMMatrixRotationY(angle)\` استفاده کنید و برای تبدیل درجه به رادیان از \`XMConvertToRadians(degree)\` استفاده کنید.
---
\*\*اسلاید 6: کلاس اصلاحشده: Renderer\*\*
- Renderer باید علاوه بر فراخوانی \`HandleInput()\` برای دوربین، آن را برای شخصیت نیز فراخوانی کند.- یک اشارهگر در Renderer اضافه کنید تا به شخصیت دسترسی داشته باشید.- \`SetCharacter()\` را در Renderer پیادهسازی کنید تا اشارهگر شخصیت را تنظیم کند و در \`Renderer::HandleInput()\` ورودیهای شخصیت را مدیریت کند.- \`SetCharacter()\` را در \`Game/Main.cpp\` فراخوانی کنید.
---
موارد مورد نظر تکلیف برای نمره دادن که حتما باید در نظر داشت:
- ارسال یک فایل فشرده از کل پروژه (شامل پوشههای Build, Data, External, Library, Source).- \*\*ارزیابی (مجموع: 10 امتیاز):\*\* 1. اجرای پنجره پایه و رندرینگ مدل (با نورپردازی Phong): \*\*2 امتیاز\*\*. 2. حرکت دوربین بر اساس ورودی کلیدهای بالا، پایین، چپ، راست (مختصات جهانی): \*\*2 امتیاز\*\*. 3. حرکت مدل بر اساس ورودی کلیدهای بالا، پایین، چپ، راست: \*\*3 امتیاز\*\*. 4. چرخش مدل بر اساس ورودی کلیدهای بالا، پایین، چپ، راست: \*\*3 امتیاز\*\*.
---
\*\*اسلاید 8: کارهای مورد نیاز\*\*
- \*\*اصلاح کتابخانه/Camera\*\*: - ورودی ماوس و کد چرخش را حذف کنید. - \`HandleInput()\` و \`Update()\` را اصلاح کنید.- \*\*اضافه کردن کتابخانه/Character\*\*: - \`HandleInput()\` و \`Update()\` را پیادهسازی کنید (برای چرخش و حرکت).- \*\*اصلاح کتابخانه/Renderer\*\*: - \`HandleInput()\` را اصلاح کنید. - \`SetCharacter()\` را اضافه کنید.- تنظیمات کلی: - تعداد نورها را تنظیم کنید. - فایل \`Game/Main.cpp\` را اصلاح کنید. - ورودی ماوس را در \`Library/MainWindow\` و \`HandleInput()\` حذف کنید.
-------
ممنون میشم تماس بگیرید برای همکاری
این آگهی از وبسایت پارسکدرز پیدا شده، با زدن دکمهی تماس با کارفرما، به وبسایت پارسکدرز برین و از اونجا برای این شغل اقدام کنین.
هشدار
توجه داشته باشید که دریافت هزینه از کارجو برای استخدام با هر عنوانی غیرقانونی است. در صورت مواجهه با موارد مشکوک، با کلیک بر روی «گزارش مشکل آگهی» به ما در پیگیری تخلفات کمک کنید.