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