درود مهمان گرامی! ثبت نام
آموزش ساخت بازی در #C آموزش UDK آموزش مدل سازی در Maya
آموزش ساخت بازی در VB آموزش Unity - پروژه محور آموزش مدل سازی با 3Ds Max
آموزش برنامه نویسی اندروید آموزش Unity - ساخت منو آموزش متحرک سازی در 3Ds Max
آموزش ساخت بازی حدس تصویر آموزش Unity - متحرک سازی مجموعه آموزش های ساخت بازی
● آموزش های رایگان ● تبلیغات دیجیتال هوشمند ● استخدام در فرادرس

امتیاز موضوع:
  • 0 رأی - میانگین امتیازات: 0
  • 1
  • 2
  • 3
  • 4
  • 5
تغییر object
#1
با سلام
چه جوری میشه وقتی از یک object در روم چندتا داریم روش کلیک میکنیم و یه ابجت جدید بازمیشه بگیم فقط اونی رو تغییر بده که این ابجکت کنارش هست ؟؟؟
پاسخ
#2
نقل قول: سلام،
واضح تر توضیح بدید...
کیــــــــــ qwerty13 ـــــــوورتی13
پاسخ
#3
سلام...من الان gm در دسترس ندارم...ولی منظورش رو فک کنم میتونم زیر نویس کنم : 
شما یه ابجکت دارید یا بهتر بگم مجموعه ای از ابجکت ها دارید که رو یکیش کلیکی انجام میدید و یه ابجکت دیگه در موقعیت ابجکت کلیک شده یا نزدیک به موقعیت ابجکت کلیک شده، ایجاد میشه...حالا میخواد ابجکتی رو تغییر بده که یه ابجکت دیگه کنارش ایجاد کرده...
فک کنم منظورش این بود...
حالا اگ برداشتم درست باشه درواقع میخوای ابجکتی را تغییر بدی که کلیک شده و اینم خیلی راحته که !!!
یا شایدم بخواد ابجکتی ک ایجاد کرده رو تغییر بده ؟!

فک کنم بهتره بگین منظورت از تغییر چیه ؟ اگ شکلکش منظورته ک در هر دو حالت بالا بازم جواب ساده است...
دسترسی به gm ندارم وگرنه کد رو مینوشتم در دو حالت بالا...
پاسخ
#4
(9/10/1397، 02:23 عصر)hisalam نوشته است: سلام...من الان gm در دسترس ندارم...ولی منظورش رو فک کنم میتونم زیر نویس کنم : 
شما یه ابجکت دارید یا بهتر بگم مجموعه ای از ابجکت ها دارید که رو یکیش کلیکی انجام میدید و یه ابجکت دیگه در موقعیت ابجکت کلیک شده یا نزدیک به موقعیت ابجکت کلیک شده، ایجاد میشه...حالا میخواد ابجکتی رو تغییر بده که یه ابجکت دیگه کنارش ایجاد کرده...
فک کنم منظورش این بود...
حالا اگ برداشتم درست باشه درواقع میخوای ابجکتی را تغییر بدی که کلیک شده و اینم خیلی راحته که !!!
یا شایدم بخواد ابجکتی ک ایجاد کرده رو تغییر بده ؟!

فک کنم بهتره بگین منظورت از تغییر چیه ؟ اگ شکلکش منظورته ک در هر دو حالت بالا بازم جواب ساده است...
دسترسی به gm ندارم وگرنه کد رو مینوشتم در دو حالت بالا...

داداش مال خودش خیلی بهتر بود شما که خیلی بیشتر گیجمون کردی sick
الان یکی باید واسه شما رو توضیح بده من که کلا گیج شدم cry

(&)


پاسخ
 سپاس شده توسط MiladKaydi
#5
مثال بزنم ببینید من دارم بازی tower defense میسازم چند جا خالی هست که با کلیک روی اونا برج ساخته میشه حالا میخوام قسمت upgrade رو به برج ها اضافه کنم که وقتی روی اونا کلیک میشه شکل برج به یه ابجکت دیگه تغییر کنه
حالا  من وقتی روی این ابجکت که برای اپدیت برج تعریف کردم روش کلیک میکنم  تمام برج ها تغییر میکنه چون همگی از یک ابجکت هستن 
میخوام فقط اون برجی تغییر کنه که منوی اپدیت کنارش هست
پاسخ
#6
بازی که میگی نمیدونم چیه و  منظورت رو دقیق نمیدونم چیه ولی

اگر دو ابجکت مورد نظر با هم برخورد داشتند میتونی از کد زیر استفاده کنی

if place_meeting(x,y,obj_name)
{
//---اتفاق
}

اگر میخوای نسبت به فاصله کد بدی کد زیر

if (distance_to_object(obj_name)>250)
{
//---اتفاق
}

کد بالا میگه اگر فاصله بیشتر از 250 بود فلان اتفاق بیوفته

و کد پایین میگه اگر کمتر بود

if (distance_to_object(obj_name)<250)
{
//---اتفاق
}

البته راه دیگه هم باید باشه

(&)


پاسخ
#7
(10/10/1397، 11:44 صبح)Wowali نوشته است: مثال بزنم ببینید من دارم بازی tower defense میسازم چند جا خالی هست که با کلیک روی اونا برج ساخته میشه حالا میخوام قسمت upgrade رو به برج ها اضافه کنم که وقتی روی اونا کلیک میشه شکل برج به یه ابجکت دیگه تغییر کنه
حالا  من وقتی روی این ابجکت که برای اپدیت برج تعریف کردم روش کلیک میکنم  تمام برج ها تغییر میکنه چون همگی از یک ابجکت هستن 
میخوام فقط اون برجی تغییر کنه که منوی اپدیت کنارش هست

سلام...کد هاتو بفرست
پاسخ
#8
(10/10/1397، 11:44 صبح)Wowali نوشته است: مثال بزنم ببینید من دارم بازی tower defense میسازم چند جا خالی هست که با کلیک روی اونا برج ساخته میشه حالا میخوام قسمت upgrade رو به برج ها اضافه کنم که وقتی روی اونا کلیک میشه شکل برج به یه ابجکت دیگه تغییر کنه
حالا  من وقتی روی این ابجکت که برای اپدیت برج تعریف کردم روش کلیک میکنم  تمام برج ها تغییر میکنه چون همگی از یک ابجکت هستن 
میخوام فقط اون برجی تغییر کنه که منوی اپدیت کنارش هست

سلام ...به جای تغییر ابجکت از تغییر شکل ابجکت استفاده کن... در واقع مجموعه سطوح برج رو به عنوان اندیسهای 0 به بالا برای اسپریت تعریف کن..مثلا برج سطح 0 اندیس 0 برج سطح 1 اندیس 1 و الا اخر یعنی نیازی نیست ابجکت جدید لود کنی فقط نیاز به تغییر شکل ابجکت داری...برای این کار : 
قدم اول یه شرط می نویسی ک اگ مکان کلیک شده خالی باشه اون وقت برج ساخته بشه و تصویر 0 رو بهش بده...
قدم دوم در صورتی که مکان کلیک شده خالی نباشه و برج باشه با اندیس 0 در اون صورت اندیس رو 1 کن و همینجور ادامه بده...
قدم سوم تمامی شرایط برجها (منظورم ویزگیهای ارتقاهاست) رو با پیش شرط اینکه چه اندیسی شکلکش داره تنظیم کن ...

نکته ای ک هست اینه که به جای نام ابجکت باید از ای دی استفاده کنی !!!
---------------------

مثال : 
رویداد ایجاد (Create) برج :

کد:
self.image_speed = 0 ;
 
کد بالا واضح است ...چون اسپریت ما چندیتن تصویر داره نمیخوایم این تصاویر در بازی تغییر کنه پس کد بالا رو تو رویداد create ابجکت مینویسیم...
حالا برای ساخت برج در مکان خالی به صورت زیر عمل می کنیم : 
یه ابجکت میسازیم ک رویدادهای موسمون رو کنترل کنه و کد زیر رو بهش می دیم بعد میندازیم تو روم ...در اینجا با کلیک چپ موس شی ای به نام obj ک نقش برج شما را دارد ایجاد می شود سپس ای دی شی ایجاد شده در متغییر click_id ذخیره شده و تصویر اون برابر با تصویر0 اسپریت معادل سازی شده... همانطور که گفتم در اینجا منظور از تصویر0 ، برج شما با لول 0 هست )  : 
کد:
if mouse_check_button_pressed(mb_left) {

    instance_create_depth(mouse_x,mouse_y,0,obj);
    var click_id = instance_position(mouse_x,mouse_y,obj);
    if(click_id){
       click_id.image_index = 0;
   }
}

حالا که با کد بالا برجها ساختیم میخوایم ارتقا بدیم پس به صورت زیر عمل می کنیم : 
تو رویداد کلیک چپ موس obj یا همون برج شما دستورات زیر رو می نویسیم(البته باید یه شرطی بنویسی که اگ تصویر0 باشه بکن 1 و اگ 1 باشه بکن 2 و الی اخر...من اینجا شرط رو ننوشتم!!! ) :
کد:
var click_id = self.id;
    if(click_id){
       click_id.image_index = 1;
   }

در کد بالا باز ای دی نمونه ابجکت کلیک شده رو گرفتیم و بعد شکلکش رو بردیم رو اندیس 1 ...
برای ارتقاهای بعدی هم به همین صورت مینویسی اگ 1 باشه بکن 2 وووو یعنی این شرط رو هم اضاف کن یعنی همون شرطی که بالا گفتم ننوشتم!!!...ک این بستگی به این داره برج با چ سطحی کلیک میشه اگ برج با سطح 0 باشه و ما قبلا گفتیم اندیس 0 رو بهش بده حالا اگ برج رو دوباره کلیک کردیم باید ببینیم چ سطحی هست و این کار با بررسی شکلش امکان پذیره یعنی شرط زیر اگ 0 باشه بکن 1 اگ 1 باشه بکن 2وووو : 

کد:
if (self.image_index = 0)

این شرط رو باید با دستورات بالا ادغام کنی یعنی بعد از کلیک برج و گرفتن ای دی چک کنه اگ 0 باشه بکنه 1 و اگ 1 باشه بکن 2 ووو
............
اصول کار به همین صورته البته احتمال زیاد بر اساس بازیت نیاز به شروط دیگه ای هم خواهی داشت ...مثلا اگ گزینه ارتقا فعال باشه یتونه ارتقا بده وووو
موفق باشی


ویرایش : نباید گنگ باشه البته یه مقدار سریع نوشتم دو سه بار بخون اگ ایرادی بود یا نیاز به توضیح بیشتر داشت بهم بگو...
پاسخ
 سپاس شده توسط qwerty13


موضوعات مرتبط با این موضوع...
موضوع نویسنده پاسخ بازدید آخرین ارسال
  غیر فعال کردن object Wowali 10 123 4/10/1397، 06:32 صبح
آخرین ارسال: TNT
  تغییر بک گراند در گیم میکر full-city 3 284 29/7/1396، 07:32 عصر
آخرین ارسال: full-city
  Object follwing . برای 2 ابجکت جدا در روم sina2000 5 373 28/7/1396، 12:23 عصر
آخرین ارسال: ahmadreza59
  تغییر جهت انیمیشن zoro 10 580 29/5/1396، 11:09 صبح
آخرین ارسال: zoro
  تغییر صفحه لودینگ parsa.maker 1 662 6/1/1395، 03:25 عصر
آخرین ارسال: king-games



کاربرانِ درحال بازدید از این موضوع: 1 مهمان