سؤال

أولا، بعض backstory:

أنا صنع ما قد يصل إلى أن يكون "roguelike"لعبة حتى أتمكن من إثارة بعض الأفكار المثيرة للاهتمام، لقد تطفو في رأسي. لن تكون اللعبة زحف زنزانة، ولكن في أي حال، ستجري الشاشة في Fasion مماثلة، بسيطة شخصيات ASCII.

أن يكون هذا هو ممارسة ذاتية، أنا يسعى إلى رمز معظمها بنفسي.

في النهاية أود الحصول على لعبة Runnable على عوالم لعبة كبيرة بشكل تعسفي. (إلى النقطة التي تتصور فيها، قم بتشغيل اللعبة الشبكة وتمتد عبر العديد من الشاشات في مختبر الكمبيوتر).

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


والآن السؤال:

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

وجود عالم لعبة أن كبير سيتطلب تحديث ذكي للعرض. لا أريد أن أضطر إلى إعادة دفع عازلة لعبتي بالكامل كل إطار ... أحتاج إلى بعض المؤشرات حول كيفية إعداده حتى يتم تحديث أقسام اللعبة فقط. (وليس فقط الشخصيات الفردية كما حصلت الآن)

لقد تم التعامل مع وحدة التحكم في Windows عبر Windows.H، لكنني سأكون مهتما أيضا بتعيينه على أجهزة Linux عبر عميل المعجون متصل بالخادم.

لقد حاولت تكييف بعض إجراءات معالجة الفيديو، حيث يوجد نسبة تقريبا 1: 1 بين البكسل والشخصية، لكن لم يكن لدي حظ.

حقا أريد تفسيرا بسيطا لبعض المبادئ وراءها. ولكن بعض الأمثلة (PSUDO) رمز سيكون لطيفا أيضا.

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

المحلول

لن أؤدي إلى فهم هذا، لكنني أعتقد أن هذا قريب من القضية وراء الأسطوري جيمس جوسلينج gosling emacs. إعادة رسم كود. رؤية ورقته، بعنوان بشكل مناسب، "خوارزمية redisplay"، وكذلك عامة مشكلة تصحيح الخيط إلى السلسلة.

نصائح أخرى

استخدم اللعنات، أو إذا كنت بحاجة إلى القيام بذلك بنفسك، اقرأ حول رموز التحكم VTNNN. يجب أن يعمل كل من هذه على Windows وعلى * شروط وصناديق NIX (ويندوز). يمكنك أيضا استشارة شفرة المصدر Nethack للتلميحات. سيتيح لك ذلك تغيير الأحرف على الشاشة أينما حدثت التغييرات.

وجود عالم لعبة أن كبير سيتطلب تحديث ذكي للعرض. لا أريد أن أضطر إلى إعادة دفع عازلة لعبتي بالكامل كل إطار ... أحتاج إلى بعض المؤشرات حول كيفية إعداده حتى يتم تحديث أقسام اللعبة فقط. (وليس فقط الشخصيات الفردية كما حصلت الآن)

إن حجم عالم اللعبة غير مناسب حقا، حيث أن كل ما عليك فعله هو وضع المنطقة المرئية لكل عميل وإرسال تلك البيانات. إذا كان لديك شاشة وحدة تحكم 80x25 نموذجية، فأنت سترسل فقط 2 أو 3 كيلو بايت من البيانات في كل مرة، حتى لو قمت بإضافة رموز الألوان وما شابه ذلك. هذا هو نموذجي لمعظم الألعاب عبر الإنترنت من هذه الطبيعة: تحديث ما يمكن للشخص أن يراه، وليس كل شيء في العالم.

إذا كنت ترغب في تجربة محاولة إيجاد طريقة لخفض ما ترسله، فلا تتردد في القيام بذلك لأغراض التعلم، ولكننا حوالي 10 سنوات بعد النقطة التي لا يكون فيها غير فعالة لتحديث شاشة وحدة التحكم في شيء ما في الوقت الحقيقي، سيكون من العار إضاعة الوقت في تحديد مشكلة لا يحتاج إلى إصلاح. لاحظ أن قوات الدفاع الشعبي المرتبطة أعلاه يعطي حل O (ND) في حين أن مجرد إرسال وحدة التحكم بأكملها هو نصف O (N)، حيث يتم تعريف N كمجموع أطوال A و B و D.

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