আমি এমন একটি গেম তৈরি করছি যেখানে শত্রুরা মানচিত্রে এলোমেলোভাবে ছড়িয়ে পড়ে তারপর প্রতিটি ফ্রেমকে এলোমেলো গতিতে প্লেয়ারের দিকে এগিয়ে যায়। মানচিত্রে কোনও বাধা নেই তাই শত্রুরা সবসময় একটি সরলরেখায় চলে যায়। আমি কয়েকবার আন্দোলনের ফাংশনটি লিখেছি তবে শত্রুরা সর্বদা 0, 45, 90, 135, 180, 225, 270, 315 কোণগুলিতে আঘাত করে তবে তা কখনও সরলরেখা নয় no কোডের উদাহরণ এখানে:
base_speed = random();
diff_x = abs(enemy_y_pos - player_x_pos);
diff_y = abs(enemy_x_pos - player_y_pos);
if (diff_x > diff_y) {
y_speed = base_speed;
} else if (diff_y > diff_x) {
x_speed = base_speed;
}
if (enemy_x_pos < player_x_pos) {
velocity.x = x_speed;
} else if (enemy_x_pos > player_x_pos) {
velocity.x = -x_speed;
} else {
velocity.x = 0;
}
if (enemy_y_pos < player_y_pos) {
velocity.y = y_speed;
} else if (enemy_y_pos > player_y_pos) {
velocity.y = -y_speed;
} else {
velocity.y = 0;
}
enemy_x_pos = enemy_x_pos + velocity.x;
enemy_y_pos = enemy_y_pos + velocity.y;
গেম প্রোগ্রামিং এ এটি আমার প্রথম প্রচেষ্টা। আমি অনুমান করছি এটি ব্রেনহ্যামের লাইনের মতো আলগোরিদিম ব্যবহার করা উচিত ( http://en.wikedia.org/wiki/Bresenham%27s_line_algorithm ) তবে বাস্তবায়নের আমার প্রচেষ্টাতে একই সমস্যা রয়েছে have আমি কীভাবে শত্রুদের সরলরেখায় সরানো করব?