آموزش فایلهای باینری در گیم میکر به همراه سورس

۱۳۹۵/۰۷/۰۴
    |     9601 بازدید
    |     104 دانلود شده
    |     tfh1368
آموزش فایلهای باینری در گیم میکر  به همراه سورس

آموزش فایلهای باینری در گیم میکر به همراه سورس

همه ی اطلاعات در رایانه ها به صورت صفر و یک ذخیره می شوند. به فایل هایی که ساختار آن ها به صورت 

صفر و یک های پشت سر هم می باشد فایل های باینری می گویند. تمامی تصاویر، موسیقی ها، فیلم ها، حتی 

فایل های سورس گیم میکر به صورت باینری ذخیره شده اند.

قبل از استفاده از فایل های باینری می بایست با مفاهیم مقدماتی آن آشنا شوید.

برای خواندن و نوشتن اطلاعات فایل باینری در گیم میکر، اطلاعات به صورت یک بایت خوانده و نوشته می شود.

 هر بایت معادل 8 بیت یا 8 تا صفر و یک متوالی می باشد.

توابع باینری گیم میکر.

file_bin_open(fname,mod)

فایل باینری را برای استفاده باز می کند. برای استفاده از فایل باینری سه حالت وجود دارد که باید عدد آن را در پارامتر دوم این تابع به کار ببرید:

Reading

Writing

Reading and Writing

اگر فایل را می خواهید تنها برای خواندن استفاده نمایید مقدار 0 را به پارامتر mod بدهید؛ اگر می خواهید فایل را تنها برای نوشتن باز نمایید، 

مقدار 1 را به آن بدهید؛ اگر نیاز به انجام هر دو کار دارید، مقدار 2 را به آن بدهید.

همانند توابع کار با فایل های متنی، اگر فایل وجود نداشته باشد، به وجود می آید. همچنین می توان تا 32 عدد فایل را همزمان باز کرد.

;البته توسیه نمیکنم چندین فایل رو یکجا باز کنید بهتره فایلهای بدون استفاده بسته بشن.

file_bin_rewrite(fileid)

فایل با شناسه ی ذکر شده را کاملا خالی می نماید.

file_bin_close(fileid)

فایل باینری مورد نظر را می بندد.

file_bin_size(fileid)

اندازه ی فایل باینری را به بایت بازمی گرداند.

file_bin_position(fileid)

مکان کنونی اشاره گر خواندن و نوشتن را به بایت باز می گرداند. اگر ابتدای فایل باشد مقدار 0 را باز می گرداند.

file_bin_seek(fileid,pos)

اشاره گر خواندن و نوشتن فایل را به مکان ذکر شده انتقال می دهد. برای اضافه کردن اطلاعات به انتهای فایل می توانید

 به جای pos اندازه ی فایل را قرار دهید تا اشاره گر به انتهای فایل منتقل شود.

file_bin_write_byte(fileid,byte)

یک بایت اطلاعات را در مکان کنونی اشاره گر می نویسد و سپس به ابتدای بایت بعدی می رود.

file_bin_read_byte(fileid)

یک بایت از اطلاعات را از مکان کنونی اشاره گر می خواند و سپس به ابتدای بایت بعدی می رود.

توجه نمایید که مقادیر عددی در گیم میکر بیشتر از یک بایت که حداکثر، عدد 255 در آن قرار می گیرد می باشند. 

برای مثال اگر شما بخواهید عدد 258 را مستقیم با این توابع در فایل باینری ذخیره کنید، عدد 2 ذخیره می شود؛

 زیرا تنها بایت اول آن ذخیره می شود:

258 => 00000001 00000010

همان طور که می بینید، بایت پایین این عدد معادل عدد 2 می باشد.

حال برای این مشکل می بایست به جای یک بایت، بسته به اندازه ی عدد، مقدار را بخوانیم و بنویسیم. برای مثال 

برای نوشتن عدد 258 و خواندن دوباره ی آن می بایست دوبایت نوشته و یا بخوانیم. برای این کار می توانید از روش 

زیر استفاده کنید.

برای نوشتن عدد دو بایتی:
 
wordnumber = 258;
file_bin_write_byte(fileid, wordnumber);
wordnumber = wordnumber >> 8;
file_bin_write_byte(fileid, wordnumber);

برای خواندن عدد دو بایتی:
 
lowbyte = file_bin_read_byte(fileid);
highbyte = file_bin_read_byte(fileid);
wordnumber = highbyte << 8 | lowbyte;

در این دو تکه کد چه کاری انجام داده ایم؟

ابتدا عدد دو بایتی را در متغیر wordnumber ریخته ایم. سپس آن را در فایل نوشتیم، که تنها بایت اول

 آن ذخیره می شود. سپس با عملگر >> عدد را 8 بیت به سمت چپ شیفت می دهیم تا 8 بیت دوم جایگزین 

8 بیت اول شود. حال دوباره عدد را ذخیره می کنیم، که باز هم بایت اول آن ذخیره می شود، اما در واقع بایت 

دوم عدد 258 ذخیره شده است. با این عمل این عدد دو بایتی را ذخیره نمودیم.

حال در بخش دوم می خواهیم یک عدد دو بایتی از فایل باینری مورد نظر بخوانیم. ابتدا دو بایت را از آن 

می خوانیم و هرکدام را در یک جداگانه می ریزیم. حال می بایست این دو بایت را در کنار هم بگذاریم. 

برای مثال اگر عدد 258 را ذخیره کرده باشیم این دو بایت به صورت زیر می باشد:
 
258 => 00000001 00000010
lowbyte => 00000010
highbyte => 00000001

پس برای ساختن دوباره ی عدد 258 عدد highbyte را 8 بیت به سمت راست شیفت می دهیم که برابر مقدار زیر می شود:
 
00000001 00000000

سپس می بایست آن را با عدد lowbyte جمع بیتی (OR) کنیم تا عدد 258 به دست آید:
 
00000001 00000000
| 00000000 00000010
-----------------------------
00000001 00000010 => 258

به درخواست دوستان سورسی برای ذخیره اعداد بزرک آماده کردیم که هم اکنون میتوانید آن را دانلود نمایید




نظرات

ارسال نظر یا پیشنهاد