Popular Post #CroSs Posted July 27, 2017 Popular Post Share Posted July 27, 2017 ،وبعض الناس يحاولون يبرمجون مثل هالواجهات لكن تواجهم مشاكل، DX هالأيام كثرت الواجهات الي مصممة بوظائف الـ عشان كذا قررت انشر سكربت برمجته من زمان، لكن أعدت برمجته بالكامل مؤخرًأ ،السكربت راح يعطيك إمكانية تسوي نقاط (مساحات معينة من شاشة اللاعب) أو زر لأكون أوضح (focus لما اللاعب يسوي شيء معين على نقطة، يشتغل حدث بالشيء إلي سواه. مثلا: لما يدخل الماوس النقطة ،أو يضغط على النقطة، أو يركز على نقطة (الـ .طبعا في مميزات أكثر بنشرح أول كيف تستخدمه أولًا، السكربت مبرمج على أنه يكون خارجي exports أو من الجدول call بالوظيفة createPoint عشان تبدأ تستخدمه، تسوي استدعاء للوظيفة createPoint(x, y, width, height, relativeToWidth, relativeToHeight, parent) x, y: الإحداثيات width, height: حجم النقطة relativeToWidth, relativeToHeight: nil مقاس الشاشة المنسوب لها الإحداثيات والحجم (الشاشة إلي سويت بها النقطة) عشان يعدل المقاس لكل الشاشات. الاثنين لازم يكونون ارقام أو اثنينهم parent: أب النقطة. تستخدمه بالغالب عشان تخلي أولوية الماوس والضغط لأولاده لو كان الماوس عليهم (في كل هذي الأحداث هو النقطة نفسها source بعد ما تسوي النقطة، تقدر تستعمل هذي الأحداث عليها (ملاحظة: الـ onClientMouseEnterDP, onClientMouseLeaveDP: لما الماوس يدخل النقطة أو يطلع منها onClientDPClick: لما اللاعب يضغط على النقطة :يجي معه برامترين، هم button: (إذا انضغطت بالزر إلي بالنص (إلي ترفع وتنزل به middle أو right-click إذا كان right ،left-click إذا كان left يعبر عن الزر إلي انضغطت به النقطة. يكون state: إذا كان شايل يده عنه upإذا كان اللاعب ضاغط على الزر و down يكون onClientDPDoubleClick: onClientDPClick بنفس حالة button لما اللاعب يضغط مرتين على النقطة، يجي ببرامتر واحد وهو onClientDPFocus: لما اللاعب يركز على النقطة onClientDPBlur: لما اللاعب يشيل التركيز عن النقطة :السكربت يجي مع وظائف ثانية، عشان لو بغيت تعدل على خصائص النقطة، وهي ذول وظائف واضحين من اسمهم getPointPosition(point) setPointPosition(point, x, y) getPointSize(point) setPointSize(point, width, height) getPointParent(point) getPointCreatorResource(point) isMouseOverPoint(point) isPointFocused(point) :ذول يحتاجون توضيح getPointChildren(point) يرجع جدول فيه عناصر أطفال النقطة setPointEnabled(point, enabled) يفعل نقطة أو يعطلها. لما تعطلها يكون الوضع كأنها مو موجودة وبالتالي تجي لنا هذي الوظيفة isPointEnabled(point) setPointParent(point, parent) الحالي للنقطة (لو كان موجود) وراح يكون بدون أب parent النقطة. الأرقمنت الثاني اختياري، ولو ما حطيته راح يشيل الـ parent توضع bringPointToFront(point, getPropagated) (تقدم النقطة للأمام (النقاط إلي بالأمام دايمًا تكون أولوية الماوس لهم getPropagated: يعبر عن هل أن الوظيفة راح تقدم آباء النقطة بعد ولا لا boolean عبارة عن :للتوضيح Spoiler لو كانت عندك هالنقاط ،وبغيت تقدم النقطة 3 راح تجيك هالنتيجة ،getPropagated بدون تفعيل لكن لما تفعلها، راح يكون كذا validatePoint(point) boolean تتحقق إذا كانت النقطة صالحة، ترجع في وظائف ثانية، وقبل وما نشرحهم لازم نشرح شيء أول السكربت راح ينظم لك رندر النقاط وش يعني؟ لما ترسم مستطيل مثلًا، وبعدين ترسم مستطيل فوقه، المستطيل الثاني راح يطلع عليه مب وراه DX في وظائف الرسم ولأنك تبي النقاط الأولاد يطلعون فوق النقاط الآباء، السكربت ينظم لك هذا الشيء كيف؟ لو افترضت عندك هالنقاط لو جينا نسوي لهم رندر بالترتيب، لازم يكون الترتيب كذا عشان تطلع لنا هالنتيجة Point1, Point2, Point4, Point3 لو غيرت الترتيب وسويته كذا Point2, Point3, Point4, Point1 راح يكون كذا طيب كيف تسوي رندر للنقطة؟ لما لازم تسوي رندر للنقطة DXUI-Controller راح يتم استدعائه من السكربت exported function هالـ ،onPointRender في سكربتك اسمه exported function تحط بجيك برامتر واحد وقت الاستدعاء وهو النقطة إلي المفروض يصير لها رندر لأن لو سويت حدث راح يسبب لاق وبكذا ما راح يكون عملي exported function ملاحظة: خليت الرندر في تقدر تعطل رندر النقطة وتفعله بهالوظيفة setPointRenderingEnabled(point, enabled) أو تتحقق إذا كان مفعل ولا لا isPointRenderingEnabled(point) ملاحظة: الرندر مفعل افتراضيًا (السكربت الوحيد إلي يستدعى وقت رندر النقطة هو السكربت إلي سواها (افتراضيًا تقدر تعدل هذا الشيء بهالوظيفة allowOtherResourcesToRenderPoint(point, allow) (داخله (لو كانت موجودة onPointRender تسمح للسكربتات الأخرى بعمل رندر للنقطة، باستدعاء الوظيفة وتقدر تتحقق إذا كانت هالخاصية مفعلة ولا لا بهالوظيفة doesPointCreatorResourceAllowOtherResourcesToRender(point) ملاحظة: للأسف، لم أجد اسم اطول روابط التحميل النسخة الأصلية النسخة المصغرة 7 Link to comment
Jupi Posted July 27, 2017 Share Posted July 27, 2017 ممتاز ! تفوقت علي غيرك بس وش الفرق بين النسخة المصغرة و الاصلية ._. Link to comment
coNolel Posted July 27, 2017 Share Posted July 27, 2017 12 minutes ago, #DABL said: ممتاز ! تفوقت علي غيرك بس وش الفرق بين النسخة المصغرة و الاصلية ._. lol xDDDDDDDDDDD Link to comment
#BrosS Posted July 27, 2017 Share Posted July 27, 2017 46 minutes ago, #DABL said: ممتاز ! تفوقت علي غيرك بس وش الفرق بين النسخة المصغرة و الاصلية ._. النسخة المصغرة مصغرة والنسخة الأصلية أصلية 2 Link to comment
#CroSs Posted July 27, 2017 Author Share Posted July 27, 2017 (edited) 1 hour ago, #DABL said: ممتاز ! تفوقت علي غيرك بس وش الفرق بين النسخة المصغرة و الاصلية ._. الفرق أن النسخة الأصلية هي النسخة إلي برمجت عليها، أكواد السكربت مرتبة وكل جزء محطوط بملف خاص به أما المصغرة، كل شيء في ملف واحد لكل جانب والأكواد كلها في سطر ومصغر بشكل عام بالنسبة لتفوقت على الآخرين، ما حبيت هالجملة صراحة، لأنها مهينة للبعض بس شكرا على مرورك Edited July 27, 2017 by #CroSs 1 Link to comment
#BrosS Posted July 27, 2017 Share Posted July 27, 2017 1 hour ago, Dr.Marco said: ما شاء الله تطور واضح واصل أي تطور ؟ ض تدري منو كروس ذا ؟ Link to comment
Dr.Marco Posted July 27, 2017 Share Posted July 27, 2017 Just now, #BrosS said: أي تطور ؟ ض تدري منو كروس ذا ؟ المصري ? Link to comment
Rockyz Posted July 27, 2017 Share Posted July 27, 2017 (edited) 1 hour ago, Dr.Marco said: المصري ? انت مخربط بين 2 لا هذا شخص انت ماتعرفه شوف البروفايل حقه __________________________________ المهم كروس ابدعت الصراحة بدون مجاملة Edited July 27, 2017 by #,+( _xiRoc[K]; > Link to comment
Dr.Marco Posted July 27, 2017 Share Posted July 27, 2017 Just now, #,+( _xiRoc[K]; > said: لا هذا شخص انت ماتعرفه شوف البروفايل حقهش __________________________________ المهم كروس ابدعت الصراحة بدون مجاملة حسبته 1xCroos المهم بتوفيق له Link to comment
iMr.WiFi..! Posted July 28, 2017 Share Posted July 28, 2017 شغل مبدع من شخص أبدع في شغله : ) ^ ( مدري وش المعنى ) 10/10 شغل فنان ( المهم كفوو ي كروس وبتوفيق لك : Link to comment
Master_MTA Posted July 28, 2017 Share Posted July 28, 2017 صراحه ما فهمت شي لكن بالتوفيق Link to comment
</Mr.Tn6eL> Posted July 29, 2017 Share Posted July 29, 2017 يكون افضل واسهل oop عمل ممتاز سوي نسخة Link to comment
#CroSs Posted July 29, 2017 Author Share Posted July 29, 2017 (edited) 6 hours ago, said: يكون افضل واسهل oop عمل ممتاز سوي نسخة السكربت برمجته على أنه يكون منفصل، عشان لو أكثر من سكربت يستخدمه في وقت واحد في السكربت، ما بيقدروا يستخدموه في سكربت ثاني OOP حتى لو طبقت الـ بشكل عادي OOP يقدر يحط ذا الكود في سكربته ويطبق الـ ،OOP إلي مهتم بالـ local point = createElement("dxui-point") local pointMT = getmetatable(point) local Point = pointMT.__class function Point:getPosition() return exports["DXUI-Controller"]:getPointPosition(self) end function Point:setPosition(x, y) return exports["DXUI-Controller"]:setPointPosition(self, x, y) end function Point:getSize() return exports["DXUI-Controller"]:getPointSize(self) end function Point:setSize(width, height) return exports["DXUI-Controller"]:setPointSize(self, width, height) end function Point:isMouseOver() return exports["DXUI-Controller"]:isMouseOverPoint(self) end function Point:isFocused() return exports["DXUI-Controller"]:isPointFocused(self) end function Point:isEnabled() return exports["DXUI-Controller"]:isPointEnabled(self) end function Point:setEnabled(enabled) return exports["DXUI-Controller"]:setPointEnabled(self, enabled) end function Point:isRenderingEnabled() return exports["DXUI-Controller"]:isPointRenderingEnabled(self) end function Point:setRenderingEnabled(enabled) return exports["DXUI-Controller"]:setPointRenderingEnabled(self, enabled) end function Point:bringToFront(getPropagated) return exports["DXUI-Controller"]:bringPointToFront(self, getPropagated) end function Point:isOtherResourcesAllowedToRender() return exports["DXUI-Controller"]:doesPointCreatorResourceAllowOtherResourcesToRender(self) end function Point:allowOtherResourcesToRender(allow) return exports["DXUI-Controller"]:allowOtherResourcesToRenderPoint(self, allow) end local rootMT = getmetatable(root) function rootMT.__class:validate() return exports["DXUI-Controller"]:validatePoint(self) end local pointGet = pointMT.__get function pointGet:parent() return exports["DXUI-Controller"]:getPointParent(self) end function pointGet:children() return exports["DXUI-Controller"]:getPointChildren(self) end function pointGet:creatorResource() return exports["DXUI-Controller"]:getPointCreatorResource(self) end function pointMT.__set:parent(parent) return exports["DXUI-Controller"]:setPointParent(self, parent) end destroyElement(point) methods تقدر تستخدم ذول الـ Point:getPosition() Point:setPosition(x, y) Point:getSize() Point:setSize(width, height) Point:isMouseOver() Point:isFocused() Point:isEnabled() Point:setEnabled(enabled) Point:isRenderingEnabled() Point:setRenderingEnabled(enabled) Point:bringToFront(getPropagated) Point:isOtherResourcesAllowedToRender() Point:allowOtherResourcesToRender(allow) (العادية تشتغل على كل أنواع البيانات) elements ذي بتشتغل على كل الـ Element:validate() قابلة للقراءة فقط properties ذول Point.children Point.creatorResource أما ذي قابلة للقراءة والكتابة Point.parent (للي ما فهم شيء يستعمل الطريقة العادية (البرمجة الإجرائية ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ تحديث #1 setPointParent تم تعديل بق في الوظيفة النسخة الأصلية - النسخة المصغرة Edited July 29, 2017 by #CroSs 1 Link to comment
coNolel Posted July 29, 2017 Share Posted July 29, 2017 الله عليك بس صراحة تعب الدي إكس له طعم آخر خصوصا لو تطلع بالنتيجة اللي تبيها نصيحة لوجه الله حط بالقسم الأجنبي تلاقي إقبال آخر ، موفق إن شاء الله Link to comment
</Mr.Tn6eL> Posted July 29, 2017 Share Posted July 29, 2017 Quote في السكربت، ما بيقدروا يستخدموه في سكربت ثاني OOP حتى لو طبقت الـ تقدر function getPoint() return Point end 2 Link to comment
#CroSs Posted July 29, 2017 Author Share Posted July 29, 2017 5 minutes ago, </Mr.Tn6eL> said: تقدر function getPoint() return Point end ما ادري وش فايدة ذا بالضبط ممكن توضح؟ 1 Link to comment
</Mr.Tn6eL> Posted July 30, 2017 Share Posted July 30, 2017 خارجيا oopتقدر تسوي وظيفة ترجغ لك الكلاس وبعدين تسوي لها اكسبورت وكذا تقدر تستخدم ال 2 Link to comment
#CroSs Posted July 30, 2017 Author Share Posted July 30, 2017 (edited) 1 hour ago, said: خارجيا oopتقدر تسوي وظيفة ترجغ لك الكلاس وبعدين تسوي لها اكسبورت وكذا تقدر تستخدم ال اوكي فهمت عليك مع اني ما توقعت أنك تقدر ترسل جدول فيه methods أو وظائف بدون ما ينمسحون Edited July 30, 2017 by #CroSs 1 Link to comment
#CroSs Posted July 30, 2017 Author Share Posted July 30, 2017 مثل ما توقعت، الوظائف ينمسحون لما ترسل الكلاس loadstring لكن في طريقة بال 1 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