Ctrl+K

Scene

اعلان

public class Strawberry.Core.Scene

نمایانگر یک صحنه (Scene) بازی که موجودها (Entity)، نماها، لایه‌ها و فیزیک را مدیریت می‌کند. به‌عنوان ظرف همه‌ی اشیاء و منطق در یک وضعیت یا مرحله‌ی خاص از بازی عمل می‌کند.

ارث‌بری از: Strawberry.ReferenceObject

سازنده‌ها

Scene

یک نمونه‌ی جدید از کلاس Scene می‌سازد.

void Scene(string name, int width, int height)

پارامترها:

نام نوع توضیحات
name System.String نام صحنه.
width System.Int32 عرض صحنه به پیکسل.
height System.Int32 ارتفاع صحنه به پیکسل.

ویژگی‌ها

GameContext

کانتکست بازی مرتبط با این صحنه را دریافت می‌کند.

IGameContext GameContext { get }

Entities

مجموعه‌ی موجودهای (Entity) در حال حاضر در صحنه را دریافت می‌کند.

EntityCollection Entities { get }

Width

عرض صحنه را به پیکسل دریافت یا تنظیم می‌کند.

int Width { get set }

Height

ارتفاع صحنه را به پیکسل دریافت یا تنظیم می‌کند.

int Height { get set }

Viewports

مجموعه‌ی نماها استفاده‌شده برای رندر صحنه را دریافت یا تنظیم می‌کند.

ViewportCollection Viewports { get set }

MousePosition

آرایه‌ای از موقعیت‌های موس، اندیس‌گذاری شده با ID اشاره‌گر را دریافت می‌کند.

Vector2[] MousePosition { get }

DestroyCount

تعداد کل موجودهای نابودشده در صحنه را دریافت می‌کند.

int DestroyCount { get }

ClearColor

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

Color ClearColor { get set }

Name

نام صحنه را دریافت می‌کند.

string Name { get }

IsInitialized

مقداری را دریافت می‌کند که نشان می‌دهد آیا صحنه مقداردهی اولیه شده و GameContext معتبری دارد.

bool IsInitialized { get }

Layers

مجموعه‌ی لایه‌های رندر استفاده‌شده برای مرتب‌سازی draw call ها را دریافت یا تنظیم می‌کند.

LayerCollection Layers { get set }

PhysicsWorld

دنیای Aether.Physics2D استفاده‌شده برای شبیه‌سازی فیزیک در این صحنه را دریافت یا تنظیم می‌کند.

World PhysicsWorld { get set }

PhysicsEnabled

مقداری را دریافت می‌کند که نشان می‌دهد آیا شبیه‌سازی فیزیک برای این صحنه فعال است.

bool PhysicsEnabled { get }

PixelPerMeter

نسبت تبدیل پیکسل به متر استفاده‌شده توسط شبیه‌سازی فیزیک را دریافت یا تنظیم می‌کند.

float PixelPerMeter { get set }

Bounds

مستطیل کران‌دار صحنه، تعریف‌شده توسط عرض و ارتفاعش را دریافت می‌کند.

Rectangle Bounds { get }

Assets

مدیر دارایی محلی این صحنه. برای ذخیره‌ی دارایی‌های خاص صحنه استفاده می‌شود. والد این مدیر GameContext.Assets است.

AssetManager Assets { get }

PauseState

پرچم‌های وضعیت توقف این صحنه را دریافت یا تنظیم می‌کند.

PauseStateFlags PauseState { get set }

متدها

Initialize virtual

صحنه را با کانتکست بازی مشخص‌شده مقداردهی اولیه می‌کند و اگر نمايی وجود نداشته باشد یک نمای پیش‌فرض می‌سازد.

void Initialize(IGameContext context)

پارامترها:

نام نوع توضیحات
context Strawberry.Core.IGameContext کانتکست بازی برای مرتبط کردن با این صحنه.

OnInitInstances virtual

رویداد InitInstances را صادر می‌کند.

void OnInitInstances()

OnFinish virtual

رویداد Finish را صادر می‌کند.

void OnFinish()

OnEndUpdate virtual

OnEndUpdate را روی همه‌ی موجودهای ریشه‌ی فعال فراخوانی می‌کند و نابودی موجودهای علامت‌گذاری‌شده برای حذف را پردازش می‌کند.

void OnEndUpdate()

GetMousePositionOnViewport

موقعیت اشاره‌گر موس را نسبت به مختصات صحنه‌ی یک نمای مشخص محاسبه می‌کند.

Vector2 GetMousePositionOnViewport(int viewPortIndex, int pointerIndex)

پارامترها:

نام نوع توضیحات
viewPortIndex System.Int32 اندیس نما در مجموعه‌ی Viewports.
pointerIndex System.Int32 اندیس اشاره‌گر (مثلاً برای چندلمسی).

خروجی: موقعیت موس ترجمه‌شده در مختصات فضای صحنه.

OnBeginUpdate virtual

OnBeginUpdate را روی همه‌ی موجودهای ریشه‌ی فعال فراخوانی می‌کند.

void OnBeginUpdate()

OnUpdate virtual

صحنه را با صادر کردن رویداد Update، بروزرسانی لایه‌ها و فراخوانی OnUpdate روی همه‌ی موجودهای ریشه‌ی فعال به‌روز می‌کند.

void OnUpdate()

OnFixedUpdate virtual

بروزرسانی‌های fixed-time-step را برای موجودها انجام می‌دهد و در صورت فعال بودن، دنیای فیزیک را گام می‌برد.

void OnFixedUpdate()

DestroyEntity

همه‌ی موجودهای یک نوع مشخص را نابود می‌کند. توجه: این متد در حال حاضر پیاده‌سازی نشده است.

void DestroyEntity(Type t)

پارامترها:

نام نوع توضیحات
t System.Type نوع موجود برای نابودی.

EntityCount

int EntityCount(string tag)

پارامترها:

نام نوع توضیحات
tag System.String

DestroyEntity

همه‌ی موجودهایی که برچسب مشخص‌شده را دارند نابود می‌کند.

void DestroyEntity(string tag)

پارامترها:

نام نوع توضیحات
tag System.String برچسب استفاده‌شده برای شناسایی موجودهای قابل نابودی.

AddEntity virtual

یک موجود (Entity) به صحنه اضافه می‌کند. اگر صحنه از قبل مقداردهی اولیه شده باشد، موجود بلافاصله فعال می‌شود.

void AddEntity(Entity entity)

پارامترها:

نام نوع توضیحات
entity Strawberry.Core.Entity موجود برای اضافه‌کردن.

FindEntities

Entity[] FindEntities(string tag)

پارامترها:

نام نوع توضیحات
tag System.String

DestroyEntity

موجود مشخص‌شده را برای نابودی علامت‌گذاری می‌کند.

void DestroyEntity(Entity entity)

پارامترها:

نام نوع توضیحات
entity Strawberry.Core.Entity موجود برای نابودی.

DoRender virtual

منطق رندر سفارشی انجام می‌دهد. برای افزودن رندر خارج از رندر استاندارد موجود override کنید.

void DoRender()

DoGuiRender virtual

منطق رندر GUI سفارشی انجام می‌دهد. برای افزودن رندر GUI override کنید.

void DoGuiRender()

OnRender virtual

صحنه را با پیمایش نماها و رسم موجودها و لایه‌های فعال رندر می‌کند.

void OnRender()

OnBeginRender

سطح رندر را با ClearColor پاک می‌کند اگر شفاف نباشد.

bool OnBeginRender()

خروجی: true اگر صفحه پاک شده باشد؛ false اگر رنگ پاک‌کننده شفاف بود.

AddLayer

یک لایه‌ی رندر به صحنه اضافه می‌کند. اگر لایه متعلق به صحنه‌ی دیگری باشد، ابتدا از آن صحنه حذف می‌شود.

void AddLayer(string key, Layer layer)

پارامترها:

نام نوع توضیحات
key System.String کلید یکتا شناساگر لایه.
layer Strawberry.Graphics.Layers.Layer لایه برای اضافه‌کردن.

RemoveLayer virtual

لایه‌ی رندر با کلید مشخص‌شده را حذف می‌کند.

void RemoveLayer(string key)

پارامترها:

نام نوع توضیحات
key System.String کلید لایه برای حذف.

RemoveLayer virtual

لایه‌ی رندر مشخص‌شده را از صحنه حذف می‌کند.

string RemoveLayer(Layer layer)

پارامترها:

نام نوع توضیحات
layer Strawberry.Graphics.Layers.Layer لایه برای حذف.

خروجی: کلید مرتبط با لایه‌ی حذف‌شده، یا null اگر لایه یافت نشد.

EnablePhysics virtual

شبیه‌سازی فیزیک را با بردار جاذبه‌ی مشخص‌شده فعال می‌کند.

void EnablePhysics(Vector2 gravity)

پارامترها:

نام نوع توضیحات
gravity Strawberry.Math.Vector2 بردار جاذبه‌ی اعمال‌شده به دنیای فیزیک.

رویدادها

Update

هنگام بروزرسانی صحنه رخ می‌دهد.

event EventHandler Update

InitInstances

هنگام مقداردهی اولیه‌ی نمونه‌ها در صحنه رخ می‌دهد.

event EventHandler InitInstances

Finish

هنگام پایان صحنه رخ می‌دهد.

event EventHandler Finish