سؤال

أحتاج إلى تقديم طلب في .NET CF بنماذج مختلفة/مفردة مع الكثير من الرسم/الرسوم المتحركة في كل نموذج. أفضل أن يكون لدي وظيفة تحديث واحدة [خاصة بي لإدارة الحالة وما إلى ذلك] حتى أتمكن من إدارتها الحالات المختلفة، بحيث يعمل [J2ME Gaming Code] الخاص بي دون الكثير من التغييرات. لقد توصلت إلى بعض السيناريوهات المحتملة.أي واحد سيكون مثاليا؟

  1. احصل على نموذج واحد وقم بإضافة/حذف عناصر التحكم يدويًا، ثم استخدم أيًا من حيل تكرار اللعبة.
  2. أنشئ نماذج مختلفة باستخدام عناصر التحكم واستدعاء التحديث وapplication.doEvents() في سلسلة المحادثات الرئيسية.[ while(isAppRunning){ UPDATE() Application.DoEvents() }
  3. قم بإنشاء تحديث - قم برسم حلقة على كل نموذج كما هو مطلوب.
  4. أي أفكار أخرى.

من فضلك أعطني اقتراحا بشأن هذا

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

المحلول

إذا كانت لعبة، فسأسقط معظم النماذج وأعمل بالأساسيات، وأعمل على صورة نقطية إن أمكن وأعرض ذلك إما عن طريق تجاوز طريقة طلاء النموذج الرئيسي أو عنصر التحكم الموجود داخلها (ربما لوحة).سيعطيك ذلك أداء أفضل.

تكمن المشكلة الرئيسية في أن إطار العمل المدمج ليس مصممًا حقًا للكثير من متعة واجهة المستخدم، ولا تحصل على تخزين مؤقت مزدوج مجانًا كما هو الحال في الإطار الكامل، فالشفافية المناسبة لا علاقة لها بعناصر تحكم WinForm وإذا تمسكت بها إذا استمر مؤشر ترابط واجهة المستخدم لفترة طويلة جدًا، فستواجه مواطن خلل خطيرة في العرض.الجحيم قد تحصل حتى على تلك الأشياء إذا فعلت الكثير في المواضيع الخلفية!:يا

لن تحصل أبدًا على الأداء الأمثل من الاتصال الصريح بـ Application.DoEvents، وقاعدتي الأساسية هي استخدام ذلك فقط عند استكشاف الأخطاء وإصلاحها أو كتابة اختراقات صغيرة في واجهة المستخدم.

قد يكون من المفيد لصق اللعبة على سلسلة رسائل في الخلفية ثم الاتصال بـ .استدعاء عنصر التحكم لتنظيم العودة إلى سلسلة رسائل واجهة المستخدم الرئيسية لتحديث شاشتك، مما يترك واجهة المستخدم متسعًا من الوقت للاستجابة أثناء التعامل أيضًا مع مدخلات المستخدم.يعد إدخال المستخدم سببًا آخر لتجنب عناصر التحكم winform العادية، نظرًا لأن الأجهزة المحمولة عمومًا لا تحتوي على العديد من المفاتيح، فمن المفيد جدًا أن تكون قادرًا على إعادة تعيينها، لذلك أتجنب عمومًا أشياء مثل TextBoxes التي تحتوي على أحداث/استجابات رئيسية محددة مسبقًا.

أود أيضًا تجنب استخدام نماذج مختلفة لأن إظهار نموذج جديد يمكن أن يوفر توقفًا مؤقتًا، وأقوم عمومًا بتبديل عناصر التحكم إلى نموذج رئيسي لتجنب هذه المشكلة عند كتابة برامج الأعمال.

في نهاية المطاف، ربما يكون من المفيد تجربة تقنيات مختلفة لمعرفة ما هو الأفضل.تحقق أيضًا مما إذا كان بإمكانك الحصول على أي نصائح من الأشخاص الذين يطورون الألعاب على CF لأنني بشكل عام أقوم فقط ببرامج الأعمال.

هث!

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