SycroX Posted August 19, 2016 Share Posted August 19, 2016 شباب معلش علي الأزعاج بس انا عندي مشكلة كبيرة بجد مقاسات الشاشة عندي ما تظبت للكل اكتر من مود و اكتر من لوحة او اكتر من شي دي اكس اسويهم و اخليهم لكل الشاشات ما تظبت جربت Relative في الجاي اديتور ما ظبتت جربت x, y = guiGetScreenSize() rx, ry = (x/1280), (y/800) بردو مو نافعة جربت جربت كل الطرق ما في ولا طريقة نفعت مقاس شاشتي 1280 × 800 × 32 حد عندو طريقة اظبت بها المقاسات لانها اكبر مشكلة عندي هي Link to comment
^iiEcoo'x_) Posted August 19, 2016 Share Posted August 19, 2016 سويت لك فنكشن يسهل عليك : getPosition = function ( x, y, sx, sy ) if type( x ) =='number' and type( y ) == 'number' and type ( sx ) == 'number' and type ( sy ) == 'number' then local sc = { guiGetScreenSize ( ) } local screenX, screenY = sc[1] * ( x / sx ), sc[2] * ( y / sy ) return screenX, screenY end return false end getPosition ( x, y, sx, sy ) -- x احداثيات -- y احداثيات -- sx مقاس الشاشه -- sy مقاس الشاشه مثال : local x,y = getPosition ( 5, 5, 1366, 768 ) window = guiCreateWindow ( x, y, 50, 100, 'Test', false ) Link to comment
Rockyz Posted August 19, 2016 Share Posted August 19, 2016 آلسلام عليكم guiSetPos الفنكشن هو عبارة عن انه يضبط لوحة ألــ GUI على جميع الشاشت طبعا واضح من الاسم فقط للــ GUI Syntax: bool guiSetPos ( GUI theGUI, float x, float y, bool Relative ) Source Code : function guiSetPos ( theGUI, x, y, Relative ) if ( ( isElement ( theGUI ) ) and ( getElementType ( theGUI ):find( "gui-" ) ) ) then if ( ( theGUI ) and ( x ) and ( y ) ) then local px, py = guiGetScreenSize ( ); local hx, hy = guiGetPosition ( theGUI, Relative ); guiSetPosition ( theGUI, hx * px / x, hy * py / y, Relative ); return true else return false end else return false end end طريقة الاستخدام : طبعا واضح من الساينتكس bool guiSetPos ( GUI theGUI الزر او الوحة او اي شي, float x احداثيات شاشتك x, float y احداثيات شاشتك y, bool Relative طبعا تحصل هذا من عبر الوحة او الـgui ) كيف تحصل ال Relative ? GUIEditor.window[1] = guiCreateWindow(396, 187, 377, 256, "Test", false << Relative ) Example : GUIEditor = { button = {}, window = {} } addEventHandler("onClientResourceStart", resourceRoot, function() GUIEditor.window[1] = guiCreateWindow(396, 187, 377, 256, "Test", false) guiWindowSetMovable(GUIEditor.window[1], false) guiWindowSetSizable(GUIEditor.window[1], false) guiSetAlpha(GUIEditor.window[1], 1.00) guiSetPos ( GUIEditor.window[1], 1366, 768, false ) guiSetVisible ( GUIEditor.window[1], false ) GUIEditor.button[1] = guiCreateButton(142, 73, 168, 41, "hi", false, GUIEditor.window[1]) guiSetProperty(GUIEditor.button[1], "NormalTextColour", "FFAAAAAA") end ) bindKey ( "F7", "down", function ( ) guiSetVisible ( GUIEditor.window[1], not guiGetVisible ( GUIEditor.window[1] ) ) showCursor ( guiGetVisible ( GUIEditor.window[1] ) ) end ) function guiSetPos ( theGUI, x, y, Relative ) if ( ( isElement ( theGUI ) ) and ( getElementType ( theGUI ):find( "gui-" ) ) ) then if ( ( theGUI ) and ( x ) and ( y ) ) then local px, py = guiGetScreenSize ( ); local hx, hy = guiGetPosition ( theGUI, Relative ); guiSetPosition ( theGUI, hx * px / x, hy * py / y, Relative ); return true else return false end else return false end end Author : ~xiRoc[K]#^ Wiki Page : ماعرف كيف احطه في الويكي طبعا ماحصلت اسم للـوضيفة خليته كذا اي خطأ قول ليي والسلام عليكم Link to comment
Abdul KariM Posted August 19, 2016 Share Posted August 19, 2016 انصحك بـ GUI انت تستخدم لوحات CenterWindow Link to comment
فاّرس Posted August 20, 2016 Share Posted August 20, 2016 ^ يمكن يبيها بالزاويه او شي زي كذا .. [6ArH]#~Ecoo~ المهم شوف رد الاخ ^ ولا يهونون الباقين .. وشوف ذا ردي ف موضوع قديم : شوف جرب هالطريقه : شوف حبيبي هذي طريقه سهله جدا , local x, y = guiGetScreenSize ( ) -- تجيب مقاسات الشاشه local sx, sy = 1366, 768 -- تحط مقاس الشاشه حقك local resX, resY = 100, 200 -- تحط الاحداثيات الطول والعرض local screenX, screenY = x * ( resX / sx ), y * ( resY / sy ) -- عمليات ضرب وقسمه عشان تصير نفس المقاس لكل الشاشات : الي عليك انك تبدل التالي السطر الثاني , تحط مقاس الشاشه حقك , طبعا ذا مثال على مقاس شاشتي السطر الثالث , تحط الاحداثيات للطول والعرض راح تحتاج تخلي الخط لكل الشاشات , الي عليك تسويه كذا, dxDrawText لو استخدمت الوظيفه local x, y = guiGetScreenSize ( ) local sx, sy = 1366, 768 local resX, resY = 300, 400 local screenX, screenY = x * ( resX / sx ), y * ( resY / sy ) x * ( size / sx ) -- نضرب مقاسات الشاشه في حاصل قسمه الحجم على مقاس الشاشه بالحجم المطلوب size استبدل وللمعلوميه اذا استخدمت gui الطريقه تنفع مع الدي اكس او الـ dxDrawText تحتاج الكود اللي فوق عشان حجم الخط . Link to comment
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now