আমি যে গেমটি বিকাশ করছি তার জন্য আমি এলোমেলোভাবে উত্পন্ন পরিবেশ তৈরি করছি। আমি ব্যবহার OpenGL
এবং কোডিং করছি Java
।
আমি আমার পৃথিবীতে এলোমেলোভাবে গাছ রাখার চেষ্টা করছি (একটি বন তৈরি করতে), তবে আমি চাই না মডেলগুলি ওভারল্যাপ হয়ে যায় (যা ঘটে যখন দুটি গাছ একে অপরের খুব কাছাকাছি স্থাপন করা হয়)। এখানে আমি যা বলছি তার একটি চিত্র:
আমি প্রয়োজনে আরও কোড সরবরাহ করতে পারি তবে প্রয়োজনীয় স্নিপেটগুলি এখানে। আমি আমার জিনিসগুলি একটি ArrayList
সাথে সঞ্চয় করছি List<Entity> entities = new ArrayList<Entity>();
। তারপরে আমি সেই তালিকায় যুক্ত হয়ে যাচ্ছি:
Random random = new Random();
for (int i = 0; i < 500; i++) {
entities.add(new Entity(tree, new Vector3f(random.nextFloat() * 800 - 400,
0, random.nextFloat() * -600), 0, random.nextFloat() * 360, 0, 3, 3, 3);
}
যেখানে প্রতিটি Entity
নীচের বাক্য গঠন অনুসরণ করে:
new Entity(modelName, positionVector(x, y, z), rotX, rotY, rotZ, scaleX, scaleY, scaleZ);
rotX
x- অক্ষ বরাবর ঘূর্ণন এবং scaleX
এক্স-দিকের স্কেল ইত্যাদি
আপনি দেখতে পাচ্ছেন যে আমি এই গাছগুলিকে এলোমেলোভাবে স্থান এবং অবস্থানের random.nextFloat()
জন্য রেখে দিচ্ছি x
এবং z
সীমার সীমাবদ্ধ করছি যাতে গাছগুলি কাঙ্ক্ষিত স্থানে প্রদর্শিত হবে। তবে আমি এই অবস্থানগুলিকে একরকম নিয়ন্ত্রণ করতে চাই, যাতে এটি যদি আগের গাছের খুব কাছাকাছি একটি গাছ রাখার চেষ্টা করে তবে এটি একটি নতুন এলোমেলো অবস্থান পুনরায় গণনা করবে। আমি ভাবছিলাম যে প্রতিটি গাছেই Entity
অন্য একটি ক্ষেত্র থাকতে পারে, যেমন treeTrunkGirth
, এবং যদি একটি গাছ অন্য গাছের অবস্থানের এবং এর মধ্যবর্তী স্থানে স্থাপন করা হয় treeTrunkGirth
তবে এটি নতুন অবস্থান পুনরায় গণনা করবে। এটি সম্পাদন করার কোনও উপায় আছে?
আমি আরও কোড স্নিপেট এবং প্রয়োজনীয় হিসাবে বিশদ যুক্ত করে খুশি।
treeTrunkGirth
গাছ রাখার জন্য ন্যূনতম দূরত্ব নির্ধারণের জন্য ধ্রুবকের পরিবর্তে ব্যবহার করুন যদি তাদের পরিবর্তনের প্রয়োজন হয়।