{"id":562,"date":"2022-09-06T22:14:35","date_gmt":"2022-09-06T20:14:35","guid":{"rendered":"https:\/\/wesleydegraaf.com\/?page_id=562"},"modified":"2022-09-23T16:00:32","modified_gmt":"2022-09-23T14:00:32","slug":"platformmaker","status":"publish","type":"page","link":"https:\/\/wesleydegraaf.com\/en\/platformmaker\/","title":{"rendered":"PlatformMaker"},"content":{"rendered":"\n<div class=\"wp-block-cover\" style=\"min-height:280px;aspect-ratio:unset;\"><span aria-hidden=\"true\" class=\"wp-block-cover__background has-palette-color-1-background-color has-background-dim-100 has-background-dim\"><\/span><div class=\"wp-block-cover__inner-container is-layout-flow wp-block-cover-is-layout-flow\">\n<p class=\"has-text-align-center wp-block-paragraph\" style=\"font-size:clamp(23.54px, 1.471rem + ((1vw - 3.2px) * 1.208), 39px);\"><strong>PlatformMaker<\/strong><\/p>\n<\/div><\/div>\n\n\n\n<figure class=\"wp-block-embed alignright is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe loading=\"lazy\" title=\"PlatformMaker Trailer\" width=\"1290\" height=\"726\" src=\"https:\/\/www.youtube.com\/embed\/GkgVhOPfTWA?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\" allowfullscreen><\/iframe>\n<\/div><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">PlatformMaker is een platform puzzel game waarbij je blokjes kan oppakken om die vervolgens te plaatsen en daarmee dus je eigen platform maken. De game heeft 35 levels en een levelbuilder. (Over de levelbuilder staat hier onder meer informatie) Er zijn 5 verschillende kleuren blokken ze doen allemaal wat anders. De groene is het standaard blok. Je hebt Blauwe die valt net zo lang totdat het blok iets anders raakt. Het Grijze blok is een on\/off blok. Het paarse blok is een blok als je van het blok af gaat. Gaat het blok weg. Het witte blok is een blok dat oneindig valt. Met deze blokken kun je aardig wat verschillende levels mee maken.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h4 class=\"wp-block-heading\"><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-palette-color-1-color\">Project Info:<\/mark><\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Solo Project<br>Project tijd: Tot 14-02-2021<br>Engine: Unity<br>Code Languages: C#<br>Design Patterns: Singleton &amp; FlyWeight<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/wesleydegraaf.com\/wp-content\/uploads\/2021\/04\/ezgif.com-gif-maker-2.gif\" alt=\"\" class=\"wp-image-125\" width=\"647\" height=\"364\"\/><\/figure>\n\n\n\n<div style=\"height:58px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n<div class=\"dm-code-snippet light no-background  dm-normal-version\" style=\"background-color:#abb8c3;\" snippet-height=\"500px\">\n\t\t\t<div class=\"control-language\">\n                <div class=\"dm-buttons\">\n                    <div class=\"dm-buttons-left\">\n                        <div class=\"dm-button-snippet red-button\"><\/div>\n                        <div class=\"dm-button-snippet orange-button\"><\/div>\n                        <div class=\"dm-button-snippet green-button\"><\/div>\n                    <\/div>\n                    <div class=\"dm-buttons-right\">\n                        <a id=\"dm-copy-raw-code\">\n                        <span class=\"dm-copy-text\">Get the Code!<\/span>\n                        <span class=\"dm-copy-confirmed\" style=\"display:none\">You have it!<\/span>\n                        <span class=\"dm-error-message\" style=\"display:none\">Use a different Browser<\/span><\/a>\n                    <\/div>\n                <\/div>\n                <pre class=\"line-numbers\"><code id=\"dm-code-raw\" class=\"wrap language-typescript\">\n<pre>    void Update()\n    {\n        if (!placed) \/\/Checks if it's not placed\n        {\n            AllowPlacingCheck(); \/\/Checks if it's allowed to be placed\n            Vector3 mousePos = Camera.main.ScreenToWorldPoint(Input.mousePosition);\n            mousePos.z = 0;\n            transform.position = mousePos;\n            if (Input.GetMouseButtonDown(0) && allowPlacing) \/\/Places the block when it's allowed and the left mousebutton is down\n            {\n                placed = true;\n                gameObject.layer = 8;\n                sr.color = new Color32(255, 255, 255, 255);\n                if (type == blocktype.fall) rb.bodyType = RigidbodyType2D.Dynamic;\n                for (int i = 0; i < colliders.Length; i++)\n                {\n                    colliders[i].isTrigger = false;\n                }\n                PlayerController.instance.somethingInHand = false;  \n            } else if (Input.GetMouseButtonDown(1)) \/\/Rotate when right mousebutton is pressed.\n            {\n                transform.Rotate(new Vector3(0, 0, 90));\n            }\n        }\n        if (placed &#038;&#038; type == blocktype.falling)\n        {\n            transform.position = new Vector2(transform.position.x, transform.position.y - .4f * Time.fixedDeltaTime);\n        }\n    }<\/cameracontroller><\/int><\/int><\/itemdata><\/itemdata><\/machinedata><\/machinedata><\/pre>\n<\/code><\/pre>\n\t\t\t<\/div>\n        <\/div>\n\n\n\n<p class=\"has-text-align-center wp-block-paragraph\">Place Function<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity is-style-wide\"\/>\n\n\n\n<h3 class=\"wp-block-heading\"><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-palette-color-1-color\">LevelBuilder<\/mark><\/h3>\n\n\n\n<figure class=\"wp-block-image alignright size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/wesleydegraaf.com\/wp-content\/uploads\/2021\/07\/ezgif.com-gif-maker-3.gif\" alt=\"\" class=\"wp-image-440\" width=\"530\" height=\"297\"\/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">De Levelbuilder heeft toegang tot alle blokken die je ook in de normale levels hebt. De game slaat de blokken in een lijst op. om op een later moment op te slaan (wanneer jij wilt). Als je een level laad in de levelbuilder plaats hij de blokken in het level en natuurlijk in de lijst. De levelbuilder heeft verschillende opties. Je kan blokken verplaatsen, Draaien, Pickup van maken, Verwijderen en de on\/off state aanpassen (als het blok dat toestaat). Deze knoppen zijn ook keybinded.<\/p>\n\n\n\n<div style=\"height:61px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n<div class=\"dm-code-snippet light no-background  dm-normal-version\" style=\"background-color:#abb8c3;\" snippet-height=\"500px\">\n\t\t\t<div class=\"control-language\">\n                <div class=\"dm-buttons\">\n                    <div class=\"dm-buttons-left\">\n                        <div class=\"dm-button-snippet red-button\"><\/div>\n                        <div class=\"dm-button-snippet orange-button\"><\/div>\n                        <div class=\"dm-button-snippet green-button\"><\/div>\n                    <\/div>\n                    <div class=\"dm-buttons-right\">\n                        <a id=\"dm-copy-raw-code\">\n                        <span class=\"dm-copy-text\">Get the Code!<\/span>\n                        <span class=\"dm-copy-confirmed\" style=\"display:none\">You have it!<\/span>\n                        <span class=\"dm-error-message\" style=\"display:none\">Use a different Browser<\/span><\/a>\n                    <\/div>\n                <\/div>\n                <pre class=\"line-numbers\"><code id=\"dm-code-raw\" class=\"wrap language-typescript\">\n<pre>    public void SaveAllData()\n    {\n        if (allPlaceableItems.Count &gt; 0)\n        {\n            List<blocksavedata> blockSaveData = new List<blocksavedata>();\n            foreach (GameObject obj in allPlaceableItems) \n            {\n                LB_BlockPlaceData objBlockData = obj.GetComponent<lb_blockplacedata>();\n                BlockSaveData tempData = new BlockSaveData \/\/Creates BlockSaveData for everyBlock\n                {\n                    position = obj.transform.position,\n                    rotation = objBlockData.rotation,\n                    pickUp = objBlockData.Pickup,\n                    type = objBlockData.data.type.ToString(),\n                    blockNumber = objBlockData.data.blockNumber,\n                    onState = objBlockData.onState\n                };\n                blockSaveData.Add(tempData); \n            }\n            LB_SaveSystem.Save(blockSaveData, LB_SaveMenu.instance.customFileName + \".json\"); \/\/Send all the blockSaveData to SaveSystem.\n        }\n    }<\/lb_blockplacedata><\/blocksavedata><\/blocksavedata><\/pre>\n<\/code><\/pre>\n\t\t\t<\/div>\n        <\/div>\n\n\n<div class=\"dm-code-snippet light no-background  dm-normal-version\" style=\"background-color:#abb8c3;\" snippet-height=\"500px\">\n\t\t\t<div class=\"control-language\">\n                <div class=\"dm-buttons\">\n                    <div class=\"dm-buttons-left\">\n                        <div class=\"dm-button-snippet red-button\"><\/div>\n                        <div class=\"dm-button-snippet orange-button\"><\/div>\n                        <div class=\"dm-button-snippet green-button\"><\/div>\n                    <\/div>\n                    <div class=\"dm-buttons-right\">\n                        <a id=\"dm-copy-raw-code\">\n                        <span class=\"dm-copy-text\">Get the Code!<\/span>\n                        <span class=\"dm-copy-confirmed\" style=\"display:none\">You have it!<\/span>\n                        <span class=\"dm-error-message\" style=\"display:none\">Use a different Browser<\/span><\/a>\n                    <\/div>\n                <\/div>\n                <pre class=\"line-numbers\"><code id=\"dm-code-raw\" class=\"wrap language-typescript\">\n<pre>public static void Save(List<blocksavedata> saveData, string _fileName)\n    {\n        string allJsonText = \"\";\n        string fileName = _fileName;\n\n        foreach (BlockSaveData data in saveData)\n        {\n            string json = JsonUtility.ToJson(data);\n            allJsonText += json + \"\\n\";\n        }\n        if (Directory.Exists(Application.dataPath + \"\/CustomLevels\")) File.WriteAllText(Application.dataPath + \"\/CustomLevels\/\" + fileName, allJsonText); \n        else\n        {\n            Directory.CreateDirectory(Application.dataPath + \"\/CustomLevels\"); \/\/Creates CustomLevels Folder when there isn't one\n            Save(saveData, _fileName);\n        }\n     }<\/blocksavedata><\/pre>\n<\/code><\/pre>\n\t\t\t<\/div>\n        <\/div>\n\n\n\n<div style=\"height:83px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n<p><iframe loading=\"lazy\" frameborder=\"0\" src=\"https:\/\/itch.io\/embed\/779060?bg_color=ffffff&amp;fg_color=222222&amp;link_color=05ba48&amp;border_color=bebebe\" width=\"552\" height=\"167\"><a href=\"https:\/\/double-gezicht.itch.io\/platformmaker\">PlatformMaker by Double_Gezicht<\/a><\/iframe><\/p>\n","protected":false},"excerpt":{"rendered":"<p>PlatformMaker is een platform puzzel game waarbij je blokjes kan oppakken om die vervolgens te plaatsen en daarmee dus je eigen platform maken. De game heeft 35 levels en een levelbuilder. (Over de levelbuilder staat hier onder meer informatie) Er zijn 5 verschillende kleuren blokken ze doen allemaal wat anders. De groene is het standaard [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-562","page","type-page","status-publish","hentry"],"blocksy_meta":{"styles_descriptor":{"styles":{"desktop":"","tablet":"","mobile":""},"google_fonts":[],"version":6}},"_links":{"self":[{"href":"https:\/\/wesleydegraaf.com\/en\/wp-json\/wp\/v2\/pages\/562","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wesleydegraaf.com\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/wesleydegraaf.com\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/wesleydegraaf.com\/en\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/wesleydegraaf.com\/en\/wp-json\/wp\/v2\/comments?post=562"}],"version-history":[{"count":29,"href":"https:\/\/wesleydegraaf.com\/en\/wp-json\/wp\/v2\/pages\/562\/revisions"}],"predecessor-version":[{"id":743,"href":"https:\/\/wesleydegraaf.com\/en\/wp-json\/wp\/v2\/pages\/562\/revisions\/743"}],"wp:attachment":[{"href":"https:\/\/wesleydegraaf.com\/en\/wp-json\/wp\/v2\/media?parent=562"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}