とりあえず、マップを配置。
https://github.com/takishita2nd/HokkaidoWar/tree/2021_develop
こちらのサイトのフリー素材を使用しました。
https://map.finemakeyuri.com/map/101.html
マップデータはこんな感じで作成しようと思います。(データは仮)
{
"citydata":[
{
"id" : 1,
"name" : "礼文",
"population" : 2576,
"money" : 0,
"point" : { "x" :21, "y" :0 },
"link" : [2, 3]
},
{
"id" : 2,
"name" : "利尻",
"population" : 2087,
"money" : 0,
"point" : { "x" :21, "y" :0 },
"link" : [1, 3]
},
{
"id" : 3,
"name" : "利尻富士",
"population" : 2519,
"money" : 0,
"point" : { "x" :21, "y" :0 },
"link" : [1, 2]
}
]
}
これを「Jsonをクラスで貼り付け」すれば、適切なクラスを作成してくれます。
public class MapData
{
public Citydata[] citydata { get; set; }
}
public class Citydata
{
public int id { get; set; }
public string name { get; set; }
public int population { get; set; }
public int money { get; set; }
public Point point { get; set; }
public int[] link { get; set; }
}
public class Point
{
public int x { get; set; }
public int y { get; set; }
}
これでJsonの読み込みはできるはず。
private const string _filename = "hokkaido.json";
public static MapData Load()
{
string json;
using (var stream = new StreamReader(_filename, true))
{
json = stream.ReadToEnd();
}
return JsonConvert.DeserializeObject<MapData>(json);
}
そして、下地の北海道の描画。
public MainScene()
{
}
protected override void OnRegistered()
{
layer = new asd.Layer2D();
AddLayer(layer);
// 下地
var background = new asd.GeometryObject2D();
layer.AddObject(background);
var bgRect = new asd.RectangleShape();
bgRect.DrawingArea = new asd.RectF(0, 0, 1900, 1000);
background.Shape = bgRect;
var hokkaido = new asd.TextureObject2D();
hokkaido.Texture = asd.Engine.Graphics.CreateTexture2D("101.png");
hokkaido.Scale = new asd.Vector2DF(1.5f, 1.5f);
layer.AddObject(hokkaido);
さて、次はマップに都市を貼り付けるのをやっていきます。
「【北海道大戦2021】マップの作成」への1件のフィードバック