مدخلی بر ساخت انیمیشن در آمیگا (قسمت اول)
نمایش (Display)
اولین چیزی که باید مشخص شود زمینه ای است که انیمیشن روی آن صورت می گیرد. اینکار با تعریف ساختار (structure) View انجام می شود. این ساختار مشخصه های نمایش را توصیف میکند
View از یک یا چند ViewPort تشکیل یافته که هر کدام یک ارتفاع، عرض، حالت نمایش داده تصویر، رنگها و موقعیت روی صفحه خاص خود را دارد ، ViewPortها بایستی بطور عمودی پشت سر هم بنشینند و با حداقل یک خط خالی (blank) از هم جدا شوند عرض آنها بایستی بصورت ۳۲۰ و یا ٦٤٠ پیکسل مشخص شود. دو یا چند ViewPort که دارای دقتهای افقی متفاوتی هستند میتوانند همزمان روی صفحه حضور داشته باشند. ViewPort از طریق Rasinfo به ساختار BitMap اشاره می کند ، که آنهم به بیت پلن های اصلی داده تصویر اشاره می کند
تعداد بیت پلنها حداکثر تعداد رنگها را مشخص ViewPort به می کند. همچنین ColorMap اشاره میکند ، که شبیه به حالت (mode) تعبیر می شود .
انیمیشن با اسپرایت
اسپرایتها «اشــــــیــــــاء» (objects) سخت افزاری هستند که از زمینه نمایش مجزا هستند. آمیگا میتواند هشت اسپرایت داشته باشد که هر کدام ۱۶ پیکسل عرض داشته و هر مقدار دلخواه ارتفاع دارد
گرچه تنها هشت اسپرایت وجود دارد ، ولکن بعد از آنکه به آخرین نقطه افقی اسپرایت روی صفحه رسیدیم میتوان دو مرتبه آن اسپرایت را استفاده کرد. هر اسپرایت میتواند سه رنگ داشته باشد بعلاوه
شفافیت و یا آنکه میتوان دو اسپرایت را به هم متصل کرده و تا پانزده رنگ به علاوه شفافیت داشت. با مشخص کردن مختصات X و Y اسپرایت و اشاره گر به منطقه ای از حافظه که تصویر شکل یافته اسپرایت را تعریف میکند، میتوان براحتی آنرا نمایش داد برای ایجاد انیمیشن با اسپرایت بایستی یا مختصات اسپرایت را عوض کنید و یا اشاره گر به داده تصویر را عوض کنید می بینید که برای ایجاد انیمیشن با اسپرایت کافیست تنها چند متغیر را عوض کرد و از اینرو این نوع انیمیشن توان پردازشی بسیار کمی از پردازنده را مصرف می کند و این خود به نوعی قدرت کامپیوتر را می رساند. هسته رام آمیگا چندین روش برای کنترل اسپرایتهای سخت افزاری عرضه میکند
GetSprite
یک اسپرایت سخت افزاری را برای استفاده اختصاصی کار (task) درخواست کننده اختصاص میدهد
ChangeSprite
اشاره گر به بیت مپ تصویر یک اسپرایت رزرو شده را تغییر میدهد. MoveSprite مختصات X و Y اسپرایت را مطابق درخواست تغییر میدهد .
FreeSprite
یک اسپرایت رزرو شده را به سیستم باز میگرداند.
برای استفاده از اسپرایتهای سخت افزاری در سیستم انیمیشن، هسته رام آمیگا ساختاری بنام VSprite (اسپرایت مجازی) تعریف میکند.
اطلاعات اسپرایت مثل ،داده، رنگ، کشف برخورد و بافر دوبل در ساختار VSprite نگهداری میشوند. اسپرایتها برای کارهای انیمیشن بسیار ساده و راحت هستند ولكن محدودیتهائی هست که باید در نظر گرفت:
تعداد محدودی اسپرایت در دسترس بوده و هر کدام اندازه محدودی دارند. بنابراین اگر بخواهید منطقه بزرگی را به حرکت در آورید ، اسپرایتها مناسب نیستند یک اسپرایت به تنهایی سه رنگ دارد و اسپرایتهای متصل بهم (چسبیده بهم) میتوانند تا پانزده رنگ داشته باشند ، در حالیکه نمایش زمینه ای میتواند تا سی و دو (۳۲) رنگ داشته باشد. اگر از VSprite یا اسپرایت های سخت افزاری استفاده می کنید، بیت حالت SPRITES در ساختار ViewPort بایستی ست
شده باشد.
ادامه دارد ...