本文整理汇总了C#中GameObject.OnMessage方法的典型用法代码示例。如果您正苦于以下问题:C# GameObject.OnMessage方法的具体用法?C# GameObject.OnMessage怎么用?C# GameObject.OnMessage使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类GameObject
的用法示例。
在下文中一共展示了GameObject.OnMessage方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: OnBegin
/// <summary>
/// Called once when the state starts. This is a chance to do things that should only happen once
/// during a particular state.
/// </summary>
public override void OnBegin()
{
base.OnBegin();
mEnduranceModeBG = GameObjectFactory.pInstance.GetTemplate("GameObjects\\UI\\MainMenu\\ModeSelect\\EnduranceModeBG\\EnduranceModeBG");
mEnduranceModeButton = GameObjectFactory.pInstance.GetTemplate("GameObjects\\UI\\MainMenu\\ModeSelect\\EnduranceModeButton\\EnduranceModeButton");
mModeSelectBG = GameObjectFactory.pInstance.GetTemplate("GameObjects\\UI\\MainMenu\\ModeSelect\\ModeSelectBG\\ModeSelectBG");
mScoreAttackModeBG = GameObjectFactory.pInstance.GetTemplate("GameObjects\\UI\\MainMenu\\ModeSelect\\ScoreAttackModeBG\\ScoreAttackModeBG");
mScoreAttackModeButton = GameObjectFactory.pInstance.GetTemplate("GameObjects\\UI\\MainMenu\\ModeSelect\\ScoreAttackModeButton\\ScoreAttackModeButton");
mModeSelectTitle = GameObjectFactory.pInstance.GetTemplate("GameObjects\\UI\\MainMenu\\ModeSelect\\ModeSelectTitle\\ModeSelectTitle");
mGoButton = GameObjectFactory.pInstance.GetTemplate("GameObjects\\UI\\MainMenu\\ModeSelect\\GoButton\\GoButton");
System.Diagnostics.Debug.Assert(GameModeManager.pInstance.pMode != GameModeManager.GameMode.None, "Game Mode is still None. It should have been set in previous state.");
Single unselectedAlpha = 0.25f;
if (GameModeManager.pInstance.pMode == GameModeManager.GameMode.Endurance)
{
mModeDesc = GameObjectFactory.pInstance.GetTemplate("GameObjects\\UI\\MainMenu\\ModeSelect\\EnduranceModeDesc\\EnduranceModeDesc");
mSetColorMsg.mColor_In = new Microsoft.Xna.Framework.Color(unselectedAlpha, unselectedAlpha, unselectedAlpha, unselectedAlpha);
mScoreAttackModeButton.OnMessage(mSetColorMsg, pParentGOH);
mScoreAttackModeBG.OnMessage(mSetColorMsg, pParentGOH);
// Only show the Tutorial Option for Endurance.
mTutBox = GameObjectFactory.pInstance.GetTemplate("GameObjects\\UI\\Options\\Tutorial\\Checkbox\\Checkbox");
mTutCheckButton = GameObjectFactory.pInstance.GetTemplate("GameObjects\\UI\\Options\\Tutorial\\Checkmark\\Checkmark");
mTutLabel = GameObjectFactory.pInstance.GetTemplate("GameObjects\\UI\\Options\\Tutorial\\Label\\Label");
GameObjectManager.pInstance.Add(mTutCheckButton);
GameObjectManager.pInstance.Add(mTutBox);
GameObjectManager.pInstance.Add(mTutLabel);
}
else if (GameModeManager.pInstance.pMode == GameModeManager.GameMode.TrickAttack)
{
mModeDesc = GameObjectFactory.pInstance.GetTemplate("GameObjects\\UI\\MainMenu\\ModeSelect\\ScoreAttackModeDesc\\ScoreAttackModeDesc");
mSetColorMsg.mColor_In = new Microsoft.Xna.Framework.Color(unselectedAlpha, unselectedAlpha, unselectedAlpha, unselectedAlpha);
mEnduranceModeButton.OnMessage(mSetColorMsg, pParentGOH);
mEnduranceModeBG.OnMessage(mSetColorMsg, pParentGOH);
}
else
{
System.Diagnostics.Debug.Assert(false, "Unhandled mode type.");
}
GameObjectManager.pInstance.Add(mEnduranceModeBG);
GameObjectManager.pInstance.Add(mEnduranceModeButton);
GameObjectManager.pInstance.Add(mModeSelectBG);
GameObjectManager.pInstance.Add(mScoreAttackModeBG);
GameObjectManager.pInstance.Add(mScoreAttackModeButton);
GameObjectManager.pInstance.Add(mModeSelectTitle);
GameObjectManager.pInstance.Add(mGoButton);
GameObjectManager.pInstance.Add(mModeDesc);
}
示例2: CreateNavMesh
/// <summary>
/// Steps through all Tile objects in the level and generates a nave mesh from it.
/// </summary>
/// <param name="level"></param>
public void CreateNavMesh(GameObject.GameObject level)
{
// The gets used over and over again throughout the life if this object.
level.OnMessage(mGetMapInfoMsg);
Int32 mapWidth = mGetMapInfoMsg.mInfo_Out.mMapWidth;
Int32 mapHeight = mGetMapInfoMsg.mInfo_Out.mMapHeight;
Int32 tileWidth = mGetMapInfoMsg.mInfo_Out.mTileWidth;
Int32 tileHeight = mGetMapInfoMsg.mInfo_Out.mTileHeight;
// Clusters get indexed based on their X, Y positions in the world.
mClusters = new Cluster[mapWidth / mClusterSize, mapHeight / mClusterSize];
// Loop through Cluster by Cluster initializing them.
for (Int32 y = 0; y < mClusters.GetLength(1); y++)
{
for (Int32 x = 0; x < mClusters.GetLength(0); x++)
{
Cluster temp = new Cluster(mClusterSize, tileWidth, tileHeight);
mGetTileAtPositionMsg.mPosition_In.X = x * (tileWidth * mClusterSize);
mGetTileAtPositionMsg.mPosition_In.Y = y * (tileHeight * mClusterSize);
level.OnMessage(mGetTileAtPositionMsg);
// The top left tile becomes a handy spot to start iterations over all Tile objects
// in a Cluster.
temp.pTopLeft = mGetTileAtPositionMsg.mTile_Out;
// Link Left <-> Right
if (x > 0)
{
temp.pNeighbouringClusters[(Int32)Cluster.AdjacentClusterDirections.Left] = mClusters[x - 1, y];
mClusters[x - 1, y].pNeighbouringClusters[(Int32)Cluster.AdjacentClusterDirections.Right] = temp;
}
// Link Up <-> Down
if (y > 0)
{
temp.pNeighbouringClusters[(Int32)Cluster.AdjacentClusterDirections.Up] = mClusters[x, y - 1];
mClusters[x, y - 1].pNeighbouringClusters[(Int32)Cluster.AdjacentClusterDirections.Down] = temp;
}
// Only walk the top and left walls for each cluster. The neighbouring clusters will do the same
// and as a result all walls will have been evaluated.
WalkWall(temp, temp.pTopLeft, null, Level.Tile.AdjacentTileDir.RIGHT, Level.Tile.AdjacentTileDir.UP, Cluster.AdjacentClusterDirections.Up);
WalkWall(temp, temp.pTopLeft, null, Level.Tile.AdjacentTileDir.DOWN, Level.Tile.AdjacentTileDir.LEFT, Cluster.AdjacentClusterDirections.Left);
// Store the cluster in the array index relative to its position in the world.
mClusters[x, y] = temp;
}
}
// At this point all intra-connections have been made (cluster crossing connections), so now we need to
// make all inter-connections (nodes linked inside of a cluster). We have to wait till now since the WallWalk
// done above only does 2 sides at a time.
for (Int32 y = 0; y < mClusters.GetLength(1); y++)
{
for (Int32 x = 0; x < mClusters.GetLength(0); x++)
{
Cluster temp = mClusters[x, y];
LinkClusterGraphNodes(temp);
}
}
}
示例3: LoadContent
//.........这里部分代码省略.........
// Add objects that exist from the moment the game starts.
//
GameObjectManager.pInstance.Add(new GameObject("GameObjects\\Items\\Court\\Court"));
GameObjectManager.pInstance.Add(new GameObject("GameObjects\\Items\\Net\\Net"));
GameObjectManager.pInstance.Add(new GameObject("GameObjects\\UI\\Credits\\Backdrop\\Backdrop"));
GameObjectManager.pInstance.Add(new GameObject("GameObjects\\UI\\Credits\\BG\\BG"));
//GameObjectManager.pInstance.Add(new GameObject("GameObjects\\UI\\Credits\\CKuklaButton\\CKuklaButton"));
GameObjectManager.pInstance.Add(new GameObject("GameObjects\\UI\\Credits\\MHughsonButton\\MHughsonButton"));
GameObjectManager.pInstance.Add(new GameObject("GameObjects\\UI\\Credits\\MImmonenButton\\MImmonenButton"));
GameObjectManager.pInstance.Add(new GameObject("GameObjects\\UI\\Credits\\SMcGeeButton\\SMcGeeButton"));
GameObjectManager.pInstance.Add(new GameObject("GameObjects\\UI\\Credits\\SPaxtonButton\\SPaxtonButton"));
GameObjectManager.pInstance.Add(new GameObject("GameObjects\\UI\\GameOver\\GameOver"));
GameObjectManager.pInstance.Add(new GameObject("GameObjects\\UI\\PauseButton\\PauseButton"));
GameObjectManager.pInstance.Add(new GameObject("GameObjects\\UI\\PausedBackdrop\\PausedBackdrop"));
GameObjectManager.pInstance.Add(new GameObject("GameObjects\\UI\\PausedOverlay\\PausedOverlay"));
GameObject titleScreen = GameObjectFactory.pInstance.GetTemplate("GameObjects\\UI\\MainMenu\\FSMMainMenu\\FSMMainMenu");
GameObjectManager.pInstance.Add(titleScreen);
GameObjectManager.pInstance.Add(GameObjectFactory.pInstance.GetTemplate("GameObjects\\UI\\TrialModeLimit\\FSMTrialModeLimit\\FSMTrialModeLimit"));
GameObjectManager.pInstance.Add(GameObjectFactory.pInstance.GetTemplate("GameObjects\\UI\\TrialModeLimit\\TrialModeWatermark\\TrialModeWatermark"));
// Disabled recent trick display. Doesn't look very good and seems not very useful.
//GameObjectManager.pInstance.Add(GameObjectFactory.pInstance.GetTemplate("GameObjects\\UI\\RecentTrickDisplay\\RecentTrickDisplay"));
GameObjectManager.pInstance.Add(GameObjectFactory.pInstance.GetTemplate("GameObjects\\UI\\ScoreLabel\\ScoreLabel"));
GameObjectManager.pInstance.Add(GameObjectFactory.pInstance.GetTemplate("GameObjects\\UI\\HitCountDisplay\\HitCountDisplay"));
GameObjectManager.pInstance.Add(GameObjectFactory.pInstance.GetTemplate("GameObjects\\UI\\HiScoreLabel\\HiScoreLabel"));
GameObjectManager.pInstance.Add(GameObjectFactory.pInstance.GetTemplate("GameObjects\\UI\\HitCountDisplayRecord\\HitCountDisplayRecord"));
// The tiled background image that travels will the player creating the illusion of
// an infinite background image.
GameObject bg = new GameObject();
MBHEngine.Behaviour.Behaviour t = new InfiniteBG(bg, null);
bg.AttachBehaviour(t);
bg.pRenderPriority = 20;
GameObjectManager.pInstance.Add(bg);
// Create the level.
WorldManager.pInstance.Initialize();
// Debug display for different states in the game. This by creating new behaviours, additional
// stats can be displayed.
GameObject debugStatsDisplay = new GameObject();
MBHEngine.Behaviour.Behaviour fps = new MBHEngine.Behaviour.FrameRateDisplay(debugStatsDisplay, null);
debugStatsDisplay.AttachBehaviour(fps);
GameObjectManager.pInstance.Add(debugStatsDisplay);
// The player himself.
GameObject player = new GameObject("GameObjects\\Characters\\Player\\Player");
GameObjectManager.pInstance.Add(player);
// Store the player for easy access.
GameObjectManager.pInstance.pPlayer = player;
GroundShadow.SetTargetMessage setTarg = new GroundShadow.SetTargetMessage();
GameObject shadow = new GameObject("GameObjects\\Items\\PlayerShadow\\PlayerShadow");
GameObjectManager.pInstance.Add(shadow);
setTarg.mTarget_In = player;
shadow.OnMessage(setTarg);
GameObject ball = new GameObject("GameObjects\\Items\\Ball\\Ball");
GameObjectManager.pInstance.Add(ball);
shadow = new GameObject("GameObjects\\Items\\BallShadow\\BallShadow");
GameObjectManager.pInstance.Add(shadow);
setTarg.mTarget_In = ball;
shadow.OnMessage(setTarg);
GameObject partner = new GameObject("GameObjects\\Characters\\Partner\\Partner");
GameObjectManager.pInstance.Add(partner);
shadow = new GameObject("GameObjects\\Items\\PlayerShadow\\PlayerShadow");
GameObjectManager.pInstance.Add(shadow);
setTarg.mTarget_In = partner;
shadow.OnMessage(setTarg);
GameObject opponent = new GameObject("GameObjects\\Characters\\Opponent\\Opponent");
GameObjectManager.pInstance.Add(opponent);
shadow = new GameObject("GameObjects\\Items\\PlayerShadow\\PlayerShadow");
GameObjectManager.pInstance.Add(shadow);
setTarg.mTarget_In = opponent;
shadow.OnMessage(setTarg);
opponent = new GameObject("GameObjects\\Characters\\Opponent\\Opponent");
opponent.pPosX = 75.0f;
GameObjectManager.pInstance.Add(opponent);
shadow = new GameObject("GameObjects\\Items\\PlayerShadow\\PlayerShadow");
GameObjectManager.pInstance.Add(shadow);
setTarg.mTarget_In = opponent;
shadow.OnMessage(setTarg);
// The vingette effect used to dim out the edges of the screen.
//GameObject ving = new GameObject("GameObjects\\Interface\\Vingette\\Vingette");
#if SMALL_WINDOW
//ving.pScale = new Vector2(0.5f, 0.5f);
#endif
//GameObjectManager.pInstance.Add(ving);
DebugMessageDisplay.pInstance.AddConstantMessage("Game Load Complete.");
}