প্রকল্প সম্পর্কে

Litecanvas হল একটি হালকা ওজনের HTML5 canvas 2D ইঞ্জিন, যা ছোট ওয়েব গেম, প্রোটোটাইপ, গেম জ্যাম, অ্যানিমেশন, ক্রিয়েটিভ কোডিং এবং গেম প্রোগ্রামিং শেখার জন্য তৈরি। প্রজেক্টটি আলফা হিসেবে চিহ্নিত, তাই ব্রেকিং পরিবর্তন ঘটতে পারে। README-তে বর্ণিত মূল বৈশিষ্ট্যগুলো: - ক্ষুদ্র আকার: প্রায় 4KB মিনিফাইড এবং gzipped। - সহজ API: আকৃতি আঁকার জন্য ছোট একটি ফাংশন সেট এবং ইউটিলিটি হেল্পার। - সাউন্ড ইফেক্ট বাজানো বা তৈরি করার জন্য ZzFX ইন্টিগ্রেশন। - litecanvas কীওয়ার্ডের অধীনে প্রকাশিত প্লাগইনের মাধ্যমে এক্সটেনসিবল। - গেম কোডিং এবং শেয়ার করার জন্য একটি ওয়েব প্লেগ্রাউন্ড, যা অফলাইনে ব্যবহারযোগ্য। শুরু করার বিকল্পগুলোর মধ্যে রয়েছে unpkg বা jsDelivr থেকে সরাসরি HTML স্ক্রিপ্ট ট্যাগ, Node/NPM ব্যবহারকারীদের জন্য একটি ESM টেমপ্লেট এবং ব্রাউজার প্লেগ্রাউন্ড। ইঞ্জিনটি একটি litecanvas() এন্ট্রি পয়েন্ট উন্মুক্ত করে, যা width, height এবং init, update ও draw কলব্যাকসহ একটি loop অবজেক্টের মতো কনফিগারেশন গ্রহণ করে। update এবং draw প্রতি সেকেন্ডে 60 বার চালানো হয় বলে বর্ণনা করা হয়েছে। API-তে রয়েছে: - ইনডেক্স দ্বারা অ্যাক্সেসযোগ্য একটি ডিফল্ট চার-রঙের প্যালেট, যা pal() দিয়ে কাস্টমাইজযোগ্য। - text() দিয়ে টেক্সট রেন্ডারিং, মাল্টি-লাইন স্ট্রিংসহ। - আকৃতি আঁকা: rect, rectfill, circ, circfill, oval এবং ovalfill। - স্ট্রিং থেকে সংজ্ঞায়িত স্প্রাইট, যেখানে অক্ষরগুলো প্যালেট রঙে ম্যাপ হয় এবং ডট স্বচ্ছ। - paint() দিয়ে অফস্ক্রিন ইমেজ তৈরি, যা বারবার আঁকার জন্য ক্যাশ হিসেবে কার্যকর, এবং image() দিয়ে লোড করা PNG/JPG ফাইল আঁকা। - ইনপুট হ্যান্ডলিং: কীবোর্ডের জন্য iskeydown, iskeypressed এবং lastkey; ক্লিক ও টাচের জন্য একটি tapped কলব্যাক; মাউস পজিশনের জন্য MX এবং MY ভেরিয়েবল। - ক্যানভাস সাইজ, অতিবাহিত সময় এবং কোণ ধ্রুবকের জন্য গ্লোবাল ভেরিয়েবল W, H, T, PI এবং TAU। প্রজেক্ট সাইটের একটি চিটশিট সম্পূর্ণ API তালিকাভুক্ত করে। রিপোজিটরিতে বাউন্সিং বল, একটি স্ক্রলার, একটি 3D প্রজেকশন এবং একটি রেন্ডারিং বেঞ্চমার্কের মতো নমুনা ডেমো রয়েছে, samples ফোল্ডারে আরও রয়েছে। একাধিক ইমেজ, ফন্ট বা অডিও ফাইল লোড করার জন্য একটি অ্যাসেট লোডার প্লাগইন সুপারিশ করা হয়। অবদান রাখার নির্দেশনায় ফর্কিং ও ক্লোনিং, npm দিয়ে ডিপেন্ডেন্সি ইনস্টল করা, ফরম্যাটিং, টেস্ট যোগ করা এবং পুল রিকোয়েস্ট খোলার আগে টেস্ট স্যুট চালানো অন্তর্ভুক্ত। লোকাল ডেভেলপমেন্টের জন্য Node.js প্রয়োজন। README-তে floppy, PICO-8, js13kGames, raylib, p5.js/Processing এবং Pygame Zero সহ অনুপ্রেরণাগুলোর কৃতিত্ব দেওয়া হয়েছে।