Difference between revisions of "RPG LiteNetLib"

From TRCCompSci - AQA Computer Science
Jump to: navigation, search
(Extra Variables)
(Getting Squared.Tiled)
Line 21: Line 21:
 
using Squared.Tiled;
 
using Squared.Tiled;
 
</syntaxhighlight>
 
</syntaxhighlight>
 +
 +
===Creating a Map===
 +
I have created this map in Tiled. The 'dungeon' layer contains the floor and walls of my dungeon, the 'collision' layer contains the box looking tiles to identify the bounds of my room. the 'objects' layer contains an object for 'player1' and 'player2'.
 +
[[File:Netrpgmap.png]]
  
 
==Extra Variables==
 
==Extra Variables==

Revision as of 12:53, 24 May 2019

Requirements

You must follow the previous tutorial first: Example LiteNetLib.

From this you will get a working client and server connection, you should be able to start one instance of the game as the client and one instance of the game as the server.

Making it into a game

Getting Squared.Tiled

This example will use a Tiled map for all of the visuals. You will need to create a new class in your project (left click 'Project' and select 'New Class').

Copy the code from this document: Square.Tiled Class

Or from GitHub: GitHub TRCCompSci tiled-xna

Paste it over the whole code pre generated for you new class.

Add Using Refereneces

You will need to add references to the following:

using System.IO;
using Squared.Tiled;

Creating a Map

I have created this map in Tiled. The 'dungeon' layer contains the floor and walls of my dungeon, the 'collision' layer contains the box looking tiles to identify the bounds of my room. the 'objects' layer contains an object for 'player1' and 'player2'. Netrpgmap.png

Extra Variables

Add the following extra variables:

        Map map;
        Layer collision;
        Vector2 viewportPosition;
        Squared.Tiled.Object sprite;
        string playerobject, other;

LoadContent

Now to load the map, layers and textures. We also assign an instance to sprite, this will be the character controlled by this player.

            map = Map.Load(Path.Combine(Content.RootDirectory, "SimpleRPG.tmx"), Content);
            collision = map.Layers["Collision"];
            map.ObjectGroups["objects"].Objects["player1"].Texture = Content.Load<Texture2D>("hero");
            map.ObjectGroups["objects"].Objects["player2"].Texture = Content.Load<Texture2D>("hero");
            sprite = new Squared.Tiled.Object();