xna 4.0 - XNA game components -


i confused how pass values of variables 1 gamecomponent another. using xna 4.0.

i created 2 gamecomponents, drawstring , inputmanager. want read keyboard input of user , pass onto drawstring update position.

i cant add components on drawstring(drawablegamecomponent). can on class not on gamecomponent. can guys post examples here. beginners.

use gamecomponent want have update called on every frame, , use drawablegamecomponent want have draw called on every frame , loadcontent called when appropriate (at start of program, whenever device lost, when user pressed ctrl-alt-del on windows).

for inputmanager might want update method, can keep user input updated, inputmanager gamecomponent. drawstring doesn't sound needs be. both classes sound services. in constructor or initialize method of game class, following:

components.add(minputmanager = new inputmanager(this)); services.addservice(typeof(inputmanager), minputmanager); services.addservice(typeof(drawstring), mdrawstring = new drawstring(this)) 

(drawstring , other class want game services need reference game object.)

(note gamecomponents not need services, , services not need need gamecomponents. update and/or draw called, must call components.add(...); separately, object retrievable service, must call services.addservice(...)).

then, when use inputmanager or drawstring service in other game component (or class have passed reference game object), can this:

inputmanager input = (inputmanager)game.services.getservice(typeof(inputmanager)); 

personally, write extension method make more concise:

using xnagame = microsoft.xna.framework.game; ... public static t getservice<t>(this xnagame pxnagame) { return (t)pxnagame.services.getservice(typeof(t)); } 

the line input service becomes:

inputmanager input = game.getservice<inputmanager>(); 

Comments

Popular posts from this blog

javascript - backbone.js Collection.add() doesn't `construct` (`initialize`) an object -

php - Get uncommon values from two or more arrays -

Adding duplicate array rows in Php -