TileLayer
اعلان
public class Strawberry.Graphics.Layers.TileLayer
لایهای که یک tilemap را از یک تکسچر (Texture) تنها رندر میکند. کاشیها بهطور پایدار ذخیره میشوند (هر فریم پاک نمیشوند) و میتوانند یا با اندیس شبکه (ستون، ردیف) یا با یک مستطیل منبع دقیق تکسچر push شوند. از بارگذاری قالب JSON صادرشده توسط TileMap Studio پشتیبانی میکند.
ارثبری از: Strawberry.Graphics.Layers.Layer
سازندهها
TileLayer
void TileLayer()
TileLayer
void TileLayer(int maxBatchCount)
پارامترها:
| نام | نوع | توضیحات |
|---|---|---|
maxBatchCount |
System.Int32 |
ویژگیها
ActiveShader
شِیدِر (Shader) فعال فعلی استفادهشده برای رندر کاشی را دریافت میکند.
BasicShader ActiveShader { get }
GraphicsContext
کانتکست گرافیکی صحنهی فعلی را دریافت میکند.
IGraphicsContext GraphicsContext { get }
DrawCalls
تعداد draw call های انجامشده در آخرین pass رندر را دریافت یا تنظیم میکند.
int DrawCalls { get set }
Texture
تکسچر تنها که همهی کاشیها از آن نمونهبرداری میشوند.
Texture Texture { get set }
GridSize
اندازهی یک کاشی به پیکسل، استفادهشده هنگام push کاشیها با اندیس شبکه. مثلاً (16, 16) یعنی هر کاشی در تکسچر 16px عرض و 16px ارتفاع دارد. این هنگام بارگذاری فایل JSON TileMap Studio بهطور خودکار تنظیم میشود.
Vector2 GridSize { get set }
Color
رنگ tint اعمالشده روی همهی کاشیها بهطور پیشفرض. پیشفرض سفید (بدون tint) است. کاشیهای فردی که با رنگ سفارشی push شوند این را override میکنند.
Color Color { get set }
Scale
مقیاس سراسری اعمالشده روی اندازهی مقصد هر کاشی. پیشفرض (1, 1).
Vector2 Scale { get set }
Offset
انحراف سراسری اعمالشده روی موقعیت جهانی هر کاشی. برای اسکرول کل tilemap (مثلاً برای پارالاکس یا انحراف دوربین) مفید است. پیشفرض (0, 0).
Vector2 Offset { get set }
TileCount
تعداد کاشیهای در حال حاضر ذخیرهشده در این لایه را دریافت میکند.
int TileCount { get }
متدها
Initialize override
void Initialize(Scene scene)
پارامترها:
| نام | نوع | توضیحات |
|---|---|---|
scene |
Strawberry.Core.Scene |
SetShader
void SetShader(BasicShader shader)
پارامترها:
| نام | نوع | توضیحات |
|---|---|---|
shader |
Strawberry.Graphics.BasicShader |
ResetShader
void ResetShader()
SetBlendMode
void SetBlendMode(string name)
پارامترها:
| نام | نوع | توضیحات |
|---|---|---|
name |
System.String |
Push
یک کاشی را از تکسچر در اندیس کاشی tileCol، tileRow به موقعیت جهانی worldPosition push میکند. مستطیل منبع کاشی بهصورت (tileCol * GridSize.X, tileRow * GridSize.Y, (tileCol+1) * GridSize.X, (tileRow+1) * GridSize.Y) محاسبه میشود. مثلاً با یک شبکهی 32×32، کاشی (2, 1) از (64, 32, 96, 64) نمونهبرداری میکند.
void Push(int tileCol, int tileRow, Vector2 worldPosition)
پارامترها:
| نام | نوع | توضیحات |
|---|---|---|
tileCol |
System.Int32 |
اندیس ستون کاشی در تکسچر (مبتنی بر 0). |
tileRow |
System.Int32 |
اندیس ردیف کاشی در تکسچر (مبتنی بر 0). |
worldPosition |
Strawberry.Math.Vector2 |
موقعیت در فضای جهانی (گوشهی بالا-چپ) که کاشی در آن رسم میشود. |
Push
یک کاشی را از تکسچر در اندیس کاشی tileCol، tileRow به سلول شبکه cellX، cellY در فضای جهانی push میکند. موقعیت جهانی مقصد بهصورت (cellX * GridSize.X, cellY * GridSize.Y) محاسبه میشود، بنابراین کاشی به شبکهی لایه میچسبد. مستطیل منبع کاشی نیز با tileCol و tileRow و GridSize محاسبه میشود.
void Push(int tileCol, int tileRow, int cellX, int cellY)
پارامترها:
| نام | نوع | توضیحات |
|---|---|---|
tileCol |
System.Int32 |
|
tileRow |
System.Int32 |
|
cellX |
System.Int32 |
|
cellY |
System.Int32 |
Push
یک کاشی را از تکسچر در اندیس کاشی tileCol، tileRow به موقعیت جهانی worldPosition، با اندازهی مقصد و رنگ سفارشی push میکند.
void Push(int tileCol, int tileRow, Vector2 worldPosition, Vector2 destinationSize, Color color)
پارامترها:
| نام | نوع | توضیحات |
|---|---|---|
tileCol |
System.Int32 |
|
tileRow |
System.Int32 |
|
worldPosition |
Strawberry.Math.Vector2 |
|
destinationSize |
Strawberry.Math.Vector2 |
|
color |
Strawberry.Graphics.Color |
PushExact
یک کاشی با یک مستطیل منبع دقیق تکسچر مشخصشده توسط texLeft، texTop، texRight، texBottom (به پیکسل) push میکند. کاشی در worldPosition با اندازهی destinationSize (به واحدهای جهانی) رسم میشود.
void PushExact(float texLeft, float texTop, float texRight, float texBottom, Vector2 worldPosition, Vector2 destinationSize)
پارامترها:
| نام | نوع | توضیحات |
|---|---|---|
texLeft |
System.Single |
|
texTop |
System.Single |
|
texRight |
System.Single |
|
texBottom |
System.Single |
|
worldPosition |
Strawberry.Math.Vector2 |
|
destinationSize |
Strawberry.Math.Vector2 |
PushExact
یک کاشی با یک مستطیل منبع دقیق تکسچر مشخصشده توسط texLeft، texTop، texRight، texBottom (به پیکسل)، با رنگ tint سفارشی push میکند.
void PushExact(float texLeft, float texTop, float texRight, float texBottom, Vector2 worldPosition, Vector2 destinationSize, Color color)
پارامترها:
| نام | نوع | توضیحات |
|---|---|---|
texLeft |
System.Single |
|
texTop |
System.Single |
|
texRight |
System.Single |
|
texBottom |
System.Single |
|
worldPosition |
Strawberry.Math.Vector2 |
|
destinationSize |
Strawberry.Math.Vector2 |
|
color |
Strawberry.Graphics.Color |
PushExact
یک کاشی با یک مستطیل منبع دقیق تکسچر push میکند، با اندازهی مقصد بهطور خودکار روی (texRight - texLeft, texBottom - texTop) تنظیم میشود (یعنی نگاشت 1:1 پیکسلی).
void PushExact(float texLeft, float texTop, float texRight, float texBottom, Vector2 worldPosition)
پارامترها:
| نام | نوع | توضیحات |
|---|---|---|
texLeft |
System.Single |
|
texTop |
System.Single |
|
texRight |
System.Single |
|
texBottom |
System.Single |
|
worldPosition |
Strawberry.Math.Vector2 |
PushBlock
یک بلوک مستطیلی از کاشیها را از تکسچر به یک بلوک مستطیلی از سلولها در فضای جهانی push میکند. کاشی (tileColStart + i, tileRowStart + j) در سلول جهانی (cellXStart + i, cellYStart + j) رسم میشود.
void PushBlock(int tileColStart, int tileRowStart, int cellXStart, int cellYStart, int cellsWide, int cellsHigh)
پارامترها:
| نام | نوع | توضیحات |
|---|---|---|
tileColStart |
System.Int32 |
|
tileRowStart |
System.Int32 |
|
cellXStart |
System.Int32 |
|
cellYStart |
System.Int32 |
|
cellsWide |
System.Int32 |
|
cellsHigh |
System.Int32 |
PushFill
همان کاشی (بر اساس اندیس) را به یک بلوک مستطیلی از سلولها در فضای جهانی push میکند.
void PushFill(int tileCol, int tileRow, int cellXStart, int cellYStart, int cellsWide, int cellsHigh)
پارامترها:
| نام | نوع | توضیحات |
|---|---|---|
tileCol |
System.Int32 |
|
tileRow |
System.Int32 |
|
cellXStart |
System.Int32 |
|
cellYStart |
System.Int32 |
|
cellsWide |
System.Int32 |
|
cellsHigh |
System.Int32 |
Clear
همهی کاشیها را از این لایه حذف میکند.
void Clear()
LoadFromTileMapStudio
یک لایهی تنها از یک فایل JSON TileMap Studio بارگذاری میکند. tileSize از JSON برای تنظیم GridSize استفاده میشود. بخش tilesets بهطور کامل نادیده گرفته میشود — کاربر texture خودش را فراهم میکند. تنها لایهای که layerName با آن مطابقت دارد بارگذاری میشود؛ همهی لایههای دیگر نادیده گرفته میشوند.
int LoadFromTileMapStudio(string jsonPath, string layerName, Texture texture)
پارامترها:
| نام | نوع | توضیحات |
|---|---|---|
jsonPath |
System.String |
مسیر فایل .json صادرشده توسط TileMap Studio. |
layerName |
System.String |
نام لایه برای بارگذاری (با فیلد "name" لایه در JSON مطابقت دارد). |
texture |
Strawberry.Graphics.Texture |
تکسچر برای استفاده برای همهی کاشیها. دادهی جاسازیشده در tilesets نادیده گرفته میشود. |
خروجی: تعداد کاشیهای بارگذاریشده. اگر لایه یافت نشد یا خالی بود 0 برمیگرداند.
LoadFromTileMapStudioJson
یک لایهی تنها از یک رشتهی JSON TileMap Studio بارگذاری میکند. برای جزئیات ببینید LoadFromTileMapStudio.
int LoadFromTileMapStudioJson(string jsonText, string layerName, Texture texture)
پارامترها:
| نام | نوع | توضیحات |
|---|---|---|
jsonText |
System.String |
متن JSON صادرشده توسط TileMap Studio. |
layerName |
System.String |
نام لایه برای بارگذاری. |
texture |
Strawberry.Graphics.Texture |
تکسچر برای استفاده برای همهی کاشیها. |
خروجی: تعداد کاشیهای بارگذاریشده.
Render override
void Render()