GDF  20.04
Game Development Framework
Public Member Functions | Protected Member Functions | Protected Attributes | Static Protected Attributes | Properties | Events | List of all members
GDF.RoomMultiplay Class Referenceabstract
Inheritance diagram for GDF.RoomMultiplay:
GDF.Room GDF.RoomTCP GDF.RoomUDP

Public Member Functions

ClientMultiplay GetClient (byte networkId)
 Haal een client op aan de hand van het networkId More...
 
NetworkInstance GetNetworkInstance (uint id)
 Haal een NetworkInstance op uit de lijst van huidige networkInstances More...
 
Type GetAssemblyType (byte id)
 
byte GetAssemblyTypeId (Type type)
 
delegate void MultiplayInstanceEvent (Instance instance)
 
delegate void MultiplayClientEvent (ClientMultiplay client)
 
override Instance InstanceCreate (uint id, Vector3 position, Type type)
 Maak een nieuw voorwerp, en stel zelf het Id ervan in. Als er al een voorwerp met dit Id bestaat wordt deze verwijderd. More...
 
override void InstanceDestroy (Instance instance, bool callOnDestroy=true)
 Vernietig een voorwerp uit de room, en verzend een destroymessage over het netwerk More...
 
override void gdf_UpdateInstances ()
 
override void gdf_Update ()
 
override void RoomEnd ()
 Wat er moet gebeuren als deze room wordt verwijderd More...
 
abstract void CloseNetworking ()
 
abstract void gdf_BroadcastMessage (byte[] message, byte toNetworkId=0)
 
void SendMasterToSlaveUpdate (Instance master, Enums.NetworkMessageTime messageTime)
 Verzend direct een update van de master naar de slave. More...
 
void SendMessageToMasterNetworkInstance (uint toInstanceId, byte messageId, object messageValue)
 Stuur een bericht naar de client die dit voorwerp heeft aangemaakt. Het bericht kan worden opgevanen met OnMessageReceived(...) in NetworkInstance More...
 
void SendMessageToRoom (byte messageId, object messageValue)
 Stuur een bericht naar de room van alle andere verbonden netwerkclienten. Deze berichten kunnen worden gelezen door in de room gebruik te maken van de override OnMessageReceived(...). More...
 
void SendMessageToRoom (byte toNetworkId, byte messageId, object messageValue)
 Stuur een bericht naar de room van het opgegeven netwerkId. Deze berichten kunnen worden gelezen door in de room gebruik te maken van de override OnMessageReceived(...). More...
 
void gdf_ReportDeactivatedClient (ClientMultiplay client)
 
List< InstanceGetNetworkInstances (byte networkId)
 Haal een lijst op van alle networkInstances van een client More...
 
- Public Member Functions inherited from GDF.Room
void gdf_Initialize (Node cameraNode, Camera camera, Node lightNode, Light light)
 
void gdf_RoomEnd ()
 
void DontUpdateInstance (Instance instance)
 Verwijder deze instance uit de lijst van instances die elk frame worden geupdatet More...
 
Instance InstanceCreate (Vector3 position, Type type)
 Maak een nieuw voorwerp van een bepaald type. More...
 
Instance InstanceCreate (float x, float y, float z, Type type)
 Maak een nieuw voorwerp van een bepaald type. More...
 
void InstancesDestroy (Type type, bool includeChildren=true, bool callOnDestroy=true)
 Vernietig een type voorwerp uit de room More...
 
Instance[] GetInstancesByType (Type type, bool includeChildren=true)
 Vraag alle voorwerpen op van een bepaald type. More...
 
Instance GetInstanceByType (Type type, bool includeChildren=false)
 Geeft het eerst gevonden voorwerp terug van het opgegeven type More...
 
Instance GetInstance (uint id)
 Vraag een voorwerp op More...
 
Instance GetInstance (Type type)
 Vraag het eerst gevonden voorwerp van het opgegeven type op. More...
 
bool InstanceExists (uint id)
 Bestaat er in deze room een voorwerp met het opgegeven id? More...
 
bool InstanceExists (Instance instance)
 Bestaat er in deze room een voorwerp met het opgegeven id? More...
 
bool InstanceExists (Type type, bool includeChildren=true)
 Bestaat er in deze room een voorwerp van een bepaald type? More...
 
int InstanceCount (Type type, bool includeChildren=true)
 Hoeveel voorwerpen van het opgegeven type bestaan er momenteel in de room? More...
 
int InstanceCount ()
 Hoeveel voorwerpen bestaan er momenteel in de room? More...
 
Instance[] GetInstances ()
 Vraag alle voorwerpen in deze room op. More...
 
Instance InstanceNearest (Vector3 position, Type type, Instance exclude=null, bool includeChildren=true)
 Het dichtstbijzijnde voorwerp van het opgegeven type More...
 
Instance InstanceFurthest (Vector3 position, Type type, Instance exclude=null, bool includeChildren=true)
 Het voorwerp van het opgegeven type dat het verst weg is van de positie. More...
 
Instance[] DetectCollisions (Instance instance, Type type, bool includeChildren=true)
 Haal een lijst op van alle voorwerpen van een bepaald type waar het opgegeven voorwerp nu mee botst. More...
 
bool DetectCollision (Instance instance, Instance other)
 Bostst het opgegeven voorwerp met een ander voorwerp? More...
 
Instance[] InstancesAtPlace (Vector3 rectangle_point1, Vector3 ractangle_point2, Type type, bool includeChildren=true)
 Geef een lijst terug van alle voorwrepen die de opgegeven plek raken. More...
 
Instance[] InstancesAtPlace (Vector3 sphere_position, float radius, Type type, bool includeChildren=true)
 Geef een lijst terug van alle voorwerpen die de opgegeven plek raken. More...
 
Dictionary< Instance, Vector3 > DetectRaycastIntersections (Vector3 position, Vector3 direction, Type type, Instance exclude=null, float maxDistance=10000, bool includeChildren=true)
 Schiet een lijn in een opgegeven richting, en geef een lijst terug met alle voorwerpen waar deze lijn doorheen gaat. More...
 
Instance DetectNearestRaycastIntersection (Vector3 position, Vector3 direction, Type type, Instance exclude=null, float maxDistance=10000, bool includeChildren=true)
 Schiet een lijn in een opgegeven richting, en geef het dichtstbijzijnde voorwerp terug waar de lijn doorheen gaat. More...
 
Instance DetectNearestRaycastIntersection (Vector3 position, Vector3 direction, Type type, out Vector3 intersection, Instance exclude=null, float maxDistance=10000, bool includeChildren=true)
 Schiet een lijn in een opgegeven richting, en geef het dichtstbijzijnde voorwerp terug waar de lijn doorheen gaat. More...
 
Dictionary< Instance, Vector3 > DetectRaycastIntersections_cursorToWorld (Type type, float maxDistance=10000, bool includeChildren=true)
 Schiet een lijn vanuit de camera in de richting van de muis op het scherm, en geef een lijst terug met alle voorwerpen waar deze lijn doorheen gaat. More...
 
Instance DetectNearestRaycastIntersection_cursorToWorld (Type type, out Vector3 intersection, float maxDistance=10000, bool includeChildren=true)
 Schiet een lijn vanuit de camera in de richting van de muis op het scherm, en geef een voorwerp terug die de lijn als eerste raakt. More...
 
Instance DetectNearestRaycastIntersection_cursorToWorld (Type type, float maxDistance=10000, bool includeChildren=true)
 Schiet een lijn vanuit de camera in de richting van de muis op het scherm, en geef een voorwerp terug die de lijn als eerste raakt. More...
 
Urho.Vector2 GetWorldTo2Dposition (Vector3 worldPosition)
 Deze functie kan je gebruiken om een 2d element bij een voorwerp in de 3d wereld te platsen More...
 
void RemoveGrid ()
 Verwijder de default ondergrond More...
 
bool GetKey (Key key)
 Is een bepaalde toets ingedrukt (blijvend)? More...
 
bool GetKeyPress (Key key)
 Wordt er een bepaalde toets ingedrukt? More...
 
void Restart ()
 Stel de room in op zijn beginwaarden. More...
 
Dictionary< Color, List< Instance > > CreateInstancesFromImage (Dictionary< Urho.Color, Type > instancesToCreate, string filename, out IntVector2 size, int pixelMultiplier=1)
 Maak een BMP waarin je met gekleurde pixels aangeeft waar een bepaald voorwerp moet worden gemaakt. Teken bijvoorbeeld een blauwe pixel, en koppel de kleur blauw aan een type voorwerp. Vervolgens maakt deze functie instances aan op de opgegeven plekken in de BMP. More...
 
Dictionary< Color, List< Instance > > CreateInstancesFromImage (Dictionary< Urho.Color, Type > instancesToCreate, string filename, int pixelMultiplier=1)
 Maak een BMP waarin je met gekleurde pixels aangeeft waar een bepaald voorwerp moet worden gemaakt. Teken bijvoorbeeld een blauwe pixel, en koppel de kleur blauw aan een type voorwerp. Vervolgens maakt deze functie instances aan op de opgegeven plekken in de BMP. More...
 
Image2d Image2dCreate (string name, string filename, float x, float y, float width, float height, Enums.Depth depth=Enums.Depth.Center)
 Maak een 2d afbeelding voor op het UI-systeem. Standaard is het UI-systeem 32 hokjes breed. More...
 
Text2d Text2dCreate (string name, string text, float x, float y, float fontsize=20, bool alignCenter=false, Enums.Depth depth=Enums.Depth.Center)
 Maak een 2d tekst voor op het UI-systeem. Standaard is het UI-systeem 32 hokjes breed. More...
 
Button2d Button2dCreate (string name, string filename, float x, float y, float width, float height, Enums.Depth depth=Enums.Depth.Center)
 Maak een 2d knop voor op het UI-systeem. Standaard is het UI-systeem 32 hokjes breed. More...
 
Button2d Button2dCreate (string name, string filename, float x, float y, float width, float height, Color color, string text, Color textColor, float fontSize, float textYoffset=0, Enums.Depth depth=Enums.Depth.Center)
 Maak een 2d knop voor op het UI-systeem. Standaard is het UI-systeem 32 hokjes breed. More...
 
Slider2d Slider2dCreate (string name, string filenameBackground, string filenameSlider, float x, float y, float width, float height, Enums.Depth depth=Enums.Depth.Center)
 Maak een 2d knop voor op het UI-systeem. Standaard is het UI-systeem 32 hokjes breed. More...
 
Rectangle2d Rectangle2dCreate (string name, float x, float y, float width, float height, Enums.Depth depth=Enums.Depth.Center)
 Maak een 2d rectangle voor op het UI-systeem. Standaard is het UI-systeem 32 hokjes breed. More...
 
TextInput2d TextInput2dCreate (string name, float x, float y, float width, float height, Enums.Depth depth=Enums.Depth.Center)
 Maak een 2d text input voor op het UI-systeem. Standaard is het UI-systeem 32 hokjes breed. More...
 
void Element2dDestroy (string name)
 Vernietig een 2d element met de opgegeven systeemnaam. More...
 
gdf_Element2d[] GetElements2d ()
 Geef een lijst terug van alle 2d elementen in de room. More...
 
Image2d GetImage2d (string name)
 Haal een 2d afbeelding met de opgegeven systeemnaam op. More...
 
Text2d GetText2d (string name)
 Haal een 2d tekst met de opgegeven systeemnaam op. More...
 
Button2d GetButton2d (string name)
 Haal een 2d knop met de opgegeven systeemnaam op. More...
 
Slider2d GetSlider2d (string name)
 Haal een 2d slider met de opgegeven systeemnaam op. More...
 
Rectangle2d GetRectangle2d (string name)
 Haal een 2d rectangle met de opgegeven systeemnaam op. More...
 
TextInput2d GetTextInput2d (string name)
 Haal een 2d text input met de opgegeven systeemnaam op. More...
 
bool Element2dExists (string name)
 Bestaat er een 2d element met de opgegeven naam in de huidige room? More...
 

Protected Member Functions

override void gdf_StepInstances ()
 
virtual void gdf_UpdateRoomMultiplay ()
 
void gdf_sendRequestNetworkInstancesMessage ()
 
abstract void gdf_ReceiveBroadcasts ()
 
void gdf_ProcessBroadcast (byte[] message)
 
void gdf_sendAllNetworkInstances (byte requestorNetworkId)
 
void gdf_sendGoodByeMessage ()
 
virtual void OnMessageReceived (byte fromNetworkId, byte messageId, object value)
 Geeft de berichten terug die zijn verstuurd met SendMessageToRoom(...). More...
 
void gdf_AddNetworkClient (ClientMultiplay client)
 
bool NetworkClientExists (ClientMultiplay client)
 
bool NetworkClientExists (byte networkId)
 
- Protected Member Functions inherited from GDF.Room
void gdf_AddInstanceToLists (Instance instance)
 
abstract void Start ()
 Alles wat moet gebeuren als de room wordt aangemaakt. More...
 
abstract void Step ()
 Alles wat er elk frame moet gebeuren. More...
 

Protected Attributes

Dictionary< uint, NetworkInstancenetworkInstances = new Dictionary<uint, NetworkInstance>()
 
List< NetworkInstancenewNetworkInstances = new List<NetworkInstance>()
 
int updateInstancesTimer = 0
 
- Protected Attributes inherited from GDF.Room
bool RoomHasEnded = false
 Is true wanneer Game.GotoRoom(...) is aangeroepen. More...
 
Dictionary< uint, Instancegdf_instancesById = new Dictionary<uint, Instance>()
 
Dictionary< Type, List< Instance > > gdf_instancesByType = new Dictionary<Type, List<Instance>>()
 
List< Instancegdf_instancesToRemove = new List<Instance>()
 
Dictionary< string, gdf_Element2dgdf_elements2D = new Dictionary<string, gdf_Element2d>()
 
Dictionary< uint, Instancegdf_instancesToUpdate = new Dictionary<uint, Instance>()
 
List< Instancegdf_newlyCreatedInstances = new List<Instance>()
 

Static Protected Attributes

static Dictionary< byte, Type > gdf_AssemblyTypes = new Dictionary<byte, Type>()
 

Properties

abstract byte LocalNetworkId [get]
 Het id van deze client op het netwerk More...
 
abstract bool Connected [get]
 Heeft deze client verbinding met de host? More...
 
List< ClientMultiplayGetNetworkClients [get]
 Een lijst van alle clients die ooit verbinding hebben gemaakt More...
 
List< ClientMultiplayGetActiveNetworkClients [get]
 Een lijst van clients die momenteel verbonden zijn More...
 
- Properties inherited from GDF.Room
gdf_RoomCamera Camera [get]
 Bewerk de camera instellingen More...
 
gdf_RoomLight Light [get]
 Bewerk de belichtingsinstellingen More...
 
gdf_Element2d Cursor [get]
 Bewerk de cursor More...
 
int FrameCount [get]
 Het aantal frames vanaf het moment dat de room is opgestart. More...
 
int FPS [get]
 De hoeveelheid frames per seconde More...
 
bool IsInitialized [get]
 Is deze room gestart? More...
 
float UIHeight [get, set]
 Het UI-systeem (voor 2d afbeeldingen en teksten) is verdeeld in een aantal hokjes. Standaard 32 hokjes breed. Met een resolutie van 1920 x 1080 is een hokje daarmee 1920/32=60 pixels groot. De hoogte wordt berekend door de UIWidth te delen door de aspect ratio. More...
 

Events

MultiplayInstanceEvent OnNetworkInstanceAdded
 
MultiplayInstanceEvent OnNetworkInstanceDestroyed
 
MultiplayClientEvent OnNetworkClientConnected
 
MultiplayClientEvent OnNetworkClientLeft
 

Additional Inherited Members

- Public Attributes inherited from GDF.Room
gdf_Timer[] Timers = new gdf_Timer[10]
 Haal een lijst van 10 timers op die je kan gebruiken om code over een opgegeven aantal frames uit te voeren More...
 
Color BackgroundColor = Color.FromHex("87CEEB")
 Stel de kleur van de lucht in More...
 
Vector3 Size = Vector3.One * 100
 Stel de grootte van de room in. X is horizontaal, en Z is verticaal. More...
 
float Score = 0
 Gebruik deze variabele om de score bij te houden. More...
 
int Lives = 3
 Gebruik deze variabele om het aantal levens bij te houden. Standaard 3. More...
 
int Level = 1
 Gebruik deze variabele om level bij te houden. Standaard 1. More...
 
float Money = 100
 Gebruik deze variabele om de hoeveelheid geld bij te houden. Standaard 100. More...
 
float Health = 100
 Gebruik deze variabele om de gezondheid bij te houden. Standaard 100 More...
 
float UIWidth = 32
 Het UI-systeem (voor 2d afbeeldingen en teksten) is verdeeld in een aantal hokjes. Standaard 32 hokjes breed. Met een resolutie van 1920 x 1080 is een hokje daarmee 1920/32=60 pixels groot. More...
 
bool gdf_IsDeleted = false
 

Member Function Documentation

◆ GetClient()

ClientMultiplay GDF.RoomMultiplay.GetClient ( byte  networkId)

Haal een client op aan de hand van het networkId

Parameters
networkId
Returns

◆ GetNetworkInstance()

NetworkInstance GDF.RoomMultiplay.GetNetworkInstance ( uint  id)

Haal een NetworkInstance op uit de lijst van huidige networkInstances

Parameters
id
Returns

◆ GetNetworkInstances()

List<Instance> GDF.RoomMultiplay.GetNetworkInstances ( byte  networkId)

Haal een lijst op van alle networkInstances van een client

Parameters
networkId
Returns

◆ InstanceCreate()

override Instance GDF.RoomMultiplay.InstanceCreate ( uint  id,
Vector3  position,
Type  type 
)
virtual

Maak een nieuw voorwerp, en stel zelf het Id ervan in. Als er al een voorwerp met dit Id bestaat wordt deze verwijderd.

Parameters
idHet systeemnummer waarmee je het voorwerp kan terugvinden
positionDe positie waarop je het voorwerp aanmaakt
typeBijvoorbeeld: typeof(instance_ball)
Returns
Het aangemaakte voorwerp

Reimplemented from GDF.Room.

◆ InstanceDestroy()

override void GDF.RoomMultiplay.InstanceDestroy ( Instance  instance,
bool  callOnDestroy = true 
)
virtual

Vernietig een voorwerp uit de room, en verzend een destroymessage over het netwerk

Parameters
instance
callOnDestroyWordt de OnDestroy-methode van het voorwerp aangeroepen?

Reimplemented from GDF.Room.

◆ OnMessageReceived()

virtual void GDF.RoomMultiplay.OnMessageReceived ( byte  fromNetworkId,
byte  messageId,
object  value 
)
protectedvirtual

Geeft de berichten terug die zijn verstuurd met SendMessageToRoom(...).

Parameters
fromNetworkId
messageId
value

◆ RoomEnd()

override void GDF.RoomMultiplay.RoomEnd ( )
virtual

Wat er moet gebeuren als deze room wordt verwijderd

Reimplemented from GDF.Room.

◆ SendMasterToSlaveUpdate()

void GDF.RoomMultiplay.SendMasterToSlaveUpdate ( Instance  master,
Enums.NetworkMessageTime  messageTime 
)

Verzend direct een update van de master naar de slave.

Parameters
masterHet master voorwerp
messageTime

◆ SendMessageToMasterNetworkInstance()

void GDF.RoomMultiplay.SendMessageToMasterNetworkInstance ( uint  toInstanceId,
byte  messageId,
object  messageValue 
)

Stuur een bericht naar de client die dit voorwerp heeft aangemaakt. Het bericht kan worden opgevanen met OnMessageReceived(...) in NetworkInstance

Parameters
toInstanceIdHet Id van de Instance die overerft van NetworkInstance
messageIdEen getal naar keuze om aan te geven wat voor soort bericht dit is
messageValueEen waarde naar keuze. Bekijk Enums.NetworkMessageValueType om te zien welke datatypes er worden ondersteund.

◆ SendMessageToRoom() [1/2]

void GDF.RoomMultiplay.SendMessageToRoom ( byte  messageId,
object  messageValue 
)

Stuur een bericht naar de room van alle andere verbonden netwerkclienten. Deze berichten kunnen worden gelezen door in de room gebruik te maken van de override OnMessageReceived(...).

Parameters
messageId
messageValue

◆ SendMessageToRoom() [2/2]

void GDF.RoomMultiplay.SendMessageToRoom ( byte  toNetworkId,
byte  messageId,
object  messageValue 
)

Stuur een bericht naar de room van het opgegeven netwerkId. Deze berichten kunnen worden gelezen door in de room gebruik te maken van de override OnMessageReceived(...).

Parameters
toNetworkIdGebruik RoomMultiplay.ActiveNetworkClients voor opties.
messageId
messageValue

Property Documentation

◆ Connected

abstract bool GDF.RoomMultiplay.Connected
get

Heeft deze client verbinding met de host?

◆ GetActiveNetworkClients

List<ClientMultiplay> GDF.RoomMultiplay.GetActiveNetworkClients
get

Een lijst van clients die momenteel verbonden zijn

◆ GetNetworkClients

List<ClientMultiplay> GDF.RoomMultiplay.GetNetworkClients
get

Een lijst van alle clients die ooit verbinding hebben gemaakt

◆ LocalNetworkId

abstract byte GDF.RoomMultiplay.LocalNetworkId
get

Het id van deze client op het netwerk


The documentation for this class was generated from the following file: