H_G_G_I
سه شنبه 07 آذر 1391, 23:21 عصر
سلام:لبخندساده:
من یه کلاس صحنه دارم که این چیزا رو داره ::
View_X
View_Y
View_Scale_X
View_Scale_Y
View_Rotation
برفرض اینکه مقادیر پیفرضش اینا باشه (به ترتیب )
100
100
0.5
0.5
45
من می خوام وقتی روی پنجره بازی کلیلک می کنم (بر فرض در نقطه 400 در 300)
معادل این نقطه تو محیط بازی رو بدست بیارم و یه ابجت تو اون قسمت بزارم !
مثلا تو حالت خیلی ساده View_X + Mouse_X کنیم حله !
ولی الان من مقباس و چرخش هم دارم !
من یه فرمول من دراوردی درست کردم مشکلش اینه که فقط چرخشش کار نمی کنه !:متفکر:
وقتی می چرخونم یه چیز دیگه میشه !
چی بنویسم تا درست شه !
الان من ته زورمو زدم اینو نوشتم !:ناراحت:
/*******************
m_WindowWidth = 800;
m_WindowHeight = 600;
m_View_Scale_X = 0.5f
m_View_Scale_Y = 0.5f
m_ViewX = 100;
m_ViewY = 100;
m_ViewAngle = 45f;
m_MouseX = 400;
m_MouseY = 300;
********************/
float l_halfW = m_WindowWidth / 2;
float l_halfH = m_windowHeight / 2;
float l_n1 = 1.0f / m_View_Scale_X;
float l_n2 = 1.0f / m_View_Scale_Y;
float l_xx = m_ViewX + (m_MouseX * l_n1 - (l_n1 * l_halfW - l_halfW));
float l_yy = m_ViewY + (m_MouseY * l_n2 - (l_n2 * l_halfH - l_halfH));
float l_angle = atan2f(l_yy , l_xx );
float l_length = sqrt( l_xx*l_xx + l_yy*l_yy);
l_xx = cosf( l_angle + m_ViewAngle * DEG2RAD ) * l_length;
l_yy = sinf( l_angle + m_ViewAngle * DEG2RAD ) * l_length;
//obj_add( l_xx, l_yy, "Mario");
یکی کمک کنه !
خسته شدم انقدر فکریدم !:گریه:
اینو نمونه رو دان کنید !:لبخند:
http://uploadkon.ir/?file=New folder_39.rar
با وسط موس می ره اینور اونور با اسکرول هم زوم می کنه !
کلیک راست رو نگه دارین و موسو حرکت بدین می چرخونه !
با کلیک چپ ابجکت رو می زاره تو نقطه کلیک شده !
:گریه:
:گریه:
:گریه:
:ناراحت:
من یه کلاس صحنه دارم که این چیزا رو داره ::
View_X
View_Y
View_Scale_X
View_Scale_Y
View_Rotation
برفرض اینکه مقادیر پیفرضش اینا باشه (به ترتیب )
100
100
0.5
0.5
45
من می خوام وقتی روی پنجره بازی کلیلک می کنم (بر فرض در نقطه 400 در 300)
معادل این نقطه تو محیط بازی رو بدست بیارم و یه ابجت تو اون قسمت بزارم !
مثلا تو حالت خیلی ساده View_X + Mouse_X کنیم حله !
ولی الان من مقباس و چرخش هم دارم !
من یه فرمول من دراوردی درست کردم مشکلش اینه که فقط چرخشش کار نمی کنه !:متفکر:
وقتی می چرخونم یه چیز دیگه میشه !
چی بنویسم تا درست شه !
الان من ته زورمو زدم اینو نوشتم !:ناراحت:
/*******************
m_WindowWidth = 800;
m_WindowHeight = 600;
m_View_Scale_X = 0.5f
m_View_Scale_Y = 0.5f
m_ViewX = 100;
m_ViewY = 100;
m_ViewAngle = 45f;
m_MouseX = 400;
m_MouseY = 300;
********************/
float l_halfW = m_WindowWidth / 2;
float l_halfH = m_windowHeight / 2;
float l_n1 = 1.0f / m_View_Scale_X;
float l_n2 = 1.0f / m_View_Scale_Y;
float l_xx = m_ViewX + (m_MouseX * l_n1 - (l_n1 * l_halfW - l_halfW));
float l_yy = m_ViewY + (m_MouseY * l_n2 - (l_n2 * l_halfH - l_halfH));
float l_angle = atan2f(l_yy , l_xx );
float l_length = sqrt( l_xx*l_xx + l_yy*l_yy);
l_xx = cosf( l_angle + m_ViewAngle * DEG2RAD ) * l_length;
l_yy = sinf( l_angle + m_ViewAngle * DEG2RAD ) * l_length;
//obj_add( l_xx, l_yy, "Mario");
یکی کمک کنه !
خسته شدم انقدر فکریدم !:گریه:
اینو نمونه رو دان کنید !:لبخند:
http://uploadkon.ir/?file=New folder_39.rar
با وسط موس می ره اینور اونور با اسکرول هم زوم می کنه !
کلیک راست رو نگه دارین و موسو حرکت بدین می چرخونه !
با کلیک چپ ابجکت رو می زاره تو نقطه کلیک شده !
:گریه:
:گریه:
:گریه:
:ناراحت: