Coordinate System
আগের আরত্টিকেল Math + Physics = Game পড়েছেন কি ?
শুন্য স্পেসে কোন একটি বস্তুর অবস্থান প্রকাশ করার জন্য আমরা Coordinate System ব্যবহার করে থাকি। জ্যামিতির অনেক ধরনের Coordinate System গুলোর মধ্যে Cartesian Coordinate System তুলনামূলকভাবে সহজ এবং তা 2D গেইমের জন্য খুবই উপযোগী।
Cartesian coordinate ব্যবস্থায়, যেকোন বস্তুর অবস্থান কিছু সংখ্যক নাম্বার দিয়ে প্রকাশ করা হয়ে থাকে। যেমন কোন 2D plane এ একটি বস্তুর অবস্থান প্রকাশ করার জন্য আমরা ২টি নাম্বার ব্যবহার করে থাকি, যাদেরকে একত্রে Point বলা হয় এবং (X, Y) ক্রম অনুসারে লিখা হয়। প্রথম নাম্বার দিয়ে প্রকাশ করা হয় Origin (0, 0) থেকে X-অক্ষ বরাবর বস্তুর অবস্থান আর দ্বিতীয় নাম্বার দিয়ে Origin (0,0) থেকে Y-অক্ষ বরাবর বস্তুর অবস্থান নির্দেশ করা হয়। যেমনটি নিচের চিত্রে দেখানো হয়েছে।
![cartesian_coordinate.jpg](res/image/cartesian_coordinate.jpg)
এখানে সবুজ বিন্দুটি X-অক্ষ এবং Y-অক্ষ থেকে যথাক্রমে ১ ইউনিট দূরে দেখানো হয়েছে। ডিজিটাল ডিসপ্লেতে বিভিন্ন Object বা বস্তুর অবস্থান এই Cartesian Coordinate ব্যবস্থা অবলম্বন করে দেখানো হয় যেখানে দূরত্বের ইউনিট হিসেবে Pixel ব্যাবহার করা হয় এবং Coordinate System এর Source বা Origin একটু ব্যতিক্রম হয়ে থাকে। Cartesian Coordinate ব্যবস্থায় আমরা Source বা Origin কল্পনা করি দুই অক্ষের Intersect Point কে। কিন্তু ডিজিটাল ডিসপ্লেতে যেমন মোবাইল, কম্পিউটার ইত্যাদির বেলায় Origin হিসেবে ধরা হয় Top-Left Corner এর পয়েন্ট বা বিন্দুকে।
![coordinate_in_action.png](res/image/coordinate_in_action.png)
![example_screen.png](res/image/example_screen.png)
বস্তুর পয়েন্টের X অথবা Y এর যে কোনটির মান যদি নেগেটিভ বা ডিসপ্লের সর্বমোট পিক্সলের থেকে বেশি হয় তাহলে ডিসপ্লেতে বস্তুটি দেখা যাবে না যদিও তা Programmatically draw হতে থাকবে। সুতরাং যখন বস্তুর পয়েন্ট নিয়ে আমরা কাজ করবো তখন আমাদের এই ব্যাপারটি মাথায় রাখতে হবে। তার মানে এই নয় যে আমরা চাইলে বস্তুর পয়েন্ট নেগেটিভ ধরতে পারবো না। এটা নির্ভর করে আমরা কি করতে চাই। যদি আমরা জানি যে আমরা কি করছি তাহলে ঠিক আছে। তা না হলে হয়ত তুমি বস্তুর পয়েন্ট দিয়ে রাখলে নেগেটভ কিছু কিন্তু ডিসপ্লেতে কিচ্ছু draw হচ্ছে না এবং তুমি ভাবছ অন্য কোথায় ভুল হয়েছে যা অনেকের বেলায় হয়ে থাকে। সুতরাং তা খেয়াল রাখতে হবে।
এই X, Y কাঠামো ব্যবস্থায় বস্তুর অবস্থান, অন্য বস্তুর সাথে Collision বা ধাক্কা, বস্তুগুলো মধ্যে Pixel Manipulation, Image Composition ইত্যাদি করা হয়, যা আমরা সামনে জানতে পারব।