_ _ _ _   _ _ _ _ _ _ _ _ _ _ _   _ _ _ _ _ _ _ _
  _|_H_E_M_|_| X B O R D G A M E S |_|_K_O_N_T_A_K_T_|_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|

X Board Games - Skapa spel

Detta kapitel kommer att handla om hur man kan skapa egna spel till spelplattformen.
Nedan visar exempel på hur man skapar spelet Tic Tac Toe, tre i rad.

I projektet ska man lägga in BoardGame.dll som referens, och skapa spelklassen under
namespace XBoardGame.Games.TicTacToe eftersom spelplattformen behöver veta att det
är samma typ av spel.

Exempel:


namespace XBoardGame.Games.TicTacToe
{
	public class Game : AbstractGame
	{
		

namespace är en samling av klasser som liknar varandra, detta kan jämföras med Javas
Packages. XboardGame.Games.TicTacToe behövs för att huvuddelen ska känna igen att
spelet TicTacToe ingår i XBoard/Games.
De andra raden gör att spelet kan ärva egenskaper från klassen AbstractGame.

Klassen AbstractGame innehåller olika metoder, en av dem är init:

public override void Init(string []names, int choice)

names innehåller spelarnas namn och choice är valen, alltså vilken spelpjäs man vill
vara, om något av namnen är strängen "AI", är AI den ena spelaren.
Spelet startas när alla initieringar är klara.

Om spelet har en hjälpfil konverterar GetHelp den till en array av byte och
returnerar den till huvudprogrammet.

public override void Play(Info data)

Play anropas varje gång ett drag görs och skickar information om draget till spelet.
I data finns det en sträng som innehåller namn på spelare och draget som två
punkter; From och To. Om dessa punkter är lika så betyder det att man klickat på en
ruta, annars är det "drag and drop".

public override void End()

End avslutar alla aktiva trådar.

Vid utformningen av spelplanen finns det olika egenskaper som finns att hämta från
spelet, ett exempel är BlockSize som bestämmer hur stora rutorna ska vara och
PlanSize bestämmer hur många rutor spelplanen ska ha i x- och y-led.

GameUpdate används för att skicka ut händelser, t.ex. SoundInfo och BlockInfo.

Nedan visar en lista på information som skickas tillsammans med händelser.

  • BlockInfo
  • SoundInfo
  • StatusInfo
  • PopupInfo
  • GameInfo

X Board SDK innehåller källkoden till DummyGame som är ett exempel på ett enkelt spel.

Download X Board SDK (16,5 MB)

|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ |