View Full Version : سوال: قفل کردن جسم روی موس
tstsst
دوشنبه 28 شهریور 1390, 19:57 عصر
سلام
1. چه جوری می شه برای مثال یک عکس رو روی موس قفل کرد و با حرکت موس حرکت کنه؟
2. و چه جوری می شه فقط به دنبال موس باشه و خودش یک جا ثابت باشه برای مثال به این عکس توجه کنید منظورم رو می فهمید!! (فقط جهت پدافند دنبال موس میاد!!)
75513
3.چه جوری میشه برای همه اینا محدوده تعیین کرد که فقط داخل اون محدوده دنبال موس باشه؟
سپاس
محسن واژدی
سه شنبه 29 شهریور 1390, 10:33 صبح
سلام علیکم
1- یکی از راه ها دریافت مختصال کرسر توسط apiی GetCursorPos است، اما در سطح فرم برنامه میتوانید از رویداد MouseMove برای دریافت مختصات موس و حرکت دادن یک شی استفاده کرد
2- به این صورت که در تصویر وجود دارد بایستی با برنامه نویسی direct-x انجام داد
3- برای ایجاد محدودیت در حرکت یک شی میتوانید توسط شرط اینکار را انجام دهید، به عبارت دیگر با شروط If ونظیر اینها مانع از تجاوز مختصات از حد تعیین شده شوید
موفق باشید
tstsst
سه شنبه 29 شهریور 1390, 11:41 صبح
سلام
خیلی ممنون
یک سوال دیگه
وقتی می گم MousePosition برابر با برای مثال MenuStrip1.Location شد اون وقت label1.location برای بر هرچی بشه (برای مثال برابر Label2.Location) اما کار نمی کنه !! (قبلش گفتم لیبل1.لوکیشن = موس پوزیشن)
محسن واژدی
سه شنبه 29 شهریور 1390, 14:07 عصر
سلام
خیلی متوجه موضوع نشدم!، در صورت امکان سورس مشکل را ضمیمه کنید
موفق باشید
tstsst
سه شنبه 29 شهریور 1390, 14:09 عصر
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
Label1.Location = MousePosition
If MousePosition = Label3.Location Then
label1.location = label2.location
End If
End Sub
خیلی ممنون و ببخشید !
محسن واژدی
سه شنبه 29 شهریور 1390, 14:32 عصر
میبخشید، اما کد مربوط به .net است که اگر در vb6 نوشته شود، خیلی متفاوت میشود
tstsst
سه شنبه 29 شهریور 1390, 14:41 عصر
خب صحیح کد چیه البته در وی بی.نت :) شما در وی بی هم بگید من پیداش می کنم x)
با این هم کار نکرد
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
Label1.Location = MousePosition
If Label1.Location = New Point(556, 44) Then
Label1.Location = New Point(465, 326)
End If
End Sub
محسن واژدی
سه شنبه 29 شهریور 1390, 14:56 عصر
شرط کد پست 5 را بصورت ">=" تغییر دهید یعنی :
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
Label1.Location = MousePosition
If MousePosition >= Label3.Location Then
label1.location = label2.location
End If
End Sub
موفق باشید
tstsst
سه شنبه 29 شهریور 1390, 15:04 عصر
خیلی خیلی ممنون
ولی ارور
Error 1 Operator '>=' is not defined for types 'System.Drawing.Point' and 'System.Drawing.Point'. G:\Users\tstsst\Documents\Visual Studio 2008\Projects\myapp2\myapp2\game2.vb 26 12 myapp2
میداد :D
ولی با این ارور نمیداد بازم ممنون
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
Label1.Location = MousePosition
If MousePosition.X >= 556 And MousePosition.Y >= 44 Then
Label1.Location = Label2.Location
End If
End Sub
در کل ممنون
محسن واژدی
سه شنبه 29 شهریور 1390, 15:15 عصر
خیلی خیلی ممنون
ولی ارور
میداد :D
ولی با این ارور نمیداد بازم ممنون
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
Label1.Location = MousePosition
If MousePosition.X >= 556 And MousePosition.Y >= 44 Then
Label1.Location = Label2.Location
End If
End Sub
در کل ممنون
حتما" حق با شماست، چون به VB.net دسترسی نداشتم، خطا نوشتم
موفق باشید
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.