shiftalow [Lexaloffle Blog Feed]https://www.lexaloffle.com/bbs/?uid=32759 KNUTIL Scene Manager Library <p> <table><tr><td> <a href="/bbs/?pid=59538#p"> <img src="/bbs/thumbs/pico8_knutil-0.png" style="height:256px"></a> </td><td width=10></td><td valign=top> <a href="/bbs/?pid=59538#p"> knutil</a><br><br> by <a href="/bbs/?uid=32759"> shiftalow</a> <br><br><br> <a href="/bbs/?pid=59538#p"> [Click to Play]</a> </td></tr></table> </p> <p>&quot;KNUTIL&quot; is a library for PICO-8 that contains functions that are frequently used in the games I have created.<br /> I've kept the functions that I eventually needed in my production.</p> <p>In this cart, I show you how the scene functions work with animations.<br /> Z key: Execute the order command.<br /> Up/Down: Select the order command.</p> <p><strong>SCENE MANAGER</strong> controls and replaces the order in which functions are called with a small number of tokens by using consecutive string instructions.<br /> The generated SCENE can register a global function as an ORDER.<br /> One of the registered ORDERS is retrieved by SCENE and the process is repeated for the specified length.<br /> When the processing is finished, it repeats the processing of the next ORDER.<br /> This is expected to facilitate the planning of the performance. </p> <h2>Using SCENE</h2> <p><div><div><input type="button" value=" Show " onClick="if (this.parentNode.parentNode.getElementsByTagName('div')[1].getElementsByTagName('div')[0].style.display != '') { this.parentNode.parentNode.getElementsByTagName('div')[1].getElementsByTagName('div')[0].style.display = ''; this.innerText = ''; this.value = ' Hide '; } else { this.parentNode.parentNode.getElementsByTagName('div')[1].getElementsByTagName('div')[0].style.display = 'none'; this.innerText = ''; this.value = ' Show '; }"></div><div><div style="display: none;"></p> <h3>Create a SCENE ( MKSCENES )</h3> <div> <div style="max-width:800px; overflow:auto; margin-bottom:12px"> <table style="width:100%" cellspacing=0 cellpadding=0> <tr><td background=/gfx/code_bg1.png width=16><div style="width:16px;display:block"></div></td> <td background=/gfx/code_bg0.png> <div style="font-family : courier; color: #000000; display:absolute; padding-left:10px; padding-top:4px; padding-bottom:4px; "> <pre>SCENES, INDEXES = MKSCENES( { 'UPD', 'DRW', 'KEY' } )</pre></div></td> <td background=/gfx/code_bg1.png width=16><div style="width:16px;display:block"></div></td> </tr></table></div></div> <p>SCENES: Contains the generated SCENEs.<br /> INDEXES: The indexes needed to run the SCENES in the order they were generated.</p> <h3>Enter an ORDER into a SCENE ( CMDSCENES )</h3> <div> <div style="max-width:800px; overflow:auto; margin-bottom:12px"> <table style="width:100%" cellspacing=0 cellpadding=0> <tr><td background=/gfx/code_bg1.png width=16><div style="width:16px;display:block"></div></td> <td background=/gfx/code_bg0.png> <div style="font-family : courier; color: #000000; display:absolute; padding-left:10px; padding-top:4px; padding-bottom:4px; "> <pre>CMDSCENES([[ [SCENE NAME] [COMMAND] [FUNCTION NAME] [DURATION FRAME] [SCENE NAME] [COMMAND] [FUNCTION NAME] [DURATION FRAME] ... ]])</pre></div></td> <td background=/gfx/code_bg1.png width=16><div style="width:16px;display:block"></div></td> </tr></table></div></div> <ul> <li>[SCENE NAME] : Specify the name generated by MKSCENES.</li> <li>[COMMAND] : Specify the following ORDER COMMANDS.</li> <li>[FUNCTION NAME] : Specify the name of the global function.</li> <li>[DURATION FRAME]: Specifies the number of frames to be sustained; if set to 0, it will not automatically terminate.</li> </ul> <p></div></div></div></p> <h2>ORDER COMMANDS</h2> <p><div><div><input type="button" value=" Show " onClick="if (this.parentNode.parentNode.getElementsByTagName('div')[1].getElementsByTagName('div')[0].style.display != '') { this.parentNode.parentNode.getElementsByTagName('div')[1].getElementsByTagName('div')[0].style.display = ''; this.innerText = ''; this.value = ' Hide '; } else { this.parentNode.parentNode.getElementsByTagName('div')[1].getElementsByTagName('div')[0].style.display = 'none'; this.innerText = ''; this.value = ' Show '; }"></div><div><div style="display: none;"></p> <h3>ST (SET): Delete all stacked ORDERS in SCENE and set new ORDERS.</h3> <div> <div style="max-width:800px; overflow:auto; margin-bottom:12px"> <table style="width:100%" cellspacing=0 cellpadding=0> <tr><td background=/gfx/code_bg1.png width=16><div style="width:16px;display:block"></div></td> <td background=/gfx/code_bg0.png> <div style="font-family : courier; color: #000000; display:absolute; padding-left:10px; padding-top:4px; padding-bottom:4px; "> <pre>CMDSCENES[[ UPD ST MANAGE 0 ]]</pre></div></td> <td background=/gfx/code_bg1.png width=16><div style="width:16px;display:block"></div></td> </tr></table></div></div> <p>Clean the SCENE &quot;UPD&quot; and add a &quot;FUNCTION MANAGE&quot;.</p> <h3>PS (PUSH): Add an ORDER to the SCENE</h3> <div> <div style="max-width:800px; overflow:auto; margin-bottom:12px"> <table style="width:100%" cellspacing=0 cellpadding=0> <tr><td background=/gfx/code_bg1.png width=16><div style="width:16px;display:block"></div></td> <td background=/gfx/code_bg0.png> <div style="font-family : courier; color: #000000; display:absolute; padding-left:10px; padding-top:4px; padding-bottom:4px; "> <pre>CMDSCENES[[ KEY PS KEYCHECK 0 ]]</pre></div></td> <td background=/gfx/code_bg1.png width=16><div style="width:16px;display:block"></div></td> </tr></table></div></div> <p>Add the SCENE &quot;KEY&quot; with &quot;FUNCTION KEYCHECK&quot; at the top.</p> <h3>US (UNSHIFT): interrupt ORDER at the beginning of a SCENE.</h3> <div> <div style="max-width:800px; overflow:auto; margin-bottom:12px"> <table style="width:100%" cellspacing=0 cellpadding=0> <tr><td background=/gfx/code_bg1.png width=16><div style="width:16px;display:block"></div></td> <td background=/gfx/code_bg0.png> <div style="font-family : courier; color: #000000; display:absolute; padding-left:10px; padding-top:4px; padding-bottom:4px; "> <pre>CMDSCENES[[ DRW US DRAWRECT 200 DRW US NIL 100 DRW US DRAWCIRC 200 ]]</pre></div></td> <td background=/gfx/code_bg1.png width=16><div style="width:16px;display:block"></div></td> </tr></table></div></div> <p>Scene &quot;DRW&quot; is executed in the ORDER of DRAWCIRC, NIL, DRAWRECT.</p> <h3>RM (REMOVE): remove one ORDER.</h3> <div> <div style="max-width:800px; overflow:auto; margin-bottom:12px"> <table style="width:100%" cellspacing=0 cellpadding=0> <tr><td background=/gfx/code_bg1.png width=16><div style="width:16px;display:block"></div></td> <td background=/gfx/code_bg0.png> <div style="font-family : courier; color: #000000; display:absolute; padding-left:10px; padding-top:4px; padding-bottom:4px; "> <pre>CMDSCENES[[ DRW RM ]]</pre></div></td> <td background=/gfx/code_bg1.png width=16><div style="width:16px;display:block"></div></td> </tr></table></div></div> <p>Removes the first ORDER of the SCENE &quot;DRW&quot;.</p> <div> <div style="max-width:800px; overflow:auto; margin-bottom:12px"> <table style="width:100%" cellspacing=0 cellpadding=0> <tr><td background=/gfx/code_bg1.png width=16><div style="width:16px;display:block"></div></td> <td background=/gfx/code_bg0.png> <div style="font-family : courier; color: #000000; display:absolute; padding-left:10px; padding-top:4px; padding-bottom:4px; "> <pre>CMDSCENES[[ DRW RM DRAWRECT ]]</pre></div></td> <td background=/gfx/code_bg1.png width=16><div style="width:16px;display:block"></div></td> </tr></table></div></div> <p>Deletes the DRAWRECT ORDER of SCENE &quot;DRW&quot;, starting from the top.</p> <h3>CL (CLEAR): Remove all stacked ORDERS from the SCENE.</h3> <div> <div style="max-width:800px; overflow:auto; margin-bottom:12px"> <table style="width:100%" cellspacing=0 cellpadding=0> <tr><td background=/gfx/code_bg1.png width=16><div style="width:16px;display:block"></div></td> <td background=/gfx/code_bg0.png> <div style="font-family : courier; color: #000000; display:absolute; padding-left:10px; padding-top:4px; padding-bottom:4px; "> <pre>CMDSCENES[[ KEY CL ]]</pre></div></td> <td background=/gfx/code_bg1.png width=16><div style="width:16px;display:block"></div></td> </tr></table></div></div> <p>Deletes all the ORDERS registered in the SCENE &quot;KEY&quot;.</p> <h3>FI (FIND): Search and retrieve ORDERS from a SCENE.</h3> <div> <div style="max-width:800px; overflow:auto; margin-bottom:12px"> <table style="width:100%" cellspacing=0 cellpadding=0> <tr><td background=/gfx/code_bg1.png width=16><div style="width:16px;display:block"></div></td> <td background=/gfx/code_bg0.png> <div style="font-family : courier; color: #000000; display:absolute; padding-left:10px; padding-top:4px; padding-bottom:4px; "> <pre>RES = CMDSCENES[[ DRW FI DRAWRECT ]]</pre></div></td> <td background=/gfx/code_bg1.png width=16><div style="width:16px;display:block"></div></td> </tr></table></div></div> <p>In this case, the return value RES is a table, and the ORDER &quot;DRAWRECT&quot; is in the first element.</p> <p></div></div></div></p> <h2>Create a function for ORDERS.</h2> <p><div><div><input type="button" value=" Show " onClick="if (this.parentNode.parentNode.getElementsByTagName('div')[1].getElementsByTagName('div')[0].style.display != '') { this.parentNode.parentNode.getElementsByTagName('div')[1].getElementsByTagName('div')[0].style.display = ''; this.innerText = ''; this.value = ' Hide '; } else { this.parentNode.parentNode.getElementsByTagName('div')[1].getElementsByTagName('div')[0].style.display = 'none'; this.innerText = ''; this.value = ' Show '; }"></div><div><div style="display: none;"></p> <div> <div style="max-width:800px; overflow:auto; margin-bottom:12px"> <table style="width:100%" cellspacing=0 cellpadding=0> <tr><td background=/gfx/code_bg1.png width=16><div style="width:16px;display:block"></div></td> <td background=/gfx/code_bg0.png> <div style="font-family : courier; color: #000000; display:absolute; padding-left:10px; padding-top:4px; padding-bottom:4px; "> <pre>FUNCTION KEYCHECK( ORDER ) PRINT('PROCESSIONG ORDER') END</pre></div></td> <td background=/gfx/code_bg1.png width=16><div style="width:16px;display:block"></div></td> </tr></table></div></div> <p></div></div></div></p> <h2>Run each SCENE.</h2> <p><div><div><input type="button" value=" Show " onClick="if (this.parentNode.parentNode.getElementsByTagName('div')[1].getElementsByTagName('div')[0].style.display != '') { this.parentNode.parentNode.getElementsByTagName('div')[1].getElementsByTagName('div')[0].style.display = ''; this.innerText = ''; this.value = ' Hide '; } else { this.parentNode.parentNode.getElementsByTagName('div')[1].getElementsByTagName('div')[0].style.display = 'none'; this.innerText = ''; this.value = ' Show '; }"></div><div><div style="display: none;"></p> <div> <div style="max-width:800px; overflow:auto; margin-bottom:12px"> <table style="width:100%" cellspacing=0 cellpadding=0> <tr><td background=/gfx/code_bg1.png width=16><div style="width:16px;display:block"></div></td> <td background=/gfx/code_bg0.png> <div style="font-family : courier; color: #000000; display:absolute; padding-left:10px; padding-top:4px; padding-bottom:4px; "> <pre>## In the _UPDATE() and _DRAW() functions FOR V IN ALL(INDEXES) SCENES[V].TRA() END</pre></div></td> <td background=/gfx/code_bg1.png width=16><div style="width:16px;display:block"></div></td> </tr></table></div></div> <p></div></div></div></p> <h2>ORDER function</h2> <p><div><div><input type="button" value=" Show " onClick="if (this.parentNode.parentNode.getElementsByTagName('div')[1].getElementsByTagName('div')[0].style.display != '') { this.parentNode.parentNode.getElementsByTagName('div')[1].getElementsByTagName('div')[0].style.display = ''; this.innerText = ''; this.value = ' Hide '; } else { this.parentNode.parentNode.getElementsByTagName('div')[1].getElementsByTagName('div')[0].style.display = 'none'; this.innerText = ''; this.value = ' Show '; }"></div><div><div style="display: none;"></p> <div> <div style="max-width:800px; overflow:auto; margin-bottom:12px"> <table style="width:100%" cellspacing=0 cellpadding=0> <tr><td background=/gfx/code_bg1.png width=16><div style="width:16px;display:block"></div></td> <td background=/gfx/code_bg0.png> <div style="font-family : courier; color: #000000; display:absolute; padding-left:10px; padding-top:4px; padding-bottom:4px; "> <pre>FUNCTION [FUNCTION NAME] ( ORDER ) CLS() IF ORDER.FST THEN STOP&quot;IT'S FIRST!&quot; END IF ORDER.LST THEN STOP&quot;IT'S LAST!&quot; END PRINT('COUNT: '..ORDER.CNT..'/'..ORDER.DUR) END</pre></div></td> <td background=/gfx/code_bg1.png width=16><div style="width:16px;display:block"></div></td> </tr></table></div></div> <p></div></div></div></p> <h2>Properties of ORDER</h2> <p><div><div><input type="button" value=" Show " onClick="if (this.parentNode.parentNode.getElementsByTagName('div')[1].getElementsByTagName('div')[0].style.display != '') { this.parentNode.parentNode.getElementsByTagName('div')[1].getElementsByTagName('div')[0].style.display = ''; this.innerText = ''; this.value = ' Hide '; } else { this.parentNode.parentNode.getElementsByTagName('div')[1].getElementsByTagName('div')[0].style.display = 'none'; this.innerText = ''; this.value = ' Show '; }"></div><div><div style="display: none;"></p> <h3>FST / LST</h3> <p>ORDER.FST : at first execution<br /> ORDER.LST : at the last execution.</p> <h3>CNT / DUR</h3> <p>ORDER.CNT : Execution count of the currently running ORDER.<br /> ORDER.DUR : Count of expected end of the currently running ORDER.</p> <h3>PRM</h3> <p>It contains the value specified in the second argument of CMDSCENES.</p> <h3>RATE</h3> <p>Used to specify the end from the start, e.g. in coordinates.</p> <div> <div style="max-width:800px; overflow:auto; margin-bottom:12px"> <table style="width:100%" cellspacing=0 cellpadding=0> <tr><td background=/gfx/code_bg1.png width=16><div style="width:16px;display:block"></div></td> <td background=/gfx/code_bg0.png> <div style="font-family : courier; color: #000000; display:absolute; padding-left:10px; padding-top:4px; padding-bottom:4px; "> <pre>ORDER.rate('[start] [end]', duration, count )</pre></div></td> <td background=/gfx/code_bg1.png width=16><div style="width:16px;display:block"></div></td> </tr></table></div></div> <p>The default values for duration and count are the ones specified in CMDSCENES.</p> <h3>Force ORDER termination.</h3> <p>Do <span style=" display:inline-block; background-color:#eee; padding:2px; margin: 4px; padding-left: 8px; padding-right: 8px; color:#222">return 1<br /> or<br /> do <span style=" display:inline-block; background-color:#eee; padding:2px; margin: 4px; padding-left: 8px; padding-right: 8px; color:#222">ORDER.rm = 1.<br /> </div></div></div></p> <h2>Functions other than scenes</h2> <p>There is one in this library that I have already posted.<br /> <a href="https://www.lexaloffle.com/bbs/?tid=36325">HTBL</a><br /> <a href="https://www.lexaloffle.com/bbs/?tid=32830">VDMP</a></p> <p>Functions not explained (I will post them some other time)<br /> <div><div><input type="button" value=" Show " onClick="if (this.parentNode.parentNode.getElementsByTagName('div')[1].getElementsByTagName('div')[0].style.display != '') { this.parentNode.parentNode.getElementsByTagName('div')[1].getElementsByTagName('div')[0].style.display = ''; this.innerText = ''; this.value = ' Hide '; } else { this.parentNode.parentNode.getElementsByTagName('div')[1].getElementsByTagName('div')[0].style.display = 'none'; this.innerText = ''; this.value = ' Show '; }"></div><div><div style="display: none;"><br /> TONORM<br /> TOHEX<br /> TTOH<br /> HTOT<br /> REPLACE<br /> EXRECT(RFMT)<br /> TOC<br /> JOIN<br /> SPLIT(wrapper function)<br /> HTD<br /> SLICE<br /> CAT<br /> COMB<br /> TBFILL<br /> ECXY<br /> OUTLINE<br /> TMAP<br /> MKPAL<br /> ECPALT<br /> TTABLE<br /> INRNG<br /> AMID<br /> BMCH<br /> </div></div></div></p> https://www.lexaloffle.com/bbs/?tid=32411 https://www.lexaloffle.com/bbs/?tid=32411 Wed, 03 Mar 2021 12:49:21 UTC Publish on Steam! <p>Hello, everyone.</p> <p>A few days ago, a game I created called KONSAIRI was released on Steam!<br /> <a href="http://store.steampowered.com/app/1448220/">http://store.steampowered.com/app/1448220/</a></p> <p>There are still very few examples of PICO-8 games on the Steam platform as PICO-8 games.</p> <p>I think that's because, as content, PICO8 titles are seen as lacking when compared to other game engines and those created in a free development environment with no restrictions.</p> <p>But I challenge you to dream of being in the same store as a masterpiece game, despite its limitations.</p> <p>I also wish to see more interest in PICO-8 in my part of Japan.</p> <p> <table><tr><td width=64> <img src="https://www.lexaloffle.com/bbs/gfxc/32759_4.png" width=64 height=64> </td> <td valign=bottom> <a style="cursor:pointer;font-size:8pt" onclick=' var el = document.getElementById("gfxcode_32759_4"); if (el.style.display == "none") el.style.display = ""; else el.style.display = "none"; microAjax("https://www.lexaloffle.com/bbs/gfxc/32759_4.txt", function (retdata){ var el = document.getElementById("gfxcode_32759_4"); el.innerHTML = retdata; el.focus(); el.select(); } ); '> [16x16]</a> </td></tr> <tr><td colspan=2> <textarea rows=3 class=lexinput id="gfxcode_32759_4" style="width:640px;background-color:#fed;display:none;overflow:hidden; font-size:6pt;"></textarea> </td> </tr> </table> </p> https://www.lexaloffle.com/bbs/?tid=40108 https://www.lexaloffle.com/bbs/?tid=40108 Sun, 01 Nov 2020 14:36:32 UTC local_config.txt global_config.txt <p>Hello.</p> <p>Suggestion.<br /> I would like the exported file to include the current config.txt (global_config.txt) as local_config.txt in the exported file.</p> <p>This will allow us to play from the creator's ideal config in another user's environment.</p> <p>&quot;global_config.txt&quot; refers to the config.txt that I've been using.<br /> If both global_config.txt and local_config.txt exist, local_config.txt is assumed to take precedence.</p> <p><strong><em>Sequence of events</em></strong><br /> <div><div><input type="button" value=" Show " onClick="if (this.parentNode.parentNode.getElementsByTagName('div')[1].getElementsByTagName('div')[0].style.display != '') { this.parentNode.parentNode.getElementsByTagName('div')[1].getElementsByTagName('div')[0].style.display = ''; this.innerText = ''; this.value = ' Hide '; } else { this.parentNode.parentNode.getElementsByTagName('div')[1].getElementsByTagName('div')[0].style.display = 'none'; this.innerText = ''; this.value = ' Show '; }"></div><div><div style="display: none;"><br /> I recently released the PICO-8 app in executable format.<br /> However, the user's environment that downloaded it had different operations and a lower frame rate for inactive windows.<br /> The released manual had to be rewritten and the creator was unable to provide the ideal play environment.<br /> </div></div></div></p> <p>A question thread containing this<br /> <a href="https://www.lexaloffle.com/bbs/?tid=39940">https://www.lexaloffle.com/bbs/?tid=39940</a></p> https://www.lexaloffle.com/bbs/?tid=39958 https://www.lexaloffle.com/bbs/?tid=39958 Mon, 19 Oct 2020 03:47:42 UTC Drop Frame in the back window <p>Is there a recommended coding method that would eliminate the drop frames that occur when the pico8 window is turned to the back?<br /> Or is there a memory address I can set?</p> <p>I want to keep the number of times to execute _update60() and draw() the same, even at 30fps.</p> <img style="" border=0 src="/media/32759/2_0.gif" alt="" /> https://www.lexaloffle.com/bbs/?tid=39940 https://www.lexaloffle.com/bbs/?tid=39940 Sun, 18 Oct 2020 03:05:42 UTC Release KONSAIRI! And then... <p>Has anyone played it?</p> <p><a href="https://bitchunk.itch.io/konsairi">https://bitchunk.itch.io/konsairi</a></p> <p><blockquote class="twitter-tweet" data-lang="en"><a href="https://twitter.com/lexaloffle/status/1309871182594732032">[tweet <img src="/gfx/load16.gif">]</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script></p> https://www.lexaloffle.com/bbs/?tid=39781 https://www.lexaloffle.com/bbs/?tid=39781 Wed, 30 Sep 2020 12:29:47 UTC BBS: I don't know how to erase a draft. <img style="" border=0 src="/media/32759/スクリーンショット 2020-09-25 175221.png" alt="" /> <p>Before I knew it, I had made a lot of them...</p> https://www.lexaloffle.com/bbs/?tid=39723 https://www.lexaloffle.com/bbs/?tid=39723 Fri, 25 Sep 2020 08:54:24 UTC KONSAIRI (Action Adventure / Dungeon mode) <img style="" border=0 src="/media/32759/1_1.gif" alt="" /> <p>I'm developing KONSAIRI, a game I've been working on for a while now that I'm finalizing and checking throughout the game.</p> <p>As I mentioned before, the goal of the game is to move back and forth between 16 different areas to reach the final destination.</p> <p>However, it seemed to feel like the same old thing before you even reach halfway through the game.</p> <p>That's why i added Dungeon mode, which changes the look and feel of the adventure dramatically.</p> <p>Not only do you take damage when you touch an enemy, but there are hidden passages and hints scattered throughout the game that will help you get to the true ending.</p> <img style="" border=0 src="/media/32759/1_2.gif" alt="" /> <p>When you stand in front of an enemy, you will see a timing gauge.<br /> It's not for attacking, but for getting through to the enemy's rear.<br /> A well-timed &quot;step move&quot; will allow you to move forward with no damage.<br /> If time passes, you will be damaged.<br /> If you move away from the spot, you can avoid the danger.</p> <p>You can bring in items, throw them and use skills.<br /> You can open doors, read hints, light up and explore, and more...!</p> <h2>KONSAIRI TRIAL version</h2> <p><strong> <a href="https://bitchunk.itch.io/konsairi">https://bitchunk.itch.io/konsairi</a> </strong></p> https://www.lexaloffle.com/bbs/?tid=39478 https://www.lexaloffle.com/bbs/?tid=39478 Thu, 03 Sep 2020 16:01:42 UTC Feature Request: Horizontal scrolling in the code editor <p>I think being able to scroll horizontally with &quot;Shift + mouse wheel&quot; would make it easier to check for longer lines.</p> <p>I can also use line breaks to keep up appearances, but I don't want to add too many characters.</p> https://www.lexaloffle.com/bbs/?tid=39262 https://www.lexaloffle.com/bbs/?tid=39262 Mon, 17 Aug 2020 13:30:01 UTC KONSAIRI (Action Adventure / 4x carts project) <h2>Current Development</h2> <p>I'm building a relationship between NPCs and area map connections.<br /> These are mainly for the latter 8 areas.<br /> (The &quot;keys&quot; that NPCs have might be easier to understand.)</p> <p>This game has a combined total of 16 areas.<br /> There are also useful items that will help you move through such a large world.<br /> These items can be found at the end of the first half of the game.</p> <p>Then, the image below shows the map of the first half of the game.</p> <h2>Reduced map for 8 areas</h2> <p>Most of the maps are over 128*128 cell size.<br /> The aspect ratio varies from area to area and the structure is challenging to explore.<br /> Once you get your &quot;KUWAI&quot;, use it! You can look around the entire area.</p> <img style="" border=0 src="/media/32759/4xcartporj_02.png" alt="" /> <h2>Actual map display</h2> <p>An animated tile is provided in each area.<br /> These tiles bring about the effect of the wind.<br /> You can use &quot;PERSNIP&quot; to change the wind (flow).</p> <img style="" border=0 src="/media/32759/konsaimap_1.gif" alt="" /> <h2>Awaking bells</h2> <p>The status limit is relaxed when you earn a BELL.<br /> When you earn bells, the status limit is relaxed.<br /> Bells can be earned by eating with NPCs when your friendship is somewhat higher.</p> <p>The higher your status, the less items you'll have to wear out or take time to move around.</p> <img style="" border=0 src="/media/32759/3_001.png" alt="" /> <h2>The color of the BELL is the color of the POT</h2> <p>Acquiring a bell of the same color (material) will have no effect.<br /> You may be able to get bells of a different color from a different NPC.<br /> The color of the pot and the color of the bell are the same; check it when you help the NPC.</p> <img style="" border=0 src="/media/32759/3_3.gif" alt="" /> <h2>Updated KONSAIRI trial version!</h2> <p>The performance of the action part has been improved!<br /> Download a playable file here.<br /> <a href="https://bitchunk.itch.io/konsairi">https://bitchunk.itch.io/konsairi</a></p> <p>Have fun in a small and wide world! ;)</p> https://www.lexaloffle.com/bbs/?tid=39172 https://www.lexaloffle.com/bbs/?tid=39172 Thu, 13 Aug 2020 02:27:35 UTC srand() reproducibility <p>Does the random value generation by srand() always produce the same pattern output as long as the same seed value is input?</p> <p>Does the output pattern change due to a change in the environment?<br /> For example, the upgrades, the amount of code, the timing of the exports, the machine or OS you're running...</p> <p>So far I haven't been able to verify much and I haven't encountered the fact that the output results have changed, but I am concerned.</p> <p>Thanks for your help.</p> https://www.lexaloffle.com/bbs/?tid=38917 https://www.lexaloffle.com/bbs/?tid=38917 Mon, 20 Jul 2020 12:55:11 UTC 4x carts project <p>I'm working on a big project for PICO8.</p> <p>Around the end of 2018, I learned about the scalability of multi-carting and continued to research and create it to this day.</p> <p>We were able to give each of the four carts a role, rather than just being a data bank .</p> <p>Cart 1: Title/Ending/3D dungeon scene<br /> Cart 2: Platformer Scene<br /> Cart 3: Cooking Scene<br /> Cart 4: World Map Scene/Important Item Riddle Solving Operation</p> <img style="" border=0 src="/media/32759/konsai_carts_.png" alt="" /> <p>Because of these many factors, an hour or more of play is a must.<br /> Data saves are automatic.<br /> (Position when resume, growth and LIFE, possessions, time, status of NPCs helped, farmland, important items, veggies, history of veggies removed, history of enemies removed, and other things for cart-to-cart interaction).</p> <p>Most of the game system is complete. I'm currently assembling the map for the later areas.</p> <p>If anyone is planning an original, reasonably large game, PICO8 will be used as a prototype. It looks like they will progress the production and do the actual product in another game engine. I've seen some of those opinions. (Not my project.)</p> <p>So sometimes what I do seems like a waste of time or laziness in choosing a development environment.<br /> I don't see a lot of things planned in PICO8 from start to finish. It's not much.<br /> Is it because of the scarcity that I am still developing? I don't think that's the only reason.</p> <p>I'm not great at asking questions and such. Still, I've been able to implement a lot of features in the game because people before me have been posting and discussing their work repeatedly. Thanks for leaving the information, very grateful to you.</p> <p><em>(I think the English translation is unnatural because it is a long sentence.)</em></p> <p><a href="https://bitchunk.itch.io/konsairi">KONSAIRI trial</a></p> https://www.lexaloffle.com/bbs/?tid=38671 https://www.lexaloffle.com/bbs/?tid=38671 Sat, 04 Jul 2020 07:18:58 UTC pelogen (3D modeling tool) <p> <table><tr><td> <a href="/bbs/?pid=74562#p"> <img src="/bbs/thumbs/pico8_pelogen-6.png" style="height:256px"></a> </td><td width=10></td><td valign=top> <a href="/bbs/?pid=74562#p"> pelogen 0.2.3a</a><br><br> by <a href="/bbs/?uid=32759"> shiftalow</a> <br><br><br> <a href="/bbs/?pid=74562#p"> [Click to Play]</a> </td></tr></table> </p> <h2>What the tool can do</h2> <ul> <li>3D modeling in 15x15x15 size.</li> <li>Save and load into a sprite sheet.</li> <li>Export the loading code from the sprite sheet.</li> <li>Export the drawing code of the 3D model.</li> </ul> <p><strong>Control are followings(WIP)</strong><br /> <strong><a href="https://docs.google.com/spreadsheets/d/1BlpN39me-ndc_TtKGzQqD-C15_uzNaJlBnmwcKOoymY/edit?usp=sharing">Reference</a></strong></p> <h3>Examples of actual use</h3> <img style="" border=0 src="/media/32759/1_0.gif" alt="" /> <h3>updated (v0.2.3)</h3> <ul> <li>Added: Display of the next surface to be generated.</li> <li>Added: Blinking of the face to be drawn by the selected vertex.</li> <li>Added: Blinking of the cursor and vertex pointer.</li> <li>Adjusted: Shader filter switching.</li> <li>Adjusted: Shader palette.</li> <li>Adjusted: Rendering of trifill.</li> <li>Deleted: 4 grid lines on each axis.</li> </ul> <h2>Old ver</h2> <h3>v0.2.2</h3> <p><div><div><input type="button" value=" Show " onClick="if (this.parentNode.parentNode.getElementsByTagName('div')[1].getElementsByTagName('div')[0].style.display != '') { this.parentNode.parentNode.getElementsByTagName('div')[1].getElementsByTagName('div')[0].style.display = ''; this.innerText = ''; this.value = ' Hide '; } else { this.parentNode.parentNode.getElementsByTagName('div')[1].getElementsByTagName('div')[0].style.display = 'none'; this.innerText = ''; this.value = ' Show '; }"></div><div><div style="display: none;"></p> <h3>updated (v0.2.2)</h3> <p> <table><tr><td> <a href="/bbs/?pid=74562#p"> <img src="/bbs/thumbs/pico8_pelogen-4.png" style="height:256px"></a> </td><td width=10></td><td valign=top> <a href="/bbs/?pid=74562#p"> pelogen 0.2.2a</a><br><br> by <a href="/bbs/?uid=32759"> shiftalow</a> <br><br><br> <a href="/bbs/?pid=74562#p"> [Click to Play]</a> </td></tr></table> </p> <ul> <li>Added: Rotate vertices position with 90 degree angle(x/y/z + MouseDouble-L)</li> <li>Added: Swap two vertices position before the selected vertex(Shift-S)</li> <li>Added: Display mode switchable to &quot;Face / Line / point&quot;(Tab)</li> <li>Added: Switchable Shading palette(MouseDouble-M)</li> <li>Fixed: Improvement Flat shading, Culling</li> <li>Changed: minimum position changed &quot;-7&quot; from -8(model size is 15x15x15)</li> <li>Changed: View Rotation is not infinity.</li> <li>Changed: Light source display method</li> <li>Changed: Trifill() source code from <a href="https://www.lexaloffle.com/bbs/?uid=28958">p01</a><br /> </div></div></div> <h3>v0.2.1</h3> <p><div><div><input type="button" value=" Show " onClick="if (this.parentNode.parentNode.getElementsByTagName('div')[1].getElementsByTagName('div')[0].style.display != '') { this.parentNode.parentNode.getElementsByTagName('div')[1].getElementsByTagName('div')[0].style.display = ''; this.innerText = ''; this.value = ' Hide '; } else { this.parentNode.parentNode.getElementsByTagName('div')[1].getElementsByTagName('div')[0].style.display = 'none'; this.innerText = ''; this.value = ' Show '; }"></div><div><div style="display: none;"><br /> <table><tr><td> <a href="/bbs/?pid=74562#p"> <img src="/bbs/thumbs/pico8_pelogen-2.png" style="height:256px"></a> </td><td width=10></td><td valign=top> <a href="/bbs/?pid=74562#p"> pelogen</a><br><br> by <a href="/bbs/?uid=32759"> shiftalow</a> <br><br><br> <a href="/bbs/?pid=74562#p"> [Click to Play]</a> </td></tr></table> </p> <h3>updated (v0.2.1)</h3></li> <li>fixed: Object was not displayed in PLAY mode</li> <li>fixed: Select of vertex was over the number of indexes(there was occurring error)</li> </ul> <p>&quot;p01_triangle_163&quot; source code by<br /> <a href="https://www.lexaloffle.com/bbs/?uid=28958"> @p01</a></p> <p></div></div></div></p> <h3>v0.2.0</h3> <p><div><div><input type="button" value=" Show " onClick="if (this.parentNode.parentNode.getElementsByTagName('div')[1].getElementsByTagName('div')[0].style.display != '') { this.parentNode.parentNode.getElementsByTagName('div')[1].getElementsByTagName('div')[0].style.display = ''; this.innerText = ''; this.value = ' Hide '; } else { this.parentNode.parentNode.getElementsByTagName('div')[1].getElementsByTagName('div')[0].style.display = 'none'; this.innerText = ''; this.value = ' Show '; }"></div><div><div style="display: none;"><br /> <table><tr><td> <a href="/bbs/?pid=74562#p"> <img src="/bbs/thumbs/pico8_pelogen-1.png" style="height:256px"></a> </td><td width=10></td><td valign=top> <a href="/bbs/?pid=74562#p"> pelogen</a><br><br> by <a href="/bbs/?uid=32759"> shiftalow</a> <br><br><br> <a href="/bbs/?pid=74562#p"> [Click to Play]</a> </td></tr></table> </p> <h3>updated (v0.2.0)</h3> <ul> <li>Added: bottom plate</li> <li>Added: Jumps the &quot;Edit pointer&quot; to the Vertex on the Mouse pointer(Mouse-L)</li> <li>Enabled: Z sort</li> <li>fixed: Weird rotation of space + Mouse-R<br /> </div></div></div> <h3>v0.1.0</h3> <p><div><div><input type="button" value=" Show " onClick="if (this.parentNode.parentNode.getElementsByTagName('div')[1].getElementsByTagName('div')[0].style.display != '') { this.parentNode.parentNode.getElementsByTagName('div')[1].getElementsByTagName('div')[0].style.display = ''; this.innerText = ''; this.value = ' Hide '; } else { this.parentNode.parentNode.getElementsByTagName('div')[1].getElementsByTagName('div')[0].style.display = 'none'; this.innerText = ''; this.value = ' Show '; }"></div><div><div style="display: none;"><br /> <table><tr><td> <a href="/bbs/?pid=74562#p"> <img src="/bbs/thumbs/pico8_pelogen-0.png" style="height:256px"></a> </td><td width=10></td><td valign=top> <a href="/bbs/?pid=74562#p"> pelogen</a><br><br> by <a href="/bbs/?uid=32759"> shiftalow</a> <br><br><br> <a href="/bbs/?pid=74562#p"> [Click to Play]</a> </td></tr></table> <br /> </div></div></div></p></li> </ul> https://www.lexaloffle.com/bbs/?tid=37287 https://www.lexaloffle.com/bbs/?tid=37287 Wed, 08 Apr 2020 13:33:26 UTC Tool like blender by PICO-8 <p>I am working on a small 3D modeling tool separate from the main game project.</p> <p>The created 3D model is written to a sprite, and it is ready to be read.<br /> However, operations and views are very confusing.</p> <p>No such tool exists on the PICO-8 platform. (Or not seen)<br /> I guess it's probably because there's an alternative and it's easier to produce.</p> <img style="" border=0 src="/media/32759/pelo16_1.gif" alt="" /> <img style="" border=0 src="/media/32759/poly4b_13.gif" alt="" /> <img style="" border=0 src="/media/32759/dmap_8.gif" alt="" /> <p><em>Would you like to take advantage of this tool, even if it is paid?</em></p> https://www.lexaloffle.com/bbs/?tid=37267 https://www.lexaloffle.com/bbs/?tid=37267 Sun, 05 Apr 2020 02:01:21 UTC SFXTELM <p> <table><tr><td> <a href="/bbs/?pid=71497#p"> <img src="/bbs/thumbs/pico8_sfxtelm-1.png" style="height:256px"></a> </td><td width=10></td><td valign=top> <a href="/bbs/?pid=71497#p"> sfxtelm</a><br><br> by <a href="/bbs/?uid=32759"> shiftalow</a> <br><br><br> <a href="/bbs/?pid=71497#p"> [Click to Play]</a> </td></tr></table> </p> <p><strong>PICO-8 Telmin!</strong></p> <h1>CONTROLLS</h1> <ul> <li>mouse button: PLAY SFX</li> <li>Z / X : Change waveform(0~7) and custom instruments(8~15)</li> <li>mouse wheel : Change SFX Duration</li> </ul> <h2>old version</h2> <p><div><div><input type="button" value=" Show " onClick="if (this.parentNode.parentNode.getElementsByTagName('div')[1].getElementsByTagName('div')[0].style.display != '') { this.parentNode.parentNode.getElementsByTagName('div')[1].getElementsByTagName('div')[0].style.display = ''; this.innerText = ''; this.value = ' Hide '; } else { this.parentNode.parentNode.getElementsByTagName('div')[1].getElementsByTagName('div')[0].style.display = 'none'; this.innerText = ''; this.value = ' Show '; }"></div><div><div style="display: none;"><br /> <table><tr><td> <a href="/bbs/?pid=71497#p"> <img src="/bbs/thumbs/pico8_sfxtelm-0.png" style="height:256px"></a> </td><td width=10></td><td valign=top> <a href="/bbs/?pid=71497#p"> sfxtelm</a><br><br> by <a href="/bbs/?uid=32759"> shiftalow</a> <br><br><br> <a href="/bbs/?pid=71497#p"> [Click to Play]</a> </td></tr></table> </p> <h1>CONTROLLS</h1> <ul> <li>mouse button: PLAY SFX</li> <li>LEFT/RIGHT : Change waveform(0~7) and custom instruments(8~15)</li> </ul> <p></div></div></div></p> https://www.lexaloffle.com/bbs/?tid=36394 https://www.lexaloffle.com/bbs/?tid=36394 Sun, 29 Dec 2019 16:07:48 UTC String to Table(Multidimensional Array / Hash Table / Jagged Arrays) <p> <table><tr><td> <a href="/bbs/?pid=71300#p"> <img src="/bbs/thumbs/pico8_stringhashtable-1.png" style="height:256px"></a> </td><td width=10></td><td valign=top> <a href="/bbs/?pid=71300#p"> stringhashtable</a><br><br> by <a href="/bbs/?uid=32759"> shiftalow</a> <br><br><br> <a href="/bbs/?pid=71300#p"> [Click to Play]</a> </td></tr></table> </p> <h2>Feature Overview</h2> <p>This script parse JSON like(incompatible JSON) String data, and convert to hash table. </p> <p>Using space as delimiter.</p> <p>Parsing recursive.</p> <p>&quot;k{v1 v2...}&quot; is table. serve just Immediately before hashkey.</p> <p>&quot;k=v;&quot; is key and value.</p> <p>The Parser Normalize the individual values with order priority list in follow.<br /> Number<br /> String<br /> Bool<br /> Nil</p> <h2>UPDATE history</h2> <h3>v0.2 (2020 08 26)</h3> <ul> <li>Miniaturization of the cord.</li> <li>No replace &quot;\n&quot; in the recursive process.</li> </ul> <p>may want to Use VDMP if check the converted table.<br /> <a href="https://www.lexaloffle.com/bbs/?tid=32830">https://www.lexaloffle.com/bbs/?tid=32830</a></p> <p><strong>old ver</strong><br /> <div><div><input type="button" value=" Show " onClick="if (this.parentNode.parentNode.getElementsByTagName('div')[1].getElementsByTagName('div')[0].style.display != '') { this.parentNode.parentNode.getElementsByTagName('div')[1].getElementsByTagName('div')[0].style.display = ''; this.innerText = ''; this.value = ' Hide '; } else { this.parentNode.parentNode.getElementsByTagName('div')[1].getElementsByTagName('div')[0].style.display = 'none'; this.innerText = ''; this.value = ' Show '; }"></div><div><div style="display: none;"><br /> <table><tr><td> <a href="/bbs/?pid=71300#p"> <img src="/bbs/thumbs/pico8_stringhashtable-0.png" style="height:256px"></a> </td><td width=10></td><td valign=top> <a href="/bbs/?pid=71300#p"> stringhashtable</a><br><br> by <a href="/bbs/?uid=32759"> shiftalow</a> <br><br><br> <a href="/bbs/?pid=71300#p"> [Click to Play]</a> </td></tr></table> </p> <p></div></div></div></p> https://www.lexaloffle.com/bbs/?tid=36325 https://www.lexaloffle.com/bbs/?tid=36325 Sun, 22 Dec 2019 06:44:00 UTC Happy Update [PICO-8 v0.1.12] <p> <table><tr><td> <a href="/bbs/?pid=63532#p"> <img src="/bbs/thumbs/pico8_piduzohazo-0.png" style="height:256px"></a> </td><td width=10></td><td valign=top> <a href="/bbs/?pid=63532#p"> Happy Update 0.1.12</a><br><br> by <a href="/bbs/?uid=32759"> shiftalow</a> <br><br><br> <a href="/bbs/?pid=63532#p"> [Click to Play]</a> </td></tr></table> <br /> Happy Update PICO-8!</p> <p>U or D: Change line length<br /> L or R: Change line width</p> <p>X : Sub line<br /> Z : Add line<br /> X + Z : Reset the center sprite</p> https://www.lexaloffle.com/bbs/?tid=33872 https://www.lexaloffle.com/bbs/?tid=33872 Mon, 15 Apr 2019 14:37:26 UTC SALAHACHIDER(TITLE ONLY) <p> <table><tr><td> <a href="/bbs/?pid=61434#p"> <img src="/bbs/thumbs/pico8_salahachider-2.png" style="height:256px"></a> </td><td width=10></td><td valign=top> <a href="/bbs/?pid=61434#p"> salahachider</a><br><br> by <a href="/bbs/?uid=32759"> shiftalow</a> <br><br><br> <a href="/bbs/?pid=61434#p"> [Click to Play]</a> </td></tr></table> <br /> The STG like &quot;LIFE FORCE&quot;.<br /> Japanese title is &quot;沙羅曼蛇&quot;.</p> <p>I refferred to Family computer ver.</p> <p>Main game is WIP.</p> <p><div><div><input type="button" value=" Show " onClick="if (this.parentNode.parentNode.getElementsByTagName('div')[1].getElementsByTagName('div')[0].style.display != '') { this.parentNode.parentNode.getElementsByTagName('div')[1].getElementsByTagName('div')[0].style.display = ''; this.innerText = ''; this.value = ' Hide '; } else { this.parentNode.parentNode.getElementsByTagName('div')[1].getElementsByTagName('div')[0].style.display = 'none'; this.innerText = ''; this.value = ' Show '; }"></div><div><div style="display: none;"></p> <ul> <li>ver 0.03: Stabilize sfx.(using music())</li> <li>ver 0.02: Can shot the bullet. Power up, The players remaining number UI.</li> <li>ver 0.01: Release.<br /> </div></div></div></li> </ul> https://www.lexaloffle.com/bbs/?tid=33119 https://www.lexaloffle.com/bbs/?tid=33119 Fri, 01 Feb 2019 15:17:05 UTC VDMP(PHP var_dump like) <p> <table><tr><td> <a href="/bbs/?pid=60679#p"> <img src="/bbs/thumbs/pico8_vdmplua-0.png" style="height:256px"></a> </td><td width=10></td><td valign=top> <a href="/bbs/?pid=60679#p"> vdmplua</a><br><br> by <a href="/bbs/?uid=32759"> shiftalow</a> <br><br><br> <a href="/bbs/?pid=60679#p"> [Click to Play]</a> </td></tr></table> </p> <p>Print the inside Table Value.</p> <div> <div style="max-width:800px; overflow:auto; margin-bottom:12px"> <table style="width:100%" cellspacing=0 cellpadding=0> <tr><td background=/gfx/code_bg1.png width=16><div style="width:16px;display:block"></div></td> <td background=/gfx/code_bg0.png> <div style="font-family : courier; color: #000000; display:absolute; padding-left:10px; padding-top:4px; padding-bottom:4px; "> <pre>vdmp({ 1 ,str=&quot;string&quot; ,obj={&quot;o&quot;,&quot;b&quot;,&quot;j&quot;,&quot;e&quot;,&quot;c&quot;,&quot;t&quot;} ,{{{}}} ,{nil,true,false,function()end} })</pre></div></td> <td background=/gfx/code_bg1.png width=16><div style="width:16px;display:block"></div></td> </tr></table></div></div> <h3>Symbol summary</h3> <div> <div style="max-width:800px; overflow:auto; margin-bottom:12px"> <table style="width:100%" cellspacing=0 cellpadding=0> <tr><td background=/gfx/code_bg1.png width=16><div style="width:16px;display:block"></div></td> <td background=/gfx/code_bg0.png> <div style="font-family : courier; color: #000000; display:absolute; padding-left:10px; padding-top:4px; padding-bottom:4px; "> <pre># Number $ String % Boolean * Function(output only the &quot;[Function]&quot;) ! nil(Is not printed because Skip nil in table pairs()) {} Table</pre></div></td> <td background=/gfx/code_bg1.png width=16><div style="width:16px;display:block"></div></td> </tr></table></div></div> <h3>&quot;VDMP&quot; execute then there are followings.</h3> <p><em>Stop the routine.</em><br /> <em>Clear Screen.</em><br /> <em>Display the contents of the specified table.</em><br /> <em>The displayed order is not fixed.</em><br /> <em>The overflowed text is not displayed.</em></p> https://www.lexaloffle.com/bbs/?tid=32830 https://www.lexaloffle.com/bbs/?tid=32830 Tue, 08 Jan 2019 14:10:37 UTC FillPatDraw (GFX draw without spr and pset) <p> <table><tr><td> <a href="/bbs/?pid=60621#p"> <img src="/bbs/thumbs/pico8_fillpatdraw_02-7.png" style="height:256px"></a> </td><td width=10></td><td valign=top> <a href="/bbs/?pid=60621#p"> fillpatdraw_02</a><br><br> by <a href="/bbs/?uid=32759"> shiftalow</a> <br><br><br> <a href="/bbs/?pid=60621#p"> [Click to Play]</a> </td></tr></table> </p> <h2>FillPatDraw FullColor version</h2> <p>This cart is tool that export code for drawing with FILLP() and RECTFILL().<br /> The Exported data can draw that using without Sprite sheet.</p> <p>You can also apply a check mask to an image by changing the value of _filppmask to a non-zero value.</p> <p><a href="https://www.lexaloffle.com/bbs/?tid=32755">Rectfill pattern animation</a></p> <p><a href="https://www.lexaloffle.com/bbs/?tid=32755">FILLP DRAW (2color version)</a></p> <h2>Controls</h2> <p><div><div><input type="button" value=" Show " onClick="if (this.parentNode.parentNode.getElementsByTagName('div')[1].getElementsByTagName('div')[0].style.display != '') { this.parentNode.parentNode.getElementsByTagName('div')[1].getElementsByTagName('div')[0].style.display = ''; this.innerText = ''; this.value = ' Hide '; } else { this.parentNode.parentNode.getElementsByTagName('div')[1].getElementsByTagName('div')[0].style.display = 'none'; this.innerText = ''; this.value = ' Show '; }"></div><div><div style="display: none;"></p> <h3>Sprite sheet view</h3> <ul> <li><strong>Mouse Left Drag and Click</strong><br /> <strong>1</strong> Select the rectangle to be the source of the delimited block.<br /> <strong>2</strong> Select the length of block from start to end.<br /> <strong>3</strong> Click Export Button for Confirm and Enter the export (p8l)file name.<br /> <em>In some cases there is a waiting time of 30 seconds or more.</em></li> </ul> <img style="" border=0 src="/media/32759/fillpatdraw.p8_0.gif" alt="" /> <ul> <li> <p><strong>Right Click</strong><br /> Prev select mode.</p> </li> <li><strong>Tab key</strong><br /> Open the Menu Window.</li> </ul> <h3>Menu</h3> <ul> <li> <p><strong>PLAY Button</strong><br /> Start <strong>Pattern Draw Preview</strong></p> </li> <li> <p><strong>SAVE Button</strong><br /> SAVE PNG file and Attach Cart data</p> </li> <li> <p><strong>LOAD Button</strong><br /> LOAD PNG file and Attach Cart data</p> </li> <li><strong>CLEAR!! Button</strong><br /> CLEAR Sprite sheet(not Attach Cart data)</li> </ul> <h3>Pattern Draw Preview</h3> <ul> <li><strong>Space key</strong><br /> Stop and Start the Animation.</li> <li><strong>Left Click</strong><br /> Step to Next BlockID.</li> <li><strong>Right Click</strong><br /> Prev to Back BlockID.</li> <li><strong>Tab key</strong><br /> Return The Menu Window.<br /> </div></div></div> <h2>How to use the exported code</h2> <p><div><div><input type="button" value=" Show " onClick="if (this.parentNode.parentNode.getElementsByTagName('div')[1].getElementsByTagName('div')[0].style.display != '') { this.parentNode.parentNode.getElementsByTagName('div')[1].getElementsByTagName('div')[0].style.display = ''; this.innerText = ''; this.value = ' Hide '; } else { this.parentNode.parentNode.getElementsByTagName('div')[1].getElementsByTagName('div')[0].style.display = 'none'; this.innerText = ''; this.value = ' Show '; }"></div><div><div style="display: none;"><br /> Paste the code from the p8l file written by this tool into your code.</p></li> </ul> <p>To execute it add the following code.</p> <div> <div style="max-width:800px; overflow:auto; margin-bottom:12px"> <table style="width:100%" cellspacing=0 cellpadding=0> <tr><td background=/gfx/code_bg1.png width=16><div style="width:16px;display:block"></div></td> <td background=/gfx/code_bg0.png> <div style="font-family : courier; color: #000000; display:absolute; padding-left:10px; padding-top:4px; padding-bottom:4px; "> <pre>fillpat.draw(BlockID,x,y)</pre></div></td> <td background=/gfx/code_bg1.png width=16><div style="width:16px;display:block"></div></td> </tr></table></div></div> <ul> <li>BlockID : Number in Selected Sprite sheet view mode.(start 1)</li> <li>x,y : draw position.</li> <li>Return value: If ID not found then <span style=" display:inline-block; background-color:#eee; padding:2px; margin: 4px; padding-left: 8px; padding-right: 8px; color:#222">TRUE else <span style=" display:inline-block; background-color:#eee; padding:2px; margin: 4px; padding-left: 8px; padding-right: 8px; color:#222">FALSE.</li> </ul> <h3>How to add data</h3> <p>That can add to the export data in the following way.</p> <div> <div style="max-width:800px; overflow:auto; margin-bottom:12px"> <table style="width:100%" cellspacing=0 cellpadding=0> <tr><td background=/gfx/code_bg1.png width=16><div style="width:16px;display:block"></div></td> <td background=/gfx/code_bg0.png> <div style="font-family : courier; color: #000000; display:absolute; padding-left:10px; padding-top:4px; padding-bottom:4px; "> <pre>fillpat={d=[[ datablock1 (add datablock2) (add datablock3) ]]</pre></div></td> <td background=/gfx/code_bg1.png width=16><div style="width:16px;display:block"></div></td> </tr></table></div></div> <p></div></div></div></p> <h2>Draw Sequence</h2> <p><div><div><input type="button" value=" Show " onClick="if (this.parentNode.parentNode.getElementsByTagName('div')[1].getElementsByTagName('div')[0].style.display != '') { this.parentNode.parentNode.getElementsByTagName('div')[1].getElementsByTagName('div')[0].style.display = ''; this.innerText = ''; this.value = ' Hide '; } else { this.parentNode.parentNode.getElementsByTagName('div')[1].getElementsByTagName('div')[0].style.display = 'none'; this.innerText = ''; this.value = ' Show '; }"></div><div><div style="display: none;"><blockquote class="twitter-tweet" data-lang="en"><a href="https://twitter.com/lexaloffle/status/1082129242777763840">[tweet <img src="/gfx/load16.gif">]</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script></div></div></div></p> <h2>UPDATE</h2> <ul> <li>rev5: Improved drawing performance(25% faster). Reducing the tokens used. Abolition of autoload. Empty writing is suspended. Enabled the paste command on file name input.</li> <li>rev4: Can specify the drawing position by 1px instead of 4px.(Using camera())<br /> Can superimpose masks while drawing.<br /> Supports export of multiple png files.</li> <li>rev3: Tuning Encode and Draw performance.</li> <li>rev2: Remove debug code</li> <li>rev1: Fixed can't return on Tabkey</li> </ul> https://www.lexaloffle.com/bbs/?tid=32807 https://www.lexaloffle.com/bbs/?tid=32807 Sun, 06 Jan 2019 15:29:35 UTC Rectfill pattern animation 1 <p> <table><tr><td> <a href="/bbs/?pid=60477#p"> <img src="/bbs/thumbs/pico8_fillpatanm1-0.png" style="height:256px"></a> </td><td width=10></td><td valign=top> <a href="/bbs/?pid=60477#p"> Rectfill pattern animation 1</a><br><br> by <a href="/bbs/?uid=32759"> shiftalow</a> <br><br><br> <a href="/bbs/?pid=60477#p"> [Click to Play]</a> </td></tr></table> </p> <p>the full color &quot;fillp + rectfill&quot; drawing.</p> <p><em>about fill pattern drawing old format follow.</em><br /> <a href="https://www.lexaloffle.com/bbs/?tid=32697">URL FILLPDRAW</a><br /> <em>that's can only 2 color in cell of 4x4 size. </em></p> https://www.lexaloffle.com/bbs/?tid=32755 https://www.lexaloffle.com/bbs/?tid=32755 Tue, 01 Jan 2019 07:15:50 UTC