আমার গেমটিতে দুটি ক্লাস রয়েছে যা সত্যিই দরকারী তবে ধীরে ধীরে ব্যথা হয়ে উঠছে। বার্তা এবং সম্পত্তি (সম্পত্তি মূলত একটি উপাদান)।
এগুলি উভয়ই একটি বেস শ্রেণি থেকে প্রাপ্ত এবং একটি স্ট্যাটিক আইডি থাকে যাতে সিস্টেমগুলি কেবল তাদের পছন্দমতো মনোযোগ দিতে পারে। এটি খুব ভাল কাজ করছে ... বাদে ...
আমি আমার গেমটি প্রসারিত করার সাথে সাথে আমি ক্রমাগতভাবে নতুন বার্তার ধরণের এবং সম্পত্তির প্রকারগুলি তৈরি করছি। প্রতিবারে প্রয়োজনীয়ভাবে একটি শ্রেণিবদ্ধ এবং এক বা দুটি স্ট্যান্ডার্ড ডেটা টাইপ বা পয়েন্টার পাওয়ার জন্য আমাকে 2 টি ফাইল (এইচপিপি এবং সিপিপি) এবং একটি টন বয়লারপ্লেট লিখতে হবে।
এটি চারপাশে বাজানো এবং নতুন ধারণাগুলি একটি আসল কাজকর্ম পরীক্ষা করতে শুরু করে। আমি যখন আমি একটি নতুন বার্তা বা সম্পত্তির ধরণ তৈরি করতে চাই তখন আমি ঠিক এর মতো কিছু টাইপ করতে সক্ষম হতে চাই wish
ShootableProperty: int gunType, float shotspeed;
ItemCollectedMessage: int itemType;
একটি শিরোনাম এবং সিপিপি ফাইল তৈরির পরিবর্তে পিতামাতা বর্গ সহ একটি নির্মাণকারী লিখুন, ইত্যাদি etc.
এটি প্রায় 20 - 40 টি লাইনের মধ্যে রয়েছে (প্রহরী এবং সমস্ত কিছু অন্তর্ভুক্ত) কেবলমাত্র মনের মধ্যে 1 বা 2 লাইন যা যুক্তিযুক্ত তা করার জন্য।
এই কাছাকাছি পেতে কিছু প্রোগ্রামিং প্যাটার্ন আছে?
স্ক্রিপ্টিং সম্পর্কে (যা আমি কিছুই জানি না) ... এমন কি ক্লাসগুলির প্রায় একরকম সংজ্ঞা দেওয়ার কোনও উপায় আছে?
এখানে এক শ্রেণীর দেখতে ঠিক কেমন দেখাচ্ছে:
// Velocity.h
#ifndef VELOCITY_H_
#define VELOCITY_H_
#include "Properties.h"
#include <SFML/System/Vector2.hpp>
namespace LaB
{
namespace P
{
class Velocity: public LaB::Property
{
public:
static const PropertyID id;
Velocity(float vx = 0.0, float vy = 0.0)
: velocity(vx,vy) {}
Velocity(sf::Vector2f v) : velocity(v) {};
sf::Vector2f velocity;
};
} /* namespace P */
} /* namespace LaB */
#endif /* LaB::P_VELOCITY_H_ */
// Velocity.cpp
#include "Properties/Velocity.h"
namespace LaB
{
namespace P
{
const PropertyID Velocity::id = Property::registerID();
} /* namespace P */
} /* namespace LaB */
এগুলি কেবলমাত্র একটি 2 ডি ভেক্টর এবং একটি আইডি বলে যা 2D ভেক্টর আশা করে। (অনুমোদিত, কিছু বৈশিষ্ট্যে আরও জটিল উপাদান রয়েছে তবে এটি একই ধারণা)