ما هي أفضل طريقة لرسم "أزرار" قابلة للسحب في لعبة فيديو؟

StackOverflow https://stackoverflow.com/questions/7017

  •  08-06-2019
  •  | 
  •  

سؤال

أبحث عن أفكار حول كيفية رسم "زر" قابل للسحب في تطبيق لعبة.إذا استخدمت صورة ثابتة غير متجهة لخلفية الزر، فلن أستطيع تغيير حجم الزر بسهولة.إذا كتبت رمزًا لرسم زر يمكن تغيير حجمه (مثل رسم أزرار Windows)، فيجب على المبرمج أن يتدخل - وهذا يجعل السلخ صعبًا.هناك خيار آخر وهو تقسيم الزر إلى 9 صور أصغر (3×3) وتمديدها جميعًا - كما هو الحال مع الزوايا الدائرية التي تتم في HTML.

هل هناك طريقة أخرى "أسهل"؟ما هو النهج الأفضل؟

هل كانت مفيدة؟

المحلول

إذا كنت تريد حقًا تحقيق ذلك، فإن طريقة القيام بذلك هي باستخدام إحداثيات النسيج.تمامًا مثلما تفعل تصميم زر/لوحة قابلة للتمدد في HTML مع جدول، يمكنك ببساطة تحديد إحداثيات الأشعة فوق البنفسجية للزوايا، والمنطقة العلوية القابلة للتمدد، والمنطقة السفلية القابلة للتمدد، والمناطق الجانبية القابلة للتمدد، ثم الوسط.

للحصول على مثال على تنفيذ ذلك في محرك XNA (على الرغم من أنه محرك مغلق المصدر)، راجع هذا:http://www.flatredball.com/frb/docs/index.php?title=SpriteFrame_Tutorial

نصائح أخرى

نعم.أنا أعمل على محرر.إنها لغة تشبه XAML (أو تشبه لغة OpenLaszlo، إذا كنت تفضل ذلك) لـ XNA.لذلك يمكن للمحرر تغيير حجم الأزرار.يمكن أيضًا تغيير حجم الأزرار بواسطة ورقة الأنماط.

أعتقد أنك على حق أنه من المحتمل أن تكون جميع الأزرار بنفس الحجم في التصميم الحقيقي.ولكن حتى في تطبيق النافذة، تحتاج أحيانًا إلى جعل الزر أوسع لاستيعاب النص.

يجب أن يكون ممكنًا مع التظليل.من المحتمل أن تضطر إلى إجراء عمليات بحث عن texel، ولكنها ستقلل من عدد المثلثات في واجهة المستخدم المعقدة.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top