Jump to content

إستفسار بخصوص | guiGetScreenSize


Recommended Posts

ألسلام عليكم ورحمة الله وبركاته ..

ياعيال انا سويت لوحة وخشيت الويكي حصلت الفنكشن هذا

قلت اتابع شرح الويكي خطوه خطوه

سويته كذا ..

على اساس اني احط النافذه تشتغل على كل الشاشات

x,y = guiGetScreenSize() 
    function() 
        wnd = guiCreateWindow(x*483/1366, y*330/768, x*423/1366, y*117/768, "", false) 
end 

امم

1366 + 768 = مقاس الشاشه حقي داخل اللعبه

x*483/1366 .....

يعني ضربت اكس في 483 وقسمتها على 1366

بس ما ادري انا فاهم السالفه صح ولا مخبص في ام الكود

لأني باقي ماشتريت سيرفر وماقدر اجربه على نفسي بشوف عند غيري يضبط ولا ..

Link to comment

الطريقة اللي دايم استخدمها, احسن طريقة بـ النسبة لي

sX, sY = guiGetScreenSize() 
function() 
        wnd = guiCreateWindow( (sX/1366)*483, (sY/768)*330, (sX/1366)*423, (sY/768)*117, "", false ) 
end 
--1366, 768 = مقاس شاشتك 
-- 1366x768 

Link to comment
الطريقة اللي دايم استخدمها, احسن طريقة بـ النسبة لي
sX, sY = guiGetScreenSize() 
function() 
        wnd = guiCreateWindow( (sX/1366)*483, (sY/768)*330, (sX/1366)*423, (sY/768)*117, "", false ) 
end 
--1366, 768 = مقاس شاشتك 
-- 1366x768 

يعطيك العافيه ,

بس الطريقة مجربها انت مع احد ثاني ولا

Link to comment

شوف هذا انا مسويه يسوي الـ

gui

ع كل الشاشات

ما تنفع مع الدي اكس

  
function Position_Size(Wind) 
local x,y = guiGetScreenSize() 
local xm,ym = 800,600 
local x2,y2 = guiGetPosition(Wind,false) 
local x3,y3 = guiGetSize(Wind,false) 
guiSetPosition(Wind,x*x2/xm,y*y2/ym,false) 
guiSetSize (Wind, x*x3/xm,y*y3/ym,false)  
end 

مكان

local xm,ym = 800,600

رقم

800 ,600

تحط احداثيات شاشتك

طريقه الي تستخدمها

تحت الـ

gui

حط

Position_Size(نافذتك) 

مثال

  
 wnd = guiCreateWindow( ----------------------------- ) 
Position_Size(wnd) 

Link to comment

شوف حبيبي هذي طريقه سهله جدا ,

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 استبدل

Link to comment

* guiSetPositionAllScreen(guiElement,ScreenHieght,ScreenWidht)

متنآسقه مع جميع الشاشاتguiالوظيفه فايدتها تخلي اي حاجه من

ScreenHight,ScreenWidth = Setting-Videoطول وعرض شاشتك فاللعبه تاخذها من

مايصير تآخذ مود غيركguiطبعآ عشآن تكون متناسق مع جميع الشاشات يعني تكون بنفس المكآن لجميع الشآشآت لازم تكون انت الي مصمم ال

مصممها غيركguiوتستخدم له ذي الوظيفه لأنه ذي الوظيفه تعتمد على حجم شاشتك , يمديك تستخدم مود غيرك يعني

حقته مو حقتكScreenHight,ScreenWidthبس بشرط انك تحط

الوظيفه :

function guiSetPositionAllScreen(guiElement,ScreenH,ScreenW) 
    local LocalScreenH,LocalScreenW = guiGetScreenSize() 
    if ( isElement(guiElement) ) then 
        if ( ScreenH and ScreenW ) then 
            local x,y = guiGetPosition(guiElement,false) 
            guiSetPosition(guiElement,LocalScreenH*(x/ScreenH),LocalScreenW*(y/ScreenW),false) 
        end 
    end 
end 

المثال :

  
button = guiCreateButton(100,100,70,30,"Button",false) 
guiSetPositionAllScreen(button,800,600) 

guiSetPositionAllScreen الي عند اسم منآسب للوظيفه غير ذا

اتمنى يحط ألأسم :)

Link to comment

DX اذا تبي للـ

استخدم طريقتي, مجربة

الطريقة اللي دايم استخدمها, احسن طريقة بـ النسبة لي
sX, sY = guiGetScreenSize() 
function() 
        wnd = guiCreateWindow( (sX/1366)*483, (sY/768)*330, (sX/1366)*423, (sY/768)*117, "", false ) 
end 
--1366, 768 = مقاس شاشتك 
-- 1366x768 

Link to comment

GUI ولا DX افضل طريقة ومضمونة لجميع الشاشات هي طريقتي .. وطبعا تنفع مع اي شي لو كان

واللي طرحها ذا بيست

هذي امثله :

* ناقص الرندر طبعا .

local x, y = guiGetScreenSize ( ) 
local sx, sy = 1366, 768 
  
dxDrawImage( x * ( 300 / sx ), y * ( 150 / sy ), x * ( 250 / sx ), y * ( 450 / sy ), 'test.png' ) 
  
dxDrawText ( 'تجربة',  x * ( 200 / sx ), y * ( 100 / sy ), x * ( 15 / sx ), y * ( 10 / sy ), tocolor ( 255,255,255,255 ), x * ( 1.6 / sx ), 'sans' ) 
  
dxDrawLine ( x * ( 420 / sx ), y * ( 68 / sy ), x * ( 970 / sx ), y * ( 68 / sy ), tocolor(255,255,255,255) ) 
Link to comment
GUI ولا DX افضل طريقة ومضمونة لجميع الشاشات هي طريقتي .. وطبعا تنفع مع اي شي لو كان

واللي طرحها ذا بيست

هذي امثله :

* ناقص الرندر طبعا .

local x, y = guiGetScreenSize ( ) 
local sx, sy = 1366, 768 
  
dxDrawImage( x * ( 300 / sx ), y * ( 150 / sy ), x * ( 250 / sx ), y * ( 450 / sy ), 'test.png' ) 
  
dxDrawText ( 'تجربة',  x * ( 200 / sx ), y * ( 100 / sy ), x * ( 15 / sx ), y * ( 10 / sy ), tocolor ( 255,255,255,255 ), x * ( 1.6 / sx ), 'sans' ) 
  
dxDrawLine ( x * ( 420 / sx ), y * ( 68 / sy ), x * ( 970 / sx ), y * ( 68 / sy ), tocolor(255,255,255,255) ) 

يب يب جربتها وضبطت الي طرحها ذا بيست :computer:

Link to comment

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...