نحوه عملکرد نمایشگرها در Mini Micro

Summarize this content to 400 words in Persian Lang
قبلاً در مورد سیستم نمایشگر 8 لایه Mini Micro اینجا نوشته ام. هر لایه را می توان برای هر یک از چندین نوع پیکربندی کرد، از جمله PixelDisplay، SpriteDisplay، TileDisplay و TextDisplay. پیکربندی پیش فرض به صورت زیر است:
لایه 0 در جلو است و می توانید ببینید که سه لایه اول نمایشگر به طور پیش فرض خاموش هستند (همانطور که لایه 6 است). سپس یک لایه متن، یک لایه sprite، یک لایه گرافیکی و در نهایت یک لایه رنگ ثابت در پشت داریم.
در پست قبلی خود، در مورد این صحبت کردم که چگونه می توانید نمایشگرهای خارج از صفحه اضافی ایجاد کنید، کاملاً جدا از 8 لایه بالا، و بعداً آنها را نصب کنید. اما این یک مورد غیر معمول است.
استفاده معمولی تر این است که فقط نوع نمایشگر را برای یکی از 8 لایه بالا تغییر دهید و به تجارت خود ادامه دهید. شما هرگز مجبور نیستید به صراحت یک شیء نمایشی جدید ایجاد کنید. اما این چگونه کار می کند؟
نمایش جادوی تغییر حالت
برای بررسی استفاده معمولی، اگر میخواهید لایه 4 (به طور پیشفرض، نمایشگر اسپرایت) را به حالت پیکسل تغییر دهید و سپس چیزی در آن ترسیم کنید، این کار را به صورت زیر انجام میدهید:
display(4).mode = displayMode.pixel
g = display(4)
g.fillEllipse 500,80, 300,200, color.pink
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
من شما را تشویق می کنم که Mini Micro را راه اندازی کنید و خودتان آن را امتحان کنید. می توانید آن دستورات را درست در خط فرمان تایپ یا جایگذاری کنید.
به اندازه کافی آسان است، تا زمانی که شروع به فکر کردن در مورد آن خیلی عمیق کنید. سپس شروع به مرموز به نظر می رسد. display(4) یک شی Display – به طور پیش فرض، به طور خاص یک شی SpriteDisplay را برمی گرداند. سپس مقدار متفاوتی را به the اختصاص می دهیم mode دارایی و اکنون ناگهان یک شی کاملاً متفاوت است (PixelDisplay در این مثال)؟ چطور ممکن است؟
ترفند جادویی آشکار شد
کلاسهای داخلی مانند Display میتوانند ترفند خاصی را انجام دهند که کد MiniScript معمولی نمیتواند انجام دهد: آنها میتوانند تخصیصها را به ویژگیهای خاصی رهگیری کنند. این را در برخی از مکانهای دیگر در Mini Micro API مشاهده خواهید کرد، جایی که شما به سادگی اجازه ندارید نقشههای خاصی را تغییر دهید. تصویر نمونه ای از این است. اگر بخواهید عرض یک تصویر را تغییر دهید (مثلاً) به سادگی یک خطا دریافت می کنید.
نمایش از این ترفند متفاوت استفاده می کند. تکلیف را می گیرد و با آن کار دیگری انجام می دهد. وقتی به mode ویژگی یک نمایشگر، فقط یک “مدیر نمایش” داخلی مسئول سیستم نمایش 8 لایه را مطلع می کند. و مدیر نمایش می گوید “اوه، می بینم که شما یک نوع نمایشگر متفاوت در این شاخص می خواهید” و شیء نمایش قبلی را از آنجا جدا می کند و یکی از نوع مناسب را متصل می کند.
به همین دلیل است که همیشه باید یک مرجع برای نمایشگر خود دریافت کنید بعد از تغییر نوع اگر سعی کردید کاری مشابه انجام دهید
g = display(4)
g.mode = displayMode.pixel
g.fillEllipse 500,80, 300,200, color.pink
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
… کار نمی کند (مگر اینکه نمایشگر (4) قبلاً در حالت پیکسل باشد). خط اول را می سازد g به هر صفحه نمایشی که قبلاً در شکاف 4 بود مراجعه کنید. بعد از هر reset، این یک SpriteDisplay است. خط دوم آن را جدا می کند و یک صفحه نمایش پیکسلی را در شکاف 4 نصب می کند، اما g همچنان به صفحه نمایش جدا شده اشاره می کند. بنابراین، خط سوم شکست خواهد خورد. SpriteDisplay a ندارد fillEllipse روش
اما از کجا می آید؟
ممکن است تعجب کنید که مدیر نمایشگر نمایشی از نوع درخواستی را از کجا دریافت می کند. خوب، در هنگام راهاندازی، در واقع یک نمایشگر از هر نوع برای هر شکاف آماده میکند. بنابراین در هر شکافی، نمایشگرهای تک رنگ، پیکسل، متن، کاشی و اسپرایت وجود دارد که منتظر استفاده هستند. مدیر نمایشگر در هر شکاف به این پنج نمایشگر اشاره می کند، در مجموع 40 نمایشگر، آماده برای استفاده شما! هنگامی که حالت را در یک نمایه نمایش داده شده تغییر می دهید، مدیر نمایشگر فقط صفحه نمایش آماده ای را که از قبل در دسترس دارد تعویض می کند.
اگر به صورت دستی install یک صفحه نمایش، همانطور که در پست قبلی توضیح داده شد، سپس نمایشگر تازه نصب شده جایگزین نمایشگر قبلی از آن نوع در لیست 5 نمایشگر آماده برای آن اسلات می شود. اگر کاربر به سادگی حالت را در آن نمایه نمایشگر تغییر دهد، نمایشگر شما به صفحه نمایش “در دسترس” تبدیل می شود تا مدیر نمایشگر دوباره از آن استفاده کند. نمونه قبلی از آن نوع جدا می شود – و مانند هر شی مینی اسکریپت، اگر دیگر ارجاعی به آن وجود نداشته باشد، از بین می رود.
حالا شما می دانید!
برای جمع بندی:
در پشت صحنه، یک مدیر نمایشگر یک نمایشگر از هر نوع را برای هر یک از 8 لایه نمایش در دسترس نگه می دارد.
وقتی به .mode از یک نمایشگر، آن تخصیص رهگیری می شود و به عنوان یک درخواست به مدیر نمایش ارسال می شود.
مدیر نمایشگر صفحه نمایش را با نوع مناسب تعویض می کند و یکی را که قبلاً در آن ذخیره می شود برای استفاده در آینده نگه می دارد.
اگر خودتان یک نمایشگر نصب کنید، جایگزین صفحهای میشود که مدیر نمایشگر برای آن شکاف و نوع استفاده میکند.
بنابراین اکنون می دانید چه اتفاقی می افتد! مبتدیان به طور کلی نیازی به درک چگونگی کارکرد همه چیز با این جزئیات ندارند. خوب است فقط به یاد داشته باشید “حالتی را که می خواهید تعیین کنید، سپس یک مرجع به نمایشگر دریافت کنید.” اما اکنون که می دانید واقعاً چه کاری انجام می دهد، می توانید درک عمیق تری از آنچه در حال وقوع است داشته باشید.
قبلاً در مورد سیستم نمایشگر 8 لایه Mini Micro اینجا نوشته ام. هر لایه را می توان برای هر یک از چندین نوع پیکربندی کرد، از جمله PixelDisplay، SpriteDisplay، TileDisplay و TextDisplay. پیکربندی پیش فرض به صورت زیر است:
لایه 0 در جلو است و می توانید ببینید که سه لایه اول نمایشگر به طور پیش فرض خاموش هستند (همانطور که لایه 6 است). سپس یک لایه متن، یک لایه sprite، یک لایه گرافیکی و در نهایت یک لایه رنگ ثابت در پشت داریم.
در پست قبلی خود، در مورد این صحبت کردم که چگونه می توانید نمایشگرهای خارج از صفحه اضافی ایجاد کنید، کاملاً جدا از 8 لایه بالا، و بعداً آنها را نصب کنید. اما این یک مورد غیر معمول است.
استفاده معمولی تر این است که فقط نوع نمایشگر را برای یکی از 8 لایه بالا تغییر دهید و به تجارت خود ادامه دهید. شما هرگز مجبور نیستید به صراحت یک شیء نمایشی جدید ایجاد کنید. اما این چگونه کار می کند؟
نمایش جادوی تغییر حالت
برای بررسی استفاده معمولی، اگر میخواهید لایه 4 (به طور پیشفرض، نمایشگر اسپرایت) را به حالت پیکسل تغییر دهید و سپس چیزی در آن ترسیم کنید، این کار را به صورت زیر انجام میدهید:
display(4).mode = displayMode.pixel
g = display(4)
g.fillEllipse 500,80, 300,200, color.pink
من شما را تشویق می کنم که Mini Micro را راه اندازی کنید و خودتان آن را امتحان کنید. می توانید آن دستورات را درست در خط فرمان تایپ یا جایگذاری کنید.
به اندازه کافی آسان است، تا زمانی که شروع به فکر کردن در مورد آن خیلی عمیق کنید. سپس شروع به مرموز به نظر می رسد. display(4)
یک شی Display – به طور پیش فرض، به طور خاص یک شی SpriteDisplay را برمی گرداند. سپس مقدار متفاوتی را به the اختصاص می دهیم mode
دارایی و اکنون ناگهان یک شی کاملاً متفاوت است (PixelDisplay در این مثال)؟ چطور ممکن است؟
ترفند جادویی آشکار شد
کلاسهای داخلی مانند Display میتوانند ترفند خاصی را انجام دهند که کد MiniScript معمولی نمیتواند انجام دهد: آنها میتوانند تخصیصها را به ویژگیهای خاصی رهگیری کنند. این را در برخی از مکانهای دیگر در Mini Micro API مشاهده خواهید کرد، جایی که شما به سادگی اجازه ندارید نقشههای خاصی را تغییر دهید. تصویر نمونه ای از این است. اگر بخواهید عرض یک تصویر را تغییر دهید (مثلاً) به سادگی یک خطا دریافت می کنید.
نمایش از این ترفند متفاوت استفاده می کند. تکلیف را می گیرد و با آن کار دیگری انجام می دهد. وقتی به mode
ویژگی یک نمایشگر، فقط یک “مدیر نمایش” داخلی مسئول سیستم نمایش 8 لایه را مطلع می کند. و مدیر نمایش می گوید “اوه، می بینم که شما یک نوع نمایشگر متفاوت در این شاخص می خواهید” و شیء نمایش قبلی را از آنجا جدا می کند و یکی از نوع مناسب را متصل می کند.
به همین دلیل است که همیشه باید یک مرجع برای نمایشگر خود دریافت کنید بعد از تغییر نوع اگر سعی کردید کاری مشابه انجام دهید
g = display(4)
g.mode = displayMode.pixel
g.fillEllipse 500,80, 300,200, color.pink
… کار نمی کند (مگر اینکه نمایشگر (4) قبلاً در حالت پیکسل باشد). خط اول را می سازد g
به هر صفحه نمایشی که قبلاً در شکاف 4 بود مراجعه کنید. بعد از هر reset
، این یک SpriteDisplay است. خط دوم آن را جدا می کند و یک صفحه نمایش پیکسلی را در شکاف 4 نصب می کند، اما g
همچنان به صفحه نمایش جدا شده اشاره می کند. بنابراین، خط سوم شکست خواهد خورد. SpriteDisplay a ندارد fillEllipse
روش
اما از کجا می آید؟
ممکن است تعجب کنید که مدیر نمایشگر نمایشی از نوع درخواستی را از کجا دریافت می کند. خوب، در هنگام راهاندازی، در واقع یک نمایشگر از هر نوع برای هر شکاف آماده میکند. بنابراین در هر شکافی، نمایشگرهای تک رنگ، پیکسل، متن، کاشی و اسپرایت وجود دارد که منتظر استفاده هستند. مدیر نمایشگر در هر شکاف به این پنج نمایشگر اشاره می کند، در مجموع 40 نمایشگر، آماده برای استفاده شما! هنگامی که حالت را در یک نمایه نمایش داده شده تغییر می دهید، مدیر نمایشگر فقط صفحه نمایش آماده ای را که از قبل در دسترس دارد تعویض می کند.
اگر به صورت دستی install
یک صفحه نمایش، همانطور که در پست قبلی توضیح داده شد، سپس نمایشگر تازه نصب شده جایگزین نمایشگر قبلی از آن نوع در لیست 5 نمایشگر آماده برای آن اسلات می شود. اگر کاربر به سادگی حالت را در آن نمایه نمایشگر تغییر دهد، نمایشگر شما به صفحه نمایش “در دسترس” تبدیل می شود تا مدیر نمایشگر دوباره از آن استفاده کند. نمونه قبلی از آن نوع جدا می شود – و مانند هر شی مینی اسکریپت، اگر دیگر ارجاعی به آن وجود نداشته باشد، از بین می رود.
حالا شما می دانید!
برای جمع بندی:
- در پشت صحنه، یک مدیر نمایشگر یک نمایشگر از هر نوع را برای هر یک از 8 لایه نمایش در دسترس نگه می دارد.
- وقتی به
.mode
از یک نمایشگر، آن تخصیص رهگیری می شود و به عنوان یک درخواست به مدیر نمایش ارسال می شود. - مدیر نمایشگر صفحه نمایش را با نوع مناسب تعویض می کند و یکی را که قبلاً در آن ذخیره می شود برای استفاده در آینده نگه می دارد.
- اگر خودتان یک نمایشگر نصب کنید، جایگزین صفحهای میشود که مدیر نمایشگر برای آن شکاف و نوع استفاده میکند.
بنابراین اکنون می دانید چه اتفاقی می افتد! مبتدیان به طور کلی نیازی به درک چگونگی کارکرد همه چیز با این جزئیات ندارند. خوب است فقط به یاد داشته باشید “حالتی را که می خواهید تعیین کنید، سپس یک مرجع به نمایشگر دریافت کنید.” اما اکنون که می دانید واقعاً چه کاری انجام می دهد، می توانید درک عمیق تری از آنچه در حال وقوع است داشته باشید.