الألعاب :: lineofsight.

الألعاب :: lineofsight هي وحدة بيرل.
التحميل الان

الألعاب :: lineofsight. الترتيب والملخص

الإعلانات

  • Rating:
  • رخصة:
  • Perl Artistic License
  • السعر:
  • FREE
  • اسم الناشر:
  • Ville Jungman
  • موقع ويب الناشر:
  • http://search.cpan.org/~viljun/Games-Lineofsight-1.0/Lineofsight.pm

الألعاب :: lineofsight. العلامات


الألعاب :: lineofsight. وصف

الألعاب :: lineofsight هي وحدة بيرل. الألعاب :: LineOFight هي لعبة Perl Module.many (Ultima، Nethack) استخدم خرائط ثنائية الأبعاد تتكون من المربعات من نفس الحجم في الشبكة. خط البصر يعني أن بعض المربعات قد تمثل العناصر التي تمنع رؤية اللاعب من رؤية المربعات وراءهم. باستخدام هذه الوحدة، يمكنك إضافة هذا السلوك إلى ألعابك. استخدم الألعاب :: Lineofsight QW (Lineofsight)؛ # يجب أن تكون الخريطة صفيف ثنائي الأبعاد. يمثل كل عضو (أو "خلية") من الصفيف مربع رقم واحد في الخريطة. في هذا المثال، تحتوي كل خلية على حرف واحد فقط ولكن يمكنك وضع السلاسل # إلى الخلايا أيضا - عملية مع الألعاب الرسومية. بلدي @ خريطة = (، # هذه هي الخريطة ، #. و: يمثل الأرض ، # X هو الحاجز للعصر ، ،)؛ بلدي (العرض $) = العددية (@ @ خريطة })؛ # عرض الخريطة الخاصة بي ($ الارتفاع) = scalar (map)؛ # ارتفاع الخريطة بلدي ($ barrier_str) = "x"؛ # سلسلة التي تمثل الحاجز ($ hidden_str) = "*"؛ # سلسلة التي تمثل خلية وراء حاجز بلدي ($ man_str) = "@"؛ # سلسلة التي تمثل المشاهد ($ man_x، $ man_y) = (7،3)؛ # إحداثيات النقاط # - المشغل هنا # إعادة إنشاء الخريطة مع خط البصر @ الخريطة = lineofight (@ الخريطة، $ man_x، $ man_y، $ barrier_str، $ hidden_str)؛ # ارسم الخريطة ل (بلدي $ i = 0؛ $ i <$ الارتفاع؛ $ i ++) {for (بلدي $ j = 0؛ $ j <$ العرض؛ $ j ++) {print $ man_x == $ J $ man_y = = $ الأول؟ Man_str: خريطة $ ؛ } طباعة "ن"؛ } أو # lineofsight () يدعو get_barriers () وتحليل_MAP () في كل مرة يطلق عليها. إذا كان "المشاهد" يتحرك حول الخريطة كثيرا، فهو أسرع بكثير قراءته في الحواجز مرة واحدة والاتصال فقط # analyze_map () في كل مرة قبل رسمه. استخدام الألعاب :: lineofsight qw (get_barriers analyze_map)؛ # يجب أن تكون الخريطة صفيف ثنائي الأبعاد. يمثل كل عضو (أو "خلية") من الصفيف مربع رقم واحد في الخريطة. في هذا المثال، تحتوي كل خلية على حرف واحد فقط ولكن يمكنك وضع السلاسل # إلى الخلايا أيضا - عملية مع الألعاب الرسومية. بلدي @ خريطة = (، # هذه هي الخريطة ، #. و: يمثل الأرض ، # X هو الحاجز للعصر ، ،)؛ بلدي (العرض $) = العددية (@ @ خريطة })؛ # عرض الخريطة الخاصة بي ($ الارتفاع) = scalar (map)؛ # ارتفاع الخريطة بلدي ($ barrier_str) = "x"؛ # سلسلة التي تمثل الحاجز ($ hidden_str) = "*"؛ # سلسلة التي تمثل خلية وراء حاجز بلدي ($ man_str) = "@"؛ # سلسلة التي تمثل المشاهد ($ man_x، $ man_y) = (7،3)؛ # عرض النقاط الإحداثيات - المشغل هنا # Get_Barriers () إرجاع التجزئة مع المعلومات حول الحواجز في الخريطة. في هذا المثال، نعل الإعلان عن "X" - الشارقة كحاجز. كما يمكنك أن تعلن أنه سلسلة في الألعاب الرسومية. على سبيل المثال "barrier.jpg". بلدي rrier = get_barriers (عرض $، ارتفاع $، @ الخريطة، $ barrier_str)؛ # تحليل_map () إرجاع صفيف يحتوي على الخريطة الأصلية بدا من نقطة العرض. يتم استبدال الخلايا # وراء الحواجز بأسلوت معينة. يجب إخبار الحواجز بالحروط الفرعي # يدعو أولا get_barriers () - الروتين الفرعي كما فعلنا بالفعل. بلدي @ map2 = analyze_map (العرض $، ارتفاع $، @ الخريطة، rrier، $ man_x، $ man_y، $ hidden_str)؛ #DRAW خريطة مع سيلة الطباعة "Noriginal خريطة: N"؛ رسم (العرض $، ارتفاع $، $ man_x، $ man_y، @ map2، $ man_str)؛ # نقل المشاهدين مربعين الأيمن $ man_x + = 2؛ # تحديث الخريطة بلدي @ map2 = analyze_map (العرض $، ارتفاع $، @ الخريطة، rrier، $ man_x، $ man_y، $ hidden_str)؛ #DRAW خريطة مرة أخرى طباعة "nviewer قد انتقل: n"؛ رسم (العرض $، ارتفاع $، $ man_x، $ man_y، @ map2، $ man_str)؛ السحب الفرعي {عرضي (عرض $، الارتفاع $، $ man_x، $ man_y، $ الخريطة، $ man_str) = @ _؛ ل (بلدي $ i = 0؛ $ i <$ الارتفاع؛ $ i ++) {for ($ j = 0؛ $ j <$ العرض؛ $ j ++) {print $ man_x == $ j $ man_y == $ ئيا؟ Man_str: الخريطة $ ؛ } طباعة "ن"؛ }} المتطلبات: متطلبات بيرل: perl.


الألعاب :: lineofsight. برامج ذات صلة