কিভাবে একটি shmup স্তর সংরক্ষণ করবেন?


12

আমি একটি 2 ডি শ্মআপ (অর্থাত অ্যারো ফাইটারস ) বিকাশ করছি এবং আমি ভাবছিলাম যে স্তরটি সঞ্চয় করার বিভিন্ন উপায়গুলি কী। ধরে নিই যে শত্রুরা তাদের নিজস্ব এক্সএমএল ফাইলে সংজ্ঞায়িত হয়েছে, যখন শত্রুরা স্তরে প্রসারিত হয় আপনি কীভাবে সংজ্ঞা দেবেন?

এটি কি সময় ভিত্তিক হবে? আপডেট চান? দূরত্ব?

বর্তমানে আমি "স্তর সময়" এর উপর ভিত্তি করে এটি করি (স্তরটি যে পরিমাণ সময় চলছে - বিরতি দিয়ে সময় আপডেট হয় না)। এখানে একটি উদাহরণ দেওয়া হয়েছে (সিরিয়ালাইজেশনটি এক্সএনএ দ্বারা সম্পন্ন হয়েছিল):

<?xml version="1.0" encoding="utf-8"?>
<XnaContent xmlns:level="pekalicious.xanor.XanorContentShared.content.level">
  <Asset Type="level:Level">
    <Enemies>
      <Enemy>
        <EnemyType>data/enemies/smallenemy</EnemyType>
        <SpawnTime>PT0S</SpawnTime>
        <NumberOfSpawns>60</NumberOfSpawns>
        <SpawnOffset>PT0.2S</SpawnOffset>
      </Enemy>
      <Enemy>
        <EnemyType>data/enemies/secondenemy</EnemyType>
        <SpawnTime>PT0S</SpawnTime>
        <NumberOfSpawns>10</NumberOfSpawns>
        <SpawnOffset>PT0.5S</SpawnOffset>
      </Enemy>
      <Enemy>
        <EnemyType>data/enemies/secondenemy</EnemyType>
        <SpawnTime>PT20S</SpawnTime>
        <NumberOfSpawns>10</NumberOfSpawns>
        <SpawnOffset>PT0.5S</SpawnOffset>
      </Enemy>
      <Enemy>
        <EnemyType>data/enemies/boss1</EnemyType>
        <SpawnTime>PT30S</SpawnTime>
        <NumberOfSpawns>1</NumberOfSpawns>
        <SpawnOffset>PT0S</SpawnOffset>
      </Enemy>
    </Enemies>
  </Asset>
</XnaContent>

প্রতিটি শত্রু উপাদান মূলত নির্দিষ্ট শত্রু প্রকারের একটি তরঙ্গ। টাইপটি এ্যানমিটাইপে সংজ্ঞায়িত করা হয়েছে যখন স্পোনটাইম "স্তরের সময়" এই তরঙ্গটি প্রদর্শিত হওয়া উচিত। নাম্বার অফস্প্যানস এবং স্পনঅফসেট হ'ল শত্রুগুলির সংখ্যা এবং যথাক্রমে প্রতিটি স্প্যানের মধ্যে যে সময় লাগে তা দেখাবে।

এটি একটি ভাল ধারণা হতে পারে বা সেখানে আরও ভাল হতে পারে। আমি নিশ্চিত নই. আমি কিছু মতামত এবং ধারণা দেখতে চাই।

এর সাথে আমার দুটি সমস্যা আছে: শত্রুকে সঠিকভাবে তৈরি করা এবং একটি স্তর সম্পাদক তৈরি করা। স্তর সম্পাদকের জিনিসটি সম্পূর্ণ ভিন্ন সমস্যা (যা আমি সম্ভবত ভবিষ্যতে পোস্ট করব: পি)।

সঠিকভাবে স্প্যানিংয়ের ক্ষেত্রে, সমস্যাটি আমার মধ্যে একটি পরিবর্তনশীল আপডেটের সময় থাকতে পারে এবং তাই স্প্যান অফসেটটি খুব ছোট হওয়ায়, বা আপডেটটি একটু বেশি সময় নিয়েছিল বলে আমার নিশ্চিত হওয়া দরকার need । আমি বেশিরভাগ অংশের জন্য এটি ঠিক করেছি, তবে আমার কাছে মনে হয় সমস্যাটি কীভাবে স্তরটি সঞ্চয় করি তা নিয়ে is

সুতরাং, কোন ধারণা? মন্তব্য?

তুমাকে অগ্রিম ধন্যবাদ.

উত্তর:


4

এটি করার একটি উপায় হ'ল স্প্যানটি সময়মতো নয়, অনুভূমিক দূরত্বের (পার্সক্রোলিং ধরে ধরে) বেজ করা। আপনি আপনার শত্রু তরঙ্গ একটি ট্রিগার দূরত্ব সহ একটি কাতারে সংরক্ষণ করতে পারেন; যখন আপনার প্লেয়ারের ভ্রমণ করা দূরত্বটি সারির সামনের দিকে অবজেক্টের ট্রিগার দূরত্বের চেয়ে বেশি হয়, তখন এটিকে সারি থেকে পপ করুন এবং স্প্যান করুন।

এই সমাধানটি সময়-ভিত্তিক সমাধানের চেয়ে গ্রাফিকাল স্তরের সম্পাদকের সাথে একীকরণের জন্য নিজেকে আরও ndণ দেবে। শত্রুরা যখন ফুটে উঠল তখন আপনার স্ক্রোলিংয়ের পটভূমিতে নির্দিষ্ট পয়েন্টগুলি মেলে এটি আরও সহজ করে তুলবে।


4
এবং বোনাস হিসাবে আপনি যদি বিশ্বজুড়ে বা স্তরের কোনও অংশের জন্য স্ক্রোলিংয়ের গতি পরিবর্তন করেন তবে এটি পরবর্তী শত্রুদের তাদের সঠিক স্পন পজিশনে রাখবে, কারণ যদি সময় ভিত্তিক হয় তবে শত্রুরা সঠিক দাগগুলিতে ছড়িয়ে পড়ে।
অ্যাটাকিংহোব

2

আমি আপনাকে রেফারেন্স হিসাবে পাওয়ারমঙ্গার কোডটি অধ্যয়ন করার পরামর্শ দিচ্ছি। তাদের দুটি ধরণের স্তর রয়েছে: সাইড-স্ক্রোলিং (টায়রিয়ান-জাতীয়) স্তরগুলি যেখানে স্তরগুলি স্তর থেকে নির্দিষ্ট দূরত্বে অবস্থিত থাকে এবং অন্যান্য জিনিসগুলি এলোমেলোভাবে উত্পন্ন হয় এবং "স্টিল" স্তর (à লা গালাগা) যেখানে কেবল একটি তরঙ্গ পার্স করা হয় পূর্ববর্তীটি এর ধরণটি শেষ করার পরে।

ওয়েভ প্যাটার্ন অবশ্যই দক্ষতার সাথে পরপর বেজিয়ার কার্ভ দ্বারা পরিকল্পনা করা যেতে পারে (এটি বোঝাতে উইকিপিডিয়া পৃষ্ঠায় একটি ঝরঝরে অ্যানিমেশন রয়েছে)।

যদি আমি চূড়ান্ত মন্তব্য করতে পারি তবে আমি এক্সএমএলকে এখানে আরও কিছু মতামতপূর্ণ, বজায় রাখা সহজ এবং এলএমইএ স্ক্রিপ্টের মতো গেম প্রোগ্রামিংয়ে আরও বেশি কার্যকর কিছু পক্ষে পরিণত করব drop

আছে HTH।


আমি শত্রুদের চলাচলগুলি সংরক্ষণ করতে ইতিমধ্যে বেজিয়ার কার্ভগুলি ব্যবহার করি (এটি এক্সএমএলেও সিরিয়ালযুক্ত)। আমি মূলত এক্সএমএল ব্যবহার করছি কারণ। নেট এবং এক্সএনএ উভয়ই সিরিয়ালাইজেশন / ডিসরিয়ালাইজেশনের জন্য অন্তর্নির্মিত সমর্থন করেছে। LUA স্ক্রিপ্টটি ভাল শোনাচ্ছে তবে এর জন্য আরও কাজ করা প্রয়োজন। যাইহোক, আমি সবসময় এটি ব্যবহার করার পরিকল্পনা করতাম, তাই কিছু বেসিক ইঞ্জিন শেষ করার পরে আমি অবশ্যই এটি যাচাই করব। ফিনাল্ট, আগেরটির পরে তরঙ্গ তৈরির ধারণাটি আকর্ষণীয় মনে হচ্ছে।
pek

2
এক্সএমএল ঠিক আছে, যতক্ষণ না এটি কোনও সরঞ্জাম দ্বারা উত্পাদিত হয়, এবং হাতে সম্পাদিত হয় না। স্ক্রিপ্টিং ভাষা বিশেষ-ক্ষেত্রে (যেমন বসগণ) এর জন্য কার্যকর হতে পারে, এটি স্ট্যান্ডার্ড আক্রমণের ধরণগুলি সংজ্ঞায়িত করার জন্য সম্পূর্ণ পৃথক সমস্যা, তাই না?
bluescrn

0

পদ্ধতিগতভাবে শত্রু উত্পন্ন করার বিষয়টি বিবেচনা করুন। আমি জানি আপনি যে উত্তরটি চান তা থেকে এটি সম্পূর্ণ আলাদা এবং এটি অপ্রত্যক্ষভাবে সমস্যাটিকে সম্পূর্ণ সমাধান করে।

যদি আমি এটি করি, তবে প্রতিটি শত্রু ইউনিটকে এটি কতটা কঠিন তার একটি "পয়েন্ট" মান নির্ধারণ করতাম, তারপরে স্তরগুলি কয়েকটি সংখ্যক পয়েন্ট নির্ধারণ করবো - 100 পয়েন্টের মূল্য একশ পয়েন্ট শত্রু, বা একটি 100-পয়েন্ট শত্রু, বা মধ্যে কিছু।

আপনার সম্ভবত এটি কিছুটা সীমাবদ্ধ করতে হবে যাতে আপনি প্রথম স্তরে 100-পয়েন্টের বস না পান, বা আপনার কিছু ন্যূনতম শত্রু রয়েছে এবং আপনি সম্ভবত পর্যায়ক্রমে শত্রুদের বামে তালিকাটি নির্বাচন করতে এবং টানতে চান পরেরটি অন স্ক্রিন

আপনি গঠনগুলি রেখে এটি আরও একধাপ এগিয়ে নিয়ে যেতে পারেন: অবস্থান এবং পয়েন্ট সংগ্রহ, যেমন। একটি একক লাইনে সাতটি এক-পয়েন্ট শত্রু, বা দুটি 3-পয়েন্ট দ্বারা ফ্ল্যাঙ্ক করা একটি পাঁচ-পয়েন্ট।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.