Ctrl+K

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()