Drag

Samo44

Member
سلام
می خوام وقتی دایره رو ِDrag می کنیم وداخل مربع قرار می گیره تکست ok ظاهر بشه و وقتی از داخل مربع
بیرون میاد دوباره ok مخفی بشه . چطور می تونم این کار رو انجام بدم ؟ از راهنمایی تون پیشاپیش متشکرم .
 

پیوست ها

  • Drag.rar
    1.5 کیلوبایت · بازدیدها: 20

BEHESHT

Well-Known Member
mmb Samples

سلام خسته نباشی

به لینک زیر تو درایو ویندوزت نگاه کن خیلی کمکت می کنه:



کد:
:\Program Files\Multimedia Builder498\Samples\495_examples\mouse\mousemove_checkcol.mbd
 

Samo44

Member

سلام
لینک رو دیدم ولی نتونستم مشکلمو حل کنم .
این کد هم درست یا غلط ، کارساز نبود .
X=MouseX()
Y=
MouseY()
If (X=50&Y=70) Then
Show("ok")
End
 

BEHESHT

Well-Known Member
یه پیشنهاد

سلام ساموی عزیز ببین دوست من سعی کن با مثال های mmb بازی کنی چون خیلی مفیده همون مثال بالایی که واست معرفی کردم رو نگاه کن یه خط بهش اضافه کنی باز خوردش رو قشنگ متوجه می شی فقط یه خط اسکریپت


اسکریپت:CheckPos رو برو توش این خطی که تو کد پایین قرمز شده رو اضافه کن اگه باز خورد نداشت دیگه دور مثال های mmb رو خط بکش

سعی کن خودت تا جایی که می تونی بجنگی نتونستی مطرح کن چون این جوری لذتش هزار برابر از یاد گرفتنه

سرت رو درد آوردم حالا کد زیر رو نگاه کن:


کد:
** Get objects position and size
OW_mov = ObjectWidth(MovedObj$)
OH_mov = ObjectHeight(MovedObj$)
OX_col = ObjectX(ColObj$)
OY_col = ObjectY(ColObj$)
OW_col = ObjectWidth(ColObj$)
OH_col = ObjectHeight(ColObj$)
If (((PosX+OW_mov=>OX_col)&(PosY+OH_mov=>OY_col))&((PosX<=OX_col+OW_col)&(PosY<=OY_col+OH_col))) Then
Collision=1
[COLOR=red]Message("ok","")[/COLOR]
LoadText("TextX","Collision!")
Else
Collision=0
LoadText("TextX","No Collision!")
End

حالا یه پیام Ok رو خواهی داشت

یاحق
باحق
تاحق
 

Samo44

Member
با تشکر
یقین داشته باشید اگه می تونستم خودم به نتیجه برسم مزاحم شما نمی شدم .چون نه من که همه دوستان زمانی اقدام به طرح سوال می کنیم که اطلاعات خودمان جوابگو نیست .در همین مورد خاص قبل از طرح سوال با رها مثال mmb رو مرور کرده بودم.ولی در عین قدر دانی باید عرض کنم باز هم با این راهنمایی آخر شما به جواب نرسیدم .
 

BEHESHT

Well-Known Member
خب ساموی عزیز من جسارت نکردم

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

تو پاسخ قبلی دو خط بالا تر از پیام قرمز یه سری توابع برای ایجاد ok داده حالا می تونی با تغییر این توابع به نتیجه ی مطلوب برسی

موفق باشی
 

Samo44

Member
سلام
آقا یکی زحمت دو خط کد رو بکشه و ما رو خلاص کنه . من که به نتیجه نرسیدم .
 

BEHESHT

Well-Known Member
مثال

سلام samo عزیز

یه شئ به نام ok تو همون مثالی که بالا گفتم ایجاد کن
(ok می تونه عکس هم باشه)


یکی از مربع ها رو به دلخواه حذف کن


و در آخر اسکریپتCheckPos این توابع رو اضافه کن

کد:
***** ادامه
If (PosX<100) Then
  Show("ok")
Else
End
If (PosY<100) Then
  Show("ok")
Else
End
If (PosY>100) Then
  Hide("ok")
Else
End
If (PosX>100) Then
  Hide("ok")
Else
End
در این صورت اگر تنها مربع باقی مونده مقدار ارتفاع و عرضش از 100 کمتر شد ok نمایش داده میشه و گر نه مخفی باقی می مونه

و اگر ارتفاع یا عرضش هر یک از 100 بیشتر بشه شئ ok مخفی میشه

می تونی خودت به دقت باضافه ویا کم کنی

امر دیگه نیست دوست عزیز؟

موفق باشی

یاحق
باحق
تاحق

:rose:
 

OMiD

Well-Known Member
روش بهتر كد نويسي:

کد:
***** ادامه
If (PosX<100) Then
  Show("ok")
Else
End
If (PosY<100) Then
  Show("ok")
Else
End
If (PosY>100) Then
  Hide("ok")
Else
End
If (PosX>100) Then
  Hide("ok")
Else
End
شما ميتونستيد به جاي اين همه نوشته از اين استفاده كنيد:
کد:
If (PosX<100|PosY<100) Then
  Show("ok")
End
***
If (PosY>100|PosX>100) Then
  Hide("ok")
End
 

BEHESHT

Well-Known Member
تشکر آقا امید عزیز

بله شما درست می فرمایید اما برای آموزش بهتره که هر چه ساده تر مثال ها رو برای دوستان بذاریم تا دوستان مفهوم اسکریپت نوشته شده رو متوجه شن

میانبر ها باعث پیچیده به نظر رسیدن در نظر مبتدی ها می شود.

شما هم اگر قصد مثال داشتید این مورد رو امیدوارم رعایت کنید.

باز هم تشکر
 

جدیدترین ارسال ها

بالا