【北海道大戦2021】マップの作成

とりあえず、マップを配置。

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件のフィードバック

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください