<?xml version="1.0"?>
<rss version="2.0"><channel><title>Coding and Game Design Latest Topics</title><link>https://www.html5gamedevs.com/forum/2-coding-and-game-design/</link><description>Coding and Game Design Latest Topics</description><language>en</language><item><title>A save-schema check before an RPG inventory grows</title><link>https://www.html5gamedevs.com/topic/73625-a-save-schema-check-before-an-rpg-inventory-grows/</link><description><![CDATA[<p>
	Inventory bugs often appear after the visible system looks finished. The cause is usually not the UI; it is an old save loading into a newer item model.
</p>

<p>
	 
</p>

<p>
	Before adding more item types, I like to freeze a small schema test. Save one inventory with a stackable consumable, one equipped item, one empty slot, and one item carrying an optional field. Then load that fixture through every migration step and compare a normalized result rather than raw JSON order.
</p>

<p>
	 
</p>

<p>
	A practical check is to assert four things: item identity survives, stack counts remain integers, unknown fields do not crash loading, and missing optional fields receive explicit defaults. If equipment references inventory IDs, verify those links after migration too. Otherwise a save can load "successfully" while silently unequipping or duplicating an item.
</p>

<p>
	 
</p>

<p>
	I used this approach while testing a small editable browser-RPG loop here: <a href="https://www.seeles.ai/features/create/rpg-creator?utm_source=html5gamedevs&amp;utm_medium=community&amp;utm_campaign=rpg_acq_202607_w4&amp;utm_content=rpg36_06&amp;utm_id=rpg36-06" rel="external nofollow">https://www.seeles.ai/features/create/rpg-creator?utm_source=html5gamedevs&amp;utm_medium=community&amp;utm_campaign=rpg_acq_202607_w4&amp;utm_content=rpg36_06&amp;utm_id=rpg36-06</a>
</p>

<p>
	 
</p>

<p>
	The fixture is intentionally tiny. Its value is that it gives every future inventory change a stable backward-compatibility test, instead of waiting for an old player save to reveal the mismatch.
</p>
]]></description><guid isPermaLink="false">73625</guid><pubDate>Sun, 26 Jul 2026 02:57:22 +0000</pubDate></item><item><title>A tiny input-buffer test for browser RPG combat</title><link>https://www.html5gamedevs.com/topic/73624-a-tiny-input-buffer-test-for-browser-rpg-combat/</link><description><![CDATA[<p>
	In browser RPG combat, “the attack feels late” is often too vague to debug. I use a four-column trace: input timestamp, current animation state, earliest legal transition, and action-start timestamp. Then I run three cases: press during idle, press during recovery, and press just before recovery ends. The goal is not to make every input execute; it is to make accepted and rejected inputs explainable. A short buffer can improve feel, but a hidden queue can also create unwanted actions after the player has changed their mind. I would log accepted/rejected explicitly, cap the queue to one intent, and surface the reason in a debug overlay only—not in a fabricated gameplay HUD. This is a design/test hypothesis, not a performance guarantee. The RPG creator workflow I am evaluating is here: <a href="https://www.seeles.ai/features/create/rpg-creator?utm_source=html5gamedevs&amp;utm_medium=community&amp;utm_campaign=rpg_phase36_20260726&amp;utm_term=web_input_buffering&amp;utm_content=rpg36_05&amp;utm_id=rpg36-05" rel="external nofollow">https://www.seeles.ai/features/create/rpg-creator?utm_source=html5gamedevs&amp;utm_medium=community&amp;utm_campaign=rpg_phase36_20260726&amp;utm_term=web_input_buffering&amp;utm_content=rpg36_05&amp;utm_id=rpg36-05</a>
</p>
]]></description><guid isPermaLink="false">73624</guid><pubDate>Sun, 26 Jul 2026 02:56:28 +0000</pubDate></item><item><title>A Replay-Driven Way to Debug Economy and Combat in a Godot Web Build</title><link>https://www.html5gamedevs.com/topic/73601-a-replay-driven-way-to-debug-economy-and-combat-in-a-godot-web-build/</link><description><![CDATA[<p>
	Disclosure: I work with SEELE. This is a technical note from a real Dungeon Master Tycoon prototype and our review workflow, not a claim of an official engine integration.
</p>

<p>
	For a small Godot Web build, the most useful debugging tool has not been another UI panel. It has been replay fixtures.
</p>

<p>
	The game loop is deliberately compact: dig dungeon space, assign rooms, recruit monsters, pay upkeep, then resolve a hero wave. That sounds easy to test manually until economy and combat start influencing each other. A monster that looks correct in isolation can become confusing when its upkeep changes happiness, gold pressure, and the player's readiness for the next wave.
</p>

<p>
	The replay-driven approach I like is to keep a few short fixtures that exercise the loop end to end:
</p>

<p>
	1. A basic build replay that confirms tiles and room assignments are still readable.<br />
	2. An economy replay that checks whether cost, upkeep, and happiness changes appear before the hero wave, not only after failure.<br />
	3. A combat replay that verifies hero and monster outcomes are explainable from the previous state.<br />
	4. A result replay that makes sure the summary screen matches what actually happened.
</p>

<p>
	This matters more in a Web export than I expected. Browser builds are often shared quickly for feedback, and a tiny regression in timing, state reset, or result text can make testers describe the whole loop as confusing. Replays give you a repeatable way to ask: did the player lose because the design is harsh, or because the build failed to communicate the economy/combat chain?
</p>

<p>
	The important constraint is to keep fixtures small. They should preserve player-like sequences rather than become huge scripted demos. If a replay cannot be understood by reading its steps, it is probably too broad to debug the actual loop.
</p>

<p>
	For people shipping Godot or HTML5 prototypes: do you keep replay fixtures for browser builds, or do you mostly rely on manual playthroughs before sharing a build?
</p>

<p>
	Workflow notes: <a href="https://www.seeles.ai/features/create/rpg-creator?utm_source=html5gamedevs&amp;utm_medium=community&amp;utm_campaign=rpg_acq_202607_w2&amp;utm_content=replay_web_debug_02" rel="external nofollow">https://www.seeles.ai/features/create/rpg-creator?utm_source=html5gamedevs&amp;utm_medium=community&amp;utm_campaign=rpg_acq_202607_w2&amp;utm_content=replay_web_debug_02</a>
</p>
]]></description><guid isPermaLink="false">73601</guid><pubDate>Fri, 17 Jul 2026 16:01:48 +0000</pubDate></item><item><title>Three state boundaries that made a Godot Web RPG loop easier to debug</title><link>https://www.html5gamedevs.com/topic/73599-three-state-boundaries-that-made-a-godot-web-rpg-loop-easier-to-debug/</link><description><![CDATA[<p>
	Disclosure: I work with SEELE. This is a technical note from a Godot 4.6 prototype generated and reviewed in our workflow.
</p>

<p>
	 
</p>

<p>
	The project is a small dungeon-management RPG with a Web export preset. Its loop is: dig, assign rooms, recruit monsters, pay upkeep, and survive a hero wave.
</p>

<p>
	 
</p>

<p>
	The biggest debugging improvement came from separating three states instead of adding more systems:
</p>

<p>
	 
</p>

<p>
	1. Build state — whether a tile operation is valid and readable.
</p>

<p>
	2. Economy state — whether cost, upkeep, and pressure are visible before combat.
</p>

<p>
	3. Combat state — whether hero and monster outcomes explain what changed.
</p>

<p>
	 
</p>

<p>
	The prototype uses an 18×13 grid, explicit room/trap tiles, four monster classes, three hero classes, and replay scenarios for the full loop, placement, combat, and results.
</p>

<p>
	 
</p>

<p>
	For browser-game developers, which of these boundaries usually fails first in your prototypes?
</p>

<p>
	 
</p>

<p>
	Workflow notes: <a href="https://seeles.ai/workspace?utm_source=html5gamedevs&amp;utm_medium=community&amp;utm_campaign=rpg_acq_202607_w1&amp;utm_content=godot_web_state_boundaries_01" rel="external nofollow">https://seeles.ai/workspace?utm_source=html5gamedevs&amp;utm_medium=community&amp;utm_campaign=rpg_acq_202607_w1&amp;utm_content=godot_web_state_boundaries_01</a>
</p>
]]></description><guid isPermaLink="false">73599</guid><pubDate>Fri, 17 Jul 2026 09:00:25 +0000</pubDate></item><item><title>[Survey] Indie Game Developers: What Are Your Biggest Development Challenges?</title><link>https://www.html5gamedevs.com/topic/73513-survey-indie-game-developers-what-are-your-biggest-development-challenges/</link><description><![CDATA[<p>
	Hello,
</p>

<p>
	I’m conducting a small survey aimed at independent game developers, hobbyists, students, solo developers, teams, and small studios.
</p>

<p>
	The goal is to better understand the challenges people face during game development: time management, budget constraints, motivation, tools, external feedback, visibility, finishing and publishing games, project abandonment, and more.
</p>

<p>
	A friend and I are exploring ideas for a future tool that could help creators make better progress on their projects. However, before building anything, we want to understand the real problems that game creators actually experience.
</p>

<p>
	The survey is anonymous and takes about 5 minutes to complete.
</p>

<p>
	If you're a game developer, have started a project, finished a game, abandoned a project, or are seriously considering creating one, your experience and feedback would be extremely valuable to us.
</p>

<p>
	A big thank you to everyone who takes a few minutes to participate. Your input will help us better guide the development of our project.
</p>

<p>
	Survey link:
</p>

<p>
	https://docs.google.com/forms/d/e/1FAIpQLSdbUQRJCdSCZ2ZFz7xmhKdkvSXgUObg1kVzP64e4Xrs26Unpw/viewform
</p>
]]></description><guid isPermaLink="false">73513</guid><pubDate>Fri, 12 Jun 2026 12:29:18 +0000</pubDate></item><item><title>Phaser OR Unity For HTML5 Games</title><link>https://www.html5gamedevs.com/topic/45458-phaser-or-unity-for-html5-games/</link><description><![CDATA[
<p>
	Hi,<br />
	We have built many kids apps till now and published on google play and iOS app store. Now I wish to create a website with the kids games. 
</p>

<p>
	I expect about 75% of the users to be from desktop/tablet/chromebooks. 25% visitors will be from mobile browsers.
</p>

<p>
	Here is a small video which shows the games<br /><a href="https://www.youtube.com/watch?v=UH4ttjxyY9A" rel="external nofollow">https://www.youtube.com/watch?v=UH4ttjxyY9A</a>
</p>

<p>
	I have two options of conversion into HTML5.<br />
	1) Phaser<br />
	2) Unity (I prefer this because this gives me the unity build also- so it kills two birds with one stone).
</p>

<p>
	The problem with Unity is that it does not support Webgl in mobiles. But I tested a few games and they work OK on my android device.  I know that Phaser will probably give better performance in mobile browsers, but with Unity I get the advantage of being able to use the codebase later on with other projects. Is this a bad compromise to make?
</p>

<p>
	But I still need your opinion especially of experienced people in this. Which is the way to go - Phaser or Unity?
</p>

<p>
	Thanks and Regards<br />
	 
</p>
]]></description><guid isPermaLink="false">45458</guid><pubDate>Fri, 15 May 2020 11:57:35 +0000</pubDate></item><item><title>Vibe Testing for H5 game devs - I built this because I was tired of shipping sloppy games</title><link>https://www.html5gamedevs.com/topic/73378-vibe-testing-for-h5-game-devs-i-built-this-because-i-was-tired-of-shipping-sloppy-games/</link><description><![CDATA[<p>
	Hey HTML5GameDevs,
</p>

<p>
	I'm one of the people building Scout (app.scoutqa.ai) and I wanted to share it here because honestly, H5 game devs are exactly who I had in mind when we were designing this.   
</p>

<p>
	Here's the problem that keeps me up at night: most indie and solo H5 devs ship with basically zero QA. Not because they don't care — because it's genuinely hard. You can't afford a tester, you're too close to your own game to catch obvious bugs, and writing test scripts is a completely different skill set from building the game itself.
</p>

<p>
	So we built Scout around one idea: just describe what you want tested, in plain English, and AI agents do it.                                                                   
</p>

<p>
	Paste your game URL. Type something like "play through the tutorial and check if the jump mechanic feels broken" or "try to break the inventory system" — and Scout actually plays your game like a real user. Clicks, interactions, edge cases. It generates a full report of what it found.<br />
	                                                                                                                                                                                  <br />
	We call it vibe testing. Same energy as vibe coding - move fast, trust the intention, let the AI handle the tedious part.                                                          <br />
	   <br />
	What we've seen it catch in H5 games specifically:                                                                                                                              <br />
	  - UI elements that stop responding after certain game states<br />
	  - Score/timer bugs that only appear mid-session                                                                                                                                 <br />
	  - Broken flows on mobile viewport sizes        <br />
	  - Stuff that only breaks when you actually play the game, not just load it                                                                                                      <br />
	                                                                                                                                                                                  <br />
	There's a Roast mode (scoutqa.ai/roast) that's basically chaos testing — it just tries to destroy your game and tells you everything it found. It's brutal. I love it.                             <br />
	                                                                                                                                                                                  <br />
	It free, run as much as you want
</p>

<p>
	We're still early and actively building. If you try it on your game and something feels off or missing, I genuinely want to hear it — drop a reply or reach out directly. H5 game testing is a use case I care a lot about getting right.
</p>

<p>
	Try it: app.scoutqa.ai 
</p>

<video controls class="ipsEmbeddedVideo" data-fileid="27294" data-controller="core.global.core.embeddedvideo">
	<source src="https://www.html5gamedevs.com/uploads/monthly_2026_03/1289491334_Scoutdemo.mov.acbf6480549e7ba17b3663585fd05b6a.mov" type="video/quicktime">
	<a class="ipsAttachLink" href="//www.html5gamedevs.com/applications/core/interface/file/attachment.php?id=27294">Scout demo .mov</a>
</video>]]></description><guid isPermaLink="false">73378</guid><pubDate>Thu, 19 Mar 2026 13:13:50 +0000</pubDate></item><item><title>How does a game server run multiple games at once?</title><link>https://www.html5gamedevs.com/topic/22450-how-does-a-game-server-run-multiple-games-at-once/</link><description><![CDATA[
<p>
	I can't imagine this is an unusual question, yet I've searched all over and am not finding any answers on this. I found two threads where people seem to be asking this same question, but seems like it got lost in the other stuff they were asking because they didn't get any answer as far as I can tell:
</p>
<iframe data-embedcontent="" frameborder="0" src="https://www.html5gamedevs.com/topic/1480-how-to-make-multiplayer-online-games/?do=embed"></iframe><iframe data-embedcontent="" frameborder="0" src="https://www.html5gamedevs.com/topic/22224-toying-with-nodejs-for-multiplayer-feature-of-my-game-have-plently-of-questions/?do=embed"></iframe>

<p>
	When running client side, you have a game loop and it takes care of everything for that one client. But on the server, I can't imagine you have one game loop running all your games. Here, I'm assuming something like a sports game, where you have multiple games going on at the same time involving two players each, not an MMO. So what do you need to do, spawn a mini game engine server for each game that has its own loop?
</p>

<p>
	For some background, what I'm trying to do is something similar to how Championship Manager was, simple 2D soccer simulation. For those unfamiliar, you basically just act as the coach, so there's no real-time interaction with the players, you just select tactics and the engine reacts to them. I see a bunch of stuff about Node.js as a game server, which has me a bit confused since I thought Node.js was single-threaded, so how would it handle multiple concurrent games?
</p>
]]></description><guid isPermaLink="false">22450</guid><pubDate>Mon, 09 May 2016 16:25:24 +0000</pubDate></item><item><title>Server javascript code</title><link>https://www.html5gamedevs.com/topic/43535-server-javascript-code/</link><description><![CDATA[
<p>
	Hi
</p>

<p>
	I was looking for some javascript pathfinding libraries and wanted to use such for my game but I realize they use the <strong>require</strong> function and what I gathered is that it means the script can only be used in server (NodeJS).
</p>

<p>
	So, what are my best options if I want to use such libarary?
</p>

<p>
	I'm really a beginner to server side javascript and don't know what it takes to get that running
</p>

<p>
	thanks!
</p>
]]></description><guid isPermaLink="false">43535</guid><pubDate>Tue, 13 Aug 2019 11:28:44 +0000</pubDate></item><item><title>HTML5 or Flash?</title><link>https://www.html5gamedevs.com/topic/23355-html5-or-flash/</link><description><![CDATA[
<p style="margin-top:0cm;margin-right:0cm;margin-bottom:.0001pt;margin-left:37.4pt;">
	<span lang="en-us" style="background:#FFFFFF;" xml:lang="en-us">Hello! I have lately read the release that many vendors refuse to produce flash software and replace it to HTML5. Since now, no more software packages with Flash client will be available, as long as their updates.</span>
</p>

<p style="margin-top:0cm;margin-right:0cm;margin-bottom:.0001pt;margin-left:37.4pt;">
	 
</p>

<p style="margin-top:0cm;margin-right:0cm;margin-bottom:.0001pt;margin-left:37.4pt;">
	<span lang="en-us" xml:lang="en-us"><span style="background:#FFFFFF;">It is bound to the fact that flash solutions have rather limited functions and possibilities in comparison with HTML5.<span> </span></span></span>
</p>

<p style="margin-top:0cm;margin-right:0cm;margin-bottom:.0001pt;margin-left:37.4pt;">
	 
</p>

<p style="margin-top:0cm;margin-right:0cm;margin-bottom:.0001pt;margin-left:37.4pt;">
	<span><span lang="en-us" style="background:#FFFFFF;" xml:lang="en-us">As they say, </span></span><span lang="en-us" style="background:#FFFFFF;" xml:lang="en-us">HTML5 is adapted for both </span><span lang="en-us" xml:lang="en-us">desktop and mobile devices, has more convenient interface and more functions. This technology is considered to be more flexible, easy-to-used and innovative than flash. <span style="background:#FFFFFF;">In addition, Flash consumes more resources and proved to be less secure.<span> </span></span></span>
</p>

<p style="margin-top:0cm;margin-right:0cm;margin-bottom:.0001pt;margin-left:37.4pt;">
	 
</p>

<p style="margin-top:0cm;margin-right:0cm;margin-bottom:.0001pt;margin-left:37.4pt;">
	<span><span lang="en-us" style="background:#FFFFFF;" xml:lang="en-us">But flash software has been in a high demand a very long time. </span></span><span lang="en-us" style="background:#FFFFFF;" xml:lang="en-us">I believe that it is difficult to get rid of such powerful and long-lived technology immediately.</span>
</p>

<p style="margin-top:0cm;margin-right:0cm;margin-bottom:.0001pt;margin-left:37.4pt;">
	 
</p>

<p style="margin-top:0cm;margin-right:0cm;margin-bottom:.0001pt;margin-left:37.4pt;">
	<span><span lang="en-us" style="background:#FFFFFF;" xml:lang="en-us">What do you think about it? Is it really true that soon </span></span><span lang="en-us" style="background:#FFFFFF;" xml:lang="en-us">HTML5 displace flash? </span>
</p>

<p>
	 
</p>
]]></description><guid isPermaLink="false">23355</guid><pubDate>Wed, 22 Jun 2016 05:49:49 +0000</pubDate></item><item><title>How to use Salesforce Marketing Cloud API to connect with my SQL server?</title><link>https://www.html5gamedevs.com/topic/52220-how-to-use-salesforce-marketing-cloud-api-to-connect-with-my-sql-server/</link><description><![CDATA[<p>
	I need to use C# to do an HTTP POST request to acquire an access token, but I have no idea how to do it. <a href="https://www.igmguru.com/course/salesforce-marketing-cloud-training/" rel="external nofollow">Salesforce Marketing Cloud</a> is a customer relationship management (CRM) platform for marketers that allows them to create and manage marketing relationships and campaigns with customers. I need to run this sample code in C#:
</p>

<p>
	POST <a href="https://auth.exacttargetapis.com/v1/requestToken" rel="external nofollow">https://auth.exacttargetapis.com/v1/requestToken</a><br />
	Content-Type: application/json
</p>

<pre class="ipsCode prettyprint lang-html prettyprinted"><span class="pln">{
"clientId": "gyjzvytv7ukqtfn3x2qdyfsn",
"clientSecret": "************"
}</span></pre>

<p>
	I am using SSIS 2008r2, I want to write c# code to make an API call to the exact Target API to connect to the SQL server database. Because I want to pull data from the SQL server to the marketing cloud. I didn't find any article about using SSIS to connect Marketing cloud.....the salesforce marketing cloud rest API or FuelSDK looks like it only supports .net 4 or higher.
</p>
]]></description><guid isPermaLink="false">52220</guid><pubDate>Fri, 31 Mar 2023 10:56:27 +0000</pubDate></item><item><title>User session recording with canvas</title><link>https://www.html5gamedevs.com/topic/36802-user-session-recording-with-canvas/</link><description><![CDATA[
<p>
	Hey guys,
</p>

<p>
	I know that this question has been asked several times before, but I wonder if there are any news - I'm looking for a user session recording tool such as <a href="https://www.hotjar.com/?utm_campaign=ROW-GSN-Branded&amp;keyword=hotjar&amp;matchtype=e&amp;utm_content=old-4&amp;geo=1008001&amp;adgroupid=43476378915&amp;utm_source=AdWords&amp;utm_medium=ppc&amp;gclid=EAIaIQobChMI0MGZrY-c2gIVFomyCh3CigToEAAYASAAEgJMDvD_BwE" rel="external nofollow">Hotjar</a> or <a href="https://www.inspectlet.com/?gclid=EAIaIQobChMIwsDpqI-c2gIVSy4YCh3gtQmvEAAYAiAAEgKMZvD_BwE" rel="external nofollow">Injectlet</a> that supports canvas recording.
</p>

<p>
	Any other solution besides google analytics integration?
</p>

<p>
	 
</p>

<p>
	Tomer. 
</p>
]]></description><guid isPermaLink="false">36802</guid><pubDate>Mon, 02 Apr 2018 17:33:40 +0000</pubDate></item><item><title>I will give 100 HTML5 games bundle for Web, Mobile and Facebook instant games</title><link>https://www.html5gamedevs.com/topic/57143-i-will-give-100-html5-games-bundle-for-web-mobile-and-facebook-instant-games/</link><description><![CDATA[<p style="background-color:#ffffff;border:0px;color:#62646a;font-size:16px;padding:0px;">
	Hello friends, I will send you best 100 High Quality HTML5 games made with construct2 and C3 game engine.
</p>

<p style="background-color:#ffffff;border:0px;color:#62646a;font-size:16px;padding:0px;">
	You can use these games on your own gaming website or make Facebook instant game (You can also export html5 games to Android and upload to play store).
</p>

<p style="background-color:#ffffff;border:0px;color:#62646a;font-size:16px;padding:0px;">
	<strong style="border:0px;padding:0px;">Includes :</strong>
</p>

<p style="background-color:#ffffff;border:0px;color:#62646a;font-size:16px;padding:0px;">
	HTML5 projects
</p>

<p style="background-color:#ffffff;border:0px;color:#62646a;font-size:16px;padding:0px;">
	Construct 2, 3 projects
</p>

<p style="background-color:#ffffff;border:0px;color:#62646a;font-size:16px;padding:0px;">
	Capx file
</p>

<p style="background-color:#ffffff;border:0px;color:#62646a;font-size:16px;padding:0px;">
	(HTML,/ CAPX, C3P)
</p>

<p style="background-color:#ffffff;border:0px;color:#62646a;font-size:16px;padding:0px;">
	If you are intersted, please visit this Link<span> </span><span><span>:</span></span>
</p>

<p style="background-color:#ffffff;border:0px;color:#62646a;font-size:16px;padding:0px;">
	<span><span><a href="https://www.fiverr.com/s/LdP8xBY" rel="external nofollow">https://www.fiverr.com/s/LdP8xBY</a></span></span>
</p>

<p><a href="https://www.html5gamedevs.com/uploads/monthly_2024_12/2000205254_ConceptionGallery01(Basic).jpg.4487693deaeef63e1e23d684be80c5aa.jpg" class="ipsAttachLink ipsAttachLink_image"><img data-fileid="26783" src="https://www.html5gamedevs.com/uploads/monthly_2024_12/1848072176_ConceptionGallery01(Basic).thumb.jpg.e4b7adca0c87391f9c83d6c8b80063a0.jpg" data-ratio="60.1" width="1000" class="ipsImage ipsImage_thumbnailed" alt="Conception Gallery 01 (Basic).jpg"></a></p>
<p><a href="https://www.html5gamedevs.com/uploads/monthly_2024_12/348476065_ConceptionGallery02(Standard).jpg.c64e85448d39bc3f07442e3da08b31d0.jpg" class="ipsAttachLink ipsAttachLink_image"><img data-fileid="26784" src="https://www.html5gamedevs.com/uploads/monthly_2024_12/1889937081_ConceptionGallery02(Standard).thumb.jpg.c1610cddafd1f929def948a779a2d52c.jpg" data-ratio="60.1" width="1000" class="ipsImage ipsImage_thumbnailed" alt="Conception Gallery 02 (Standard).jpg"></a></p>
<p><a href="https://www.html5gamedevs.com/uploads/monthly_2024_12/1000810574_ConceptionGallery03(Premium).jpg.1ae05f6eb26b8e2cd4a0bae343982d7d.jpg" class="ipsAttachLink ipsAttachLink_image"><img data-fileid="26785" src="https://www.html5gamedevs.com/uploads/monthly_2024_12/1559047625_ConceptionGallery03(Premium).thumb.jpg.df4bac08fab242234977e9388fc85ade.jpg" data-ratio="60.1" width="1000" class="ipsImage ipsImage_thumbnailed" alt="Conception Gallery 03 (Premium).jpg"></a></p>]]></description><guid isPermaLink="false">57143</guid><pubDate>Sun, 15 Dec 2024 20:40:23 +0000</pubDate></item><item><title>Let's create WebGL examples for practice</title><link>https://www.html5gamedevs.com/topic/34115-lets-create-webgl-examples-for-practice/</link><description><![CDATA[
<p>
	The best way to learn is to practice as much as possible. Share your examples here.
</p>

<p>
	What browsers WebGL is supported, you can see here:
</p>

<ul><li>
		WebGL 1.0: <a href="https://caniuse.com/#feat=webgl" rel="external nofollow">https://caniuse.com/#feat=webgl</a>
	</li>
	<li>
		WebGL 2.0: <a href="https://caniuse.com/#feat=webgl2" rel="external nofollow">https://caniuse.com/#feat=webgl2</a>
	</li>
</ul><p>
	A brief description of what WebGL is, and references to the specifications: <a href="https://www.khronos.org/webgl/" rel="external nofollow">https://www.khronos.org/webgl/</a>
</p>

<p>
	Tutorials:
</p>

<ul><li>
		<a href="https://webglfundamentals.org/" rel="external nofollow">WebGL 1.0 Fundamentals</a>
	</li>
	<li>
		<a href="https://webgl2fundamentals.org/" rel="external nofollow">WebGL 2.0 Fundamentals</a>
	</li>
</ul><p>
	This book is about WebGL 1.0: <a href="https://www.amazon.com/WebGL-Programming-Guide-Interactive-Graphics/dp/0321902920" rel="external nofollow">WebGL Programming Guide</a>
</p>

<p>
	Source Code for the book: <a class="ipsAttachLink" href="https://www.html5gamedevs.com/applications/core/interface/file/attachment.php?id=15796" data-fileid="15796" rel="">examples.zip</a>
</p>

<p>
	Source Code for the book on JSFiddle:
</p>

<p>
	Chapter 02. Your First Step with WebGL<br />
	ch02/HelloCanvas: <a href="https://jsfiddle.net/8Observer8/2gky294r/" rel="external nofollow">https://jsfiddle.net/8Observer8/2gky294r/</a><br />
	ch02/HelloPoint1: <a href="https://jsfiddle.net/8Observer8/cc72u1u5/" rel="external nofollow">https://jsfiddle.net/8Observer8/cc72u1u5/</a><br />
	ch02/HelloPoint2: <a href="https://jsfiddle.net/8Observer8/uxw657ud/" rel="external nofollow">https://jsfiddle.net/8Observer8/uxw657ud/</a><br />
	ch02/ClickedPoints: <a href="https://jsfiddle.net/8Observer8/xf4fnc0o/" rel="external nofollow">https://jsfiddle.net/8Observer8/xf4fnc0o/</a><br />
	ch02/ColoredPoints: <a href="https://jsfiddle.net/8Observer8/gkkmnpga/" rel="external nofollow">https://jsfiddle.net/8Observer8/gkkmnpga/</a>
</p>

<p>
	Chapter 03. Drawing and Transforming Triangles<br />
	ch03/MultiPoint: <a href="https://jsfiddle.net/8Observer8/cty1120m/" rel="external nofollow">https://jsfiddle.net/8Observer8/cty1120m/</a><br />
	ch03/HelloTriangle: <a href="https://jsfiddle.net/8Observer8/wk4sksnw/" rel="external nofollow">https://jsfiddle.net/8Observer8/wk4sksnw/</a><br />
	ch03/HelloQuad: <a href="https://jsfiddle.net/8Observer8/g4ctyk7w/" rel="external nofollow">https://jsfiddle.net/8Observer8/g4ctyk7w/</a><br />
	ch03/HelloQuad_FAN: <a href="https://jsfiddle.net/8Observer8/v119e8o6/" rel="external nofollow">https://jsfiddle.net/8Observer8/v119e8o6/</a><br />
	ch03/HelloTriangle_LINES: <a href="https://jsfiddle.net/8Observer8/wwrkaxcf/" rel="external nofollow">https://jsfiddle.net/8Observer8/wwrkaxcf/</a><br />
	ch03/HelloTriangle_LINE_STRIP: <a href="https://jsfiddle.net/8Observer8/3ggjz4rm/" rel="external nofollow">https://jsfiddle.net/8Observer8/3ggjz4rm/</a><br />
	ch03/HelloTriangle_LINE_LOOP: <a href="https://jsfiddle.net/8Observer8/7vcyquro/" rel="external nofollow">https://jsfiddle.net/8Observer8/7vcyquro/</a><br />
	ch03/TranslatedTriangle: <a href="https://jsfiddle.net/8Observer8/0dp4xvyt/" rel="external nofollow">https://jsfiddle.net/8Observer8/0dp4xvyt/</a><br />
	ch03/RotatedTriangle: <a href="https://jsfiddle.net/8Observer8/gh9s6szm/" rel="external nofollow">https://jsfiddle.net/8Observer8/gh9s6szm/</a><br />
	ch03/RotatedTriangle_Matrix: <a href="https://jsfiddle.net/8Observer8/7ze7pgpu/" rel="external nofollow">https://jsfiddle.net/8Observer8/7ze7pgpu/</a><br />
	ch03/ScaledTriangle_Matrix: <a href="https://jsfiddle.net/8Observer8/6xzoe63s/" rel="external nofollow">https://jsfiddle.net/8Observer8/6xzoe63s/</a>
</p>

<p>
	Chapter 04. More Transformations and Basic Animation<br />
	ch04/RotatedTriangle_Matrix4: <a href="https://jsfiddle.net/8Observer8/t4y7783v/" rel="external nofollow">https://jsfiddle.net/8Observer8/t4y7783v/</a><br />
	ch04/RotatedTranslatedTriangle: <a href="https://jsfiddle.net/8Observer8/b5yfxojp/" rel="external nofollow">https://jsfiddle.net/8Observer8/b5yfxojp/</a><br />
	ch04/TranslatedRotatedTriangle: <a href="https://jsfiddle.net/8Observer8/o8voebc9/" rel="external nofollow">https://jsfiddle.net/8Observer8/o8voebc9/</a><br />
	ch04/RotatingTriangle: <a href="https://jsfiddle.net/8Observer8/x9j5vdk7/" rel="external nofollow">https://jsfiddle.net/8Observer8/x9j5vdk7/</a><br />
	ch04/RotatingTranslatedTriangle: <a href="https://jsfiddle.net/8Observer8/rkrv0322/" rel="external nofollow">https://jsfiddle.net/8Observer8/rkrv0322/</a><br />
	ch04/RotatingTriangle_withButtons: <a href="https://jsfiddle.net/8Observer8/wzoLmdzd/" rel="external nofollow">https://jsfiddle.net/8Observer8/wzoLmdzd/</a>
</p>

<p>
	Chapter 05. Using Colors and Texture Images<br />
	ch05/MultiAttributeSize: <a href="https://jsfiddle.net/8Observer8/dsfgezbj/" rel="external nofollow">https://jsfiddle.net/8Observer8/dsfgezbj/</a><br />
	ch05/MultiAttributeSize_Interleaved: <a href="https://jsfiddle.net/8Observer8/bshwnden/" rel="external nofollow">https://jsfiddle.net/8Observer8/bshwnden/</a><br />
	ch05/MultiAttributeColor: <a href="https://jsfiddle.net/8Observer8/bveykLdf/" rel="external nofollow">https://jsfiddle.net/8Observer8/bveykLdf/</a><br />
	ch05/ColoredTriangle: <a href="https://jsfiddle.net/8Observer8/mrkpms7d/" rel="external nofollow">https://jsfiddle.net/8Observer8/mrkpms7d/</a><br />
	ch05/HelloTriangle_FragCoord: <a href="https://jsfiddle.net/8Observer8/ft33yo9s/" rel="external nofollow">https://jsfiddle.net/8Observer8/ft33yo9s/</a><br />
	ch05/TexturedQuad: <a href="https://jsfiddle.net/8Observer8/o3vakb3h/" rel="external nofollow">https://jsfiddle.net/8Observer8/o3vakb3h/</a><br />
	ch05/TexturedQuad_Repeat: <a href="https://jsfiddle.net/8Observer8/2s7q68cc/" rel="external nofollow">https://jsfiddle.net/8Observer8/2s7q68cc/</a><br />
	ch05/TexturedQuad_Clamp_Mirror: <a href="https://jsfiddle.net/8Observer8/mqu0wwma/" rel="external nofollow">https://jsfiddle.net/8Observer8/mqu0wwma/</a><br />
	ch05/MultiTexture: <a href="https://jsfiddle.net/8Observer8/ztew5u0p/" rel="external nofollow">https://jsfiddle.net/8Observer8/ztew5u0p/</a>
</p>

<p>
	Chapter 07. Toward the 3D World<br />
	ch07/LookAtTriangles: <a href="https://jsfiddle.net/8Observer8/6ab11xpg/" rel="external nofollow">https://jsfiddle.net/8Observer8/6ab11xpg/</a><br />
	ch07/LookAtRotatedTriangles: <a href="https://jsfiddle.net/8Observer8/944dd57h/" rel="external nofollow">https://jsfiddle.net/8Observer8/944dd57h/</a><br />
	ch07/LookAtRotatedTriangles_modelViewMatrix: <a href="https://jsfiddle.net/8Observer8/e5t6gj1w/" rel="external nofollow">https://jsfiddle.net/8Observer8/e5t6gj1w/</a><br />
	ch07/LookAtTrianglesWithKeys: <a href="https://jsfiddle.net/8Observer8/38ewegg2/" rel="external nofollow">https://jsfiddle.net/8Observer8/38ewegg2/</a><br />
	ch07/OrthoView: <a href="https://jsfiddle.net/8Observer8/zebt4u7t/" rel="external nofollow">https://jsfiddle.net/8Observer8/zebt4u7t/</a><br />
	ch07/LookAtTrianglesWithKey_ViewVolume: <a href="https://jsfiddle.net/8Observer8/vLcejtm1/" rel="external nofollow">https://jsfiddle.net/8Observer8/vLcejtm1/</a><br />
	ch07/OrthoView_halfSize: <a href="https://jsfiddle.net/8Observer8/uvcd9h4p/" rel="external nofollow">https://jsfiddle.net/8Observer8/uvcd9h4p/</a><br />
	ch07/OrthoView_halfWidth: <a href="https://jsfiddle.net/8Observer8/vepodfb8/" rel="external nofollow">https://jsfiddle.net/8Observer8/vepodfb8/</a><br />
	ch07/PerspectiveView: <a href="https://jsfiddle.net/8Observer8/640pv8qe/" rel="external nofollow">https://jsfiddle.net/8Observer8/640pv8qe/</a><br />
	ch07/PerspectiveView_mvp: <a href="https://jsfiddle.net/8Observer8/w8yh4Lmj/" rel="external nofollow">https://jsfiddle.net/8Observer8/w8yh4Lmj/</a><br />
	ch07/PerspectiveView_mvpMatrix: <a href="https://jsfiddle.net/8Observer8/hhwnx145/" rel="external nofollow">https://jsfiddle.net/8Observer8/hhwnx145/</a><br />
	ch07/DepthBuffer: <a href="https://jsfiddle.net/8Observer8/hyumw026/" rel="external nofollow">https://jsfiddle.net/8Observer8/hyumw026/</a><br />
	ch07/Zfighting: <a href="https://jsfiddle.net/8Observer8/foc0b45t/" rel="external nofollow">https://jsfiddle.net/8Observer8/foc0b45t/</a><br />
	ch07/HelloCube: <a href="https://jsfiddle.net/8Observer8/rkpn5tyw/" rel="external nofollow">https://jsfiddle.net/8Observer8/rkpn5tyw/</a><br />
	ch07/ColoredCube: <a href="https://jsfiddle.net/8Observer8/80x8cyom/" rel="external nofollow">https://jsfiddle.net/8Observer8/80x8cyom/</a><br />
	ch07/ColoredCube_singleColor: <a href="https://jsfiddle.net/8Observer8/pespackq/" rel="external nofollow">https://jsfiddle.net/8Observer8/pespackq/</a>
</p>

<p>
	Chapter 08. Lighting Objects<br />
	ch08/LightedCube: <a href="https://jsfiddle.net/8Observer8/4jchxo84/" rel="external nofollow">https://jsfiddle.net/8Observer8/4jchxo84/</a><br />
	ch08/LightedCube_animation: <a href="https://jsfiddle.net/8Observer8/ekw3osj7/" rel="external nofollow">https://jsfiddle.net/8Observer8/ekw3osj7/</a><br />
	ch08/LightedCube_ambient: <a href="https://jsfiddle.net/8Observer8/y6qwnfe1/" rel="external nofollow">https://jsfiddle.net/8Observer8/y6qwnfe1/</a><br />
	ch08/LightedTranslatedRotatedCube: <a href="https://jsfiddle.net/8Observer8/pa88ujjg/" rel="external nofollow">https://jsfiddle.net/8Observer8/pa88ujjg/</a><br />
	ch08/PointLightedCube: <a href="https://jsfiddle.net/8Observer8/vuq118ue/" rel="external nofollow">https://jsfiddle.net/8Observer8/vuq118ue/</a><br />
	ch08/PointLightedCube_animation: <a href="https://jsfiddle.net/8Observer8/5bj39hb8/" rel="external nofollow">https://jsfiddle.net/8Observer8/5bj39hb8/</a><br />
	ch08/PointLightedSphere: <a href="https://jsfiddle.net/8Observer8/edz9Lz8f/" rel="external nofollow">https://jsfiddle.net/8Observer8/edz9Lz8f/</a><br />
	ch08/PointLightedSphere_perFragment: <a href="https://jsfiddle.net/8Observer8/qzwyow4j/" rel="external nofollow">https://jsfiddle.net/8Observer8/qzwyow4j/</a><br />
	ch08/PointLightedCube_perFragment: <a href="https://jsfiddle.net/8Observer8/8t1umamf/" rel="external nofollow">https://jsfiddle.net/8Observer8/8t1umamf/</a><br />
	ch08/LightedCube_perFragment: <a href="https://jsfiddle.net/8Observer8/471y2t84/" rel="external nofollow">https://jsfiddle.net/8Observer8/471y2t84/</a>
</p>

<p>
	Chapter 09. Hierarchical Objects<br />
	ch09/JointModel: <a href="https://jsfiddle.net/8Observer8/vqse5egz/" rel="external nofollow">https://jsfiddle.net/8Observer8/vqse5egz/</a><br />
	ch09/MultiJointModel: <a href="https://jsfiddle.net/8Observer8/sL53wkn3/" rel="external nofollow">https://jsfiddle.net/8Observer8/sL53wkn3/</a><br />
	ch09/MultiJointModel_segment: <a href="https://jsfiddle.net/8Observer8/ygvk7odv/" rel="external nofollow">https://jsfiddle.net/8Observer8/ygvk7odv/</a>
</p>

<p>
	Chapter 10. Advanced Techniques<br />
	ch10/RotateObject: <a href="https://jsfiddle.net/8Observer8/1f5hLmff/" rel="external nofollow">https://jsfiddle.net/8Observer8/1f5hLmff/</a><br />
	ch10/PickObject: <a href="https://jsfiddle.net/8Observer8/owue624n/" rel="external nofollow">https://jsfiddle.net/8Observer8/owue624n/</a><br />
	ch10/PickFace: <a href="https://jsfiddle.net/8Observer8/edvw6z90/" rel="external nofollow">https://jsfiddle.net/8Observer8/edvw6z90/</a><br />
	ch10/HUD: <a href="https://jsfiddle.net/8Observer8/fLxxxs35/" rel="external nofollow">https://jsfiddle.net/8Observer8/fLxxxs35/</a><br />
	ch10/3DoverWeb: <a href="https://jsfiddle.net/8Observer8/tbowcc16/" rel="external nofollow">https://jsfiddle.net/8Observer8/tbowcc16/</a><br />
	ch10/Fog: <a href="https://jsfiddle.net/8Observer8/6yf9L399/" rel="external nofollow">https://jsfiddle.net/8Observer8/6yf9L399/</a><br />
	ch10/Fog_w: <a href="https://jsfiddle.net/8Observer8/8aLvthc3/" rel="external nofollow">https://jsfiddle.net/8Observer8/8aLvthc3/</a><br />
	ch10/RoundedPoints: <a href="https://jsfiddle.net/8Observer8/sjs5kmn4/" rel="external nofollow">https://jsfiddle.net/8Observer8/sjs5kmn4/</a><br />
	ch10/LookAtBlendedTriangles: <a href="https://jsfiddle.net/8Observer8/apoz294n/" rel="external nofollow">https://jsfiddle.net/8Observer8/apoz294n/</a><br />
	ch10/BlendedCube: <a href="https://jsfiddle.net/8Observer8/xsrL2fs5/" rel="external nofollow">https://jsfiddle.net/8Observer8/xsrL2fs5/</a><br />
	ch10/ProgramObject: <a href="https://jsfiddle.net/8Observer8/jnd0j6w0/" rel="external nofollow">https://jsfiddle.net/8Observer8/jnd0j6w0/</a><br />
	ch10/FramebufferObject: <a href="https://jsfiddle.net/8Observer8/vaLq6d66/" rel="external nofollow">https://jsfiddle.net/8Observer8/vaLq6d66/</a><br />
	ch10/Shadow: <a href="https://jsfiddle.net/8Observer8/jsnfwcae/" rel="external nofollow">https://jsfiddle.net/8Observer8/jsnfwcae/</a><br />
	ch10/Shadow_highp: <a href="https://jsfiddle.net/8Observer8/brjzr00n/" rel="external nofollow">https://jsfiddle.net/8Observer8/brjzr00n/</a><br />
	ch10/Shadow_highp_sphere: <a href="https://jsfiddle.net/8Observer8/4fmyLy5f/" rel="external nofollow">https://jsfiddle.net/8Observer8/4fmyLy5f/</a><br />
	ch10/OBJViewer: <a href="https://jsfiddle.net/8Observer8/pws1x7uv/" rel="external nofollow">https://jsfiddle.net/8Observer8/pws1x7uv/</a><br />
	ch10/RotatingTriangle_contextLost: <a href="https://jsfiddle.net/8Observer8/vs01s8Lz/" rel="external nofollow">https://jsfiddle.net/8Observer8/vs01s8Lz/</a>
</p>

<p>
	Gifts<br />
	gifts/Particle: <a href="https://jsfiddle.net/8Observer8/Ltzt31vk/" rel="external nofollow">https://jsfiddle.net/8Observer8/Ltzt31vk/</a><br />
	gifts/Printf: <a href="https://jsfiddle.net/8Observer8/qsw7jtec/" rel="external nofollow">https://jsfiddle.net/8Observer8/qsw7jtec/</a><br />
	gifts/SpecularCube: <a href="https://jsfiddle.net/8Observer8/z4xj9rbv/" rel="external nofollow">https://jsfiddle.net/8Observer8/z4xj9rbv/</a><br />
	gifts/TextTexture: <a href="https://jsfiddle.net/8Observer8/qt7q2kuf/" rel="external nofollow">https://jsfiddle.net/8Observer8/qt7q2kuf/</a><br />
	gifts/ThreeDUI: <a href="https://jsfiddle.net/8Observer8/zdw1f2st/" rel="external nofollow">https://jsfiddle.net/8Observer8/zdw1f2st/</a><br />
	gifts/Wave: <a href="https://jsfiddle.net/8Observer8/eL9odthz/" rel="external nofollow">https://jsfiddle.net/8Observer8/eL9odthz/</a><br />
	gifts/WorldCoordinateSystem: <a href="https://jsfiddle.net/8Observer8/6utj3hnk/" rel="external nofollow">https://jsfiddle.net/8Observer8/6utj3hnk/</a><br />
	appendix/CoordinateSystem: <a href="https://jsfiddle.net/8Observer8/dzz056jt/" rel="external nofollow">https://jsfiddle.net/8Observer8/dzz056jt/</a>
</p>

<p>
	Appendix<br />
	appendix/CoordinateSystem_viewVolume: <a href="https://jsfiddle.net/8Observer8/apxLww1q/" rel="external nofollow">https://jsfiddle.net/8Observer8/apxLww1q/</a><br />
	appendix/LoadShaderFromFiles: <a href="https://jsfiddle.net/8Observer8/wdn9ubhj/" rel="external nofollow">https://jsfiddle.net/8Observer8/wdn9ubhj/</a>
</p>
]]></description><guid isPermaLink="false">34115</guid><pubDate>Mon, 20 Nov 2017 10:16:23 +0000</pubDate></item><item><title>I will give 100 best HTML5 games bundle for web, and fb instant games</title><link>https://www.html5gamedevs.com/topic/57806-i-will-give-100-best-html5-games-bundle-for-web-and-fb-instant-games/</link><description><![CDATA[<p style="text-align:justify;">
	<span lang="en-us" style="color:#62646a;" xml:lang="en-us">Hi Friends, I will send you best 100 High Quality HTML5 games made with construct2 and C3 game engine. You can use these games on your own gaming website or make Facebook instant game (You can also export html5 games to Android and upload to play store).</span>
</p>

<p>
	<strong><span lang="en-us" style="border:none 1pt;color:#62646a;padding:0cm;" xml:lang="en-us">Includes :</span></strong>
</p>

<ul>
	<li>
		<span lang="en-us" style="color:#62646a;" xml:lang="en-us">HTML5 projects</span>
	</li>
	<li>
		<span lang="en-us" style="color:#62646a;" xml:lang="en-us">Construct 2, 3 projects</span>
	</li>
	<li>
		<span lang="en-us" style="color:#62646a;" xml:lang="en-us">Capx file</span>
	</li>
	<li>
		<span lang="en-us" style="color:#62646a;" xml:lang="en-us">(HTML,/ CAPX, C3P)</span>
	</li>
</ul>

<p>
	<span lang="en-us" style="color:#62646a;" xml:lang="en-us">Easy to Reskin</span>
</p>

<p>
	<span lang="en-us" style="color:#62646a;" xml:lang="en-us">Easy to Add Content</span>
</p>

<p>
	<span lang="en-us" style="color:#62646a;" xml:lang="en-us">Easy to Change Source</span>
</p>

<p>
	<span lang="en-us" style="color:#62646a;" xml:lang="en-us">Playable in all Platforms (Mobile, PC, etc.)</span>
</p>

<p>
	<span lang="en-us" style="color:#62646a;" xml:lang="en-us">Included HTML5 Files for Export to iOS and Android</span>
</p>

<p>
	<span lang="en-us" style="color:#62646a;" xml:lang="en-us">If you are intersted, please visit this Link<span> </span><span>:</span></span>
</p>

<p>
	<a href="https://www.fiverr.com/s/WEmN6vx" rel="external nofollow">https://www.fiverr.com/s/WEmN6vx</a>
</p>

<p><a href="https://www.html5gamedevs.com/uploads/monthly_2025_04/1193138947_ConceptionGallery03(Premium).jpg.13141d3da6246364ed93aad80dd1ef47.jpg" class="ipsAttachLink ipsAttachLink_image"><img data-fileid="26963" src="https://www.html5gamedevs.com/uploads/monthly_2025_04/877563782_ConceptionGallery03(Premium).thumb.jpg.81b0713eec5ec26a189d9db3284142d8.jpg" data-ratio="60.1" width="1000" class="ipsImage ipsImage_thumbnailed" alt="Conception Gallery 03 (Premium).jpg"></a></p>
<p><a href="https://www.html5gamedevs.com/uploads/monthly_2025_04/967942680_ConceptionGallery02(Standard).jpg.0e128570335e7f99da6e8b8c8b850fa7.jpg" class="ipsAttachLink ipsAttachLink_image"><img data-fileid="26962" src="https://www.html5gamedevs.com/uploads/monthly_2025_04/1368584738_ConceptionGallery02(Standard).thumb.jpg.351e6ea166cc3fa38719b907f58ecf9b.jpg" data-ratio="60.1" width="1000" class="ipsImage ipsImage_thumbnailed" alt="Conception Gallery 02 (Standard).jpg"></a></p>
<p><a href="https://www.html5gamedevs.com/uploads/monthly_2025_04/1016708514_ConceptionGallery01(Basic).jpg.54e3c17b7d6b71fcc6c7c8a182955702.jpg" class="ipsAttachLink ipsAttachLink_image"><img data-fileid="26961" src="https://www.html5gamedevs.com/uploads/monthly_2025_04/696686005_ConceptionGallery01(Basic).thumb.jpg.4c74b4909e0911b940d34e5f34023754.jpg" data-ratio="60.1" width="1000" class="ipsImage ipsImage_thumbnailed" alt="Conception Gallery 01 (Basic).jpg"></a></p>]]></description><guid isPermaLink="false">57806</guid><pubDate>Wed, 16 Apr 2025 18:51:28 +0000</pubDate></item><item><title>Exploring B and B+ Trees</title><link>https://www.html5gamedevs.com/topic/55264-exploring-b-and-b-trees/</link><description><![CDATA[<p>
	I'm looking at file structure in databases, especially B and B+ trees. I'm having trouble understanding these concepts, therefore I'm looking to you for help.
</p>

<pre class="ipsCode">-- Example of file structure using B and B+ trees in DBMS
CREATE TABLE Employee (
    id INT,
    name VARCHAR(50),
    PRIMARY KEY (id)
);</pre>

<p>
	I'm not looking for a quick fix; I want to really grasp how file structure works in databases with B and B+ trees. As I read this <a href="https://www.scaler.com/topics/course/dbms/" rel="external nofollow">post</a>, could you explain these principles in clearer terms? What are some frequent errors to avoid, and how may B and B+ trees be used efficiently to organize data?
</p>

<p>
	Your comments and examples would be really helpful in better understanding this issue. Let's work together to organize files in databases!
</p>
]]></description><guid isPermaLink="false">55264</guid><pubDate>Sat, 27 Jan 2024 02:04:56 +0000</pubDate></item><item><title>Resolving Switch Statement Errors in C++ Programs</title><link>https://www.html5gamedevs.com/topic/55579-resolving-switch-statement-errors-in-c-programs/</link><description><![CDATA[<p>
	Switch statements are an elegant method for multi-branch decision-making in C++ systems. Despite its usefulness, developers frequently find difficult instances in which the program's execution deviates from the planned logic flow owing to difficulties with switch statements. This topic dives into a scenario in which the program fails to execute the required statements or delivers unexpected results despite the existence of precisely written switch cases.
</p>

<pre class="ipsCode prettyprint lang-c prettyprinted"><span class="com">#include</span><span class="pln"> </span><span class="str">&lt;iostream&gt;</span><span class="pln">

</span><span class="typ">int</span><span class="pln"> main</span><span class="pun">()</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
    </span><span class="kwd">char</span><span class="pln"> choice </span><span class="pun">=</span><span class="pln"> </span><span class="str">'C'</span><span class="pun">;</span><span class="pln">

    </span><span class="com">// Simulate vending machine interaction using switch statement</span><span class="pln">
    </span><span class="kwd">switch</span><span class="pln"> </span><span class="pun">(</span><span class="pln">choice</span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
        </span><span class="kwd">case</span><span class="pln"> </span><span class="str">'A'</span><span class="pun">:</span><span class="pln">
            std</span><span class="pun">::</span><span class="pln">cout </span><span class="pun">&lt;&lt;</span><span class="pln"> </span><span class="str">"Product A selected."</span><span class="pun">;</span><span class="pln">
            </span><span class="kwd">break</span><span class="pun">;</span><span class="pln">
        </span><span class="kwd">case</span><span class="pln"> </span><span class="str">'B'</span><span class="pun">:</span><span class="pln">
            std</span><span class="pun">::</span><span class="pln">cout </span><span class="pun">&lt;&lt;</span><span class="pln"> </span><span class="str">"Product B selected."</span><span class="pun">;</span><span class="pln">
            </span><span class="kwd">break</span><span class="pun">;</span><span class="pln">
        </span><span class="kwd">case</span><span class="pln"> </span><span class="str">'C'</span><span class="pun">:</span><span class="pln">
            std</span><span class="pun">::</span><span class="pln">cout </span><span class="pun">&lt;&lt;</span><span class="pln"> </span><span class="str">"Product C selected."</span><span class="pun">;</span><span class="pln">
            </span><span class="kwd">break</span><span class="pun">;</span><span class="pln">
        </span><span class="kwd">default</span><span class="pun">:</span><span class="pln">
            std</span><span class="pun">::</span><span class="pln">cout </span><span class="pun">&lt;&lt;</span><span class="pln"> </span><span class="str">"Invalid selection."</span><span class="pun">;</span><span class="pln">
            </span><span class="kwd">break</span><span class="pun">;</span><span class="pln">
    </span><span class="pun">}</span><span class="pln">

    </span><span class="kwd">return</span><span class="pln"> </span><span class="lit">0</span><span class="pun">;</span><span class="pln">
</span><span class="pun">}</span></pre>

<p>
	The scenario develops within a C++ application designed to simulate a vending machine. Using switch statements, the software supports user interactions and processes different input commands to imitate the vending machine's operation. However, differences develop during the execution of the switch statement, resulting in incorrect outputs and potential disturbances in the vending machine simulation.
</p>

<p>
	At the heart of the problem is the complexity added by switch statements. Despite careful implementation, the software fails to handle the switch situations, resulting in faulty decisions and incorrect results. As a result, the program's functionality suffers, as does the user experience during the vending machine simulation.
</p>

<p>
	To properly handle this difficulty, developers need help on finding and correcting faults inside C++ switch statements. By thoroughly studying each switch case and assuring clarity in the logic flow, developers may reduce inconsistencies and improve software stability. Furthermore, understanding typical <a href="https://www.scaler.com/topics/course/cpp-beginners/" rel="external nofollow">problems</a> and best practices for debugging switch statement logic will greatly improve developers' expertise in program development and debugging.
</p>
]]></description><guid isPermaLink="false">55579</guid><pubDate>Sun, 18 Feb 2024 12:38:12 +0000</pubDate></item><item><title>How to determine if a spinning session is winning or losing</title><link>https://www.html5gamedevs.com/topic/57072-how-to-determine-if-a-spinning-session-is-winning-or-losing/</link><description><![CDATA[<p>
	Hello everyone,
</p>

<p>
	I'm new to the world of PixiJS and currently experimenting by creating a simple slot machine. I have divided the functionality into different modules.
</p>

<p>
	I have a question: How can I determine if a spinning session results in a win or a loss?
</p>

<p>
	I have 4 horizontal rows and 5 vertical columns. A winning session is defined when 3, 4, or 5 identical symbols appear consecutively in a row, from left to right. I would like to log a message to the console indicating whether the spin was a win or a loss.
</p>

<p>
	Any guidance on how to implement this logic effectively would be greatly appreciated. Thank you!<br />
	<br />
	Here is my code:<br />
	<br />
	 
</p>

<div style="background-color:#282c34;color:#bbbbbb;font-size:14px;">
	<div>
		<span style="color:#e06c75;">import</span><span style="color:#bbbbbb;"> { </span><span style="color:#abb2bf;">Ticker,</span><span style="color:#bbbbbb;"> </span><span style="color:#abb2bf;">Texture,</span><span style="color:#bbbbbb;"> </span><span style="color:#abb2bf;">Graphics</span><span style="color:#bbbbbb;"> } </span><span style="color:#e06c75;">from</span><span style="color:#bbbbbb;"> </span><span style="color:#e5c07b;">"pixi.js"</span><span style="color:#bbbbbb;">;</span>
	</div>

	<div>
		<span style="color:#e06c75;">import</span><span style="color:#bbbbbb;"> { </span><span style="color:#abb2bf;">getWeightedRandomFruit</span><span style="color:#bbbbbb;"> } </span><span style="color:#e06c75;">from</span><span style="color:#bbbbbb;"> </span><span style="color:#e5c07b;">"./slotLogic.js"</span><span style="color:#bbbbbb;">;</span>
	</div>
	 

	<div>
		<span style="color:#56b6c2;">const</span><span style="color:#bbbbbb;"> </span><span style="color:#61afef;">fruitNames</span><span style="color:#bbbbbb;"> </span><span style="color:#e06c75;">=</span><span style="color:#bbbbbb;"> </span><span style="color:#abb2bf;">[</span>
	</div>

	<div>
		<span style="color:#bbbbbb;">  </span><span style="color:#e5c07b;">"apple.png"</span><span style="color:#abb2bf;">,</span>
	</div>

	<div>
		<span style="color:#bbbbbb;">  </span><span style="color:#e5c07b;">"greenGrapes.png"</span><span style="color:#abb2bf;">,</span>
	</div>

	<div>
		<span style="color:#bbbbbb;">  </span><span style="color:#e5c07b;">"olive.png"</span><span style="color:#abb2bf;">,</span>
	</div>

	<div>
		<span style="color:#bbbbbb;">  </span><span style="color:#e5c07b;">"orange.png"</span><span style="color:#abb2bf;">,</span>
	</div>

	<div>
		<span style="color:#bbbbbb;">  </span><span style="color:#e5c07b;">"purpleGrapes.png"</span><span style="color:#abb2bf;">,</span>
	</div>

	<div>
		<span style="color:#bbbbbb;">  </span><span style="color:#e5c07b;">"bar.png"</span><span style="color:#abb2bf;">,</span>
	</div>

	<div>
		<span style="color:#bbbbbb;">  </span><span style="color:#e5c07b;">"seven.png"</span><span style="color:#abb2bf;">,</span>
	</div>

	<div>
		<span style="color:#bbbbbb;">  </span><span style="color:#e5c07b;">"banana.png"</span><span style="color:#abb2bf;">,</span>
	</div>

	<div>
		<span style="color:#abb2bf;">]</span><span style="color:#bbbbbb;">;</span>
	</div>
	 

	<div>
		<span style="color:#e06c75;">export</span><span style="color:#bbbbbb;"> </span><span style="color:#56b6c2;">let</span><span style="color:#bbbbbb;"> </span><span style="color:#abb2bf;">isSpinning</span><span style="color:#bbbbbb;"> </span><span style="color:#e06c75;">=</span><span style="color:#bbbbbb;"> </span><span style="color:#56b6c2;">false</span><span style="color:#bbbbbb;">;</span>
	</div>

	<div>
		<span style="color:#56b6c2;">let</span><span style="color:#bbbbbb;"> </span><span style="color:#abb2bf;">activeTickers</span><span style="color:#bbbbbb;"> </span><span style="color:#e06c75;">=</span><span style="color:#bbbbbb;"> </span><span style="color:#abb2bf;">[]</span><span style="color:#bbbbbb;">;</span>
	</div>

	<div>
		<span style="color:#56b6c2;">let</span><span style="color:#bbbbbb;"> </span><span style="color:#abb2bf;">lastSpinTime</span><span style="color:#bbbbbb;"> </span><span style="color:#e06c75;">=</span><span style="color:#bbbbbb;"> </span><span style="color:#c678dd;">0</span><span style="color:#bbbbbb;">;</span>
	</div>

	<div>
		<span style="color:#56b6c2;">const</span><span style="color:#bbbbbb;"> </span><span style="color:#61afef;">spinCooldown</span><span style="color:#bbbbbb;"> </span><span style="color:#e06c75;">=</span><span style="color:#bbbbbb;"> </span><span style="color:#c678dd;">1700</span><span style="color:#bbbbbb;">;</span>
	</div>
	 

	<div>
		<span style="color:#e06c75;">export</span><span style="color:#bbbbbb;"> </span><span style="color:#56b6c2;">function</span><span style="color:#bbbbbb;"> </span><span style="color:#98c379;">spinReel</span><span style="color:#bbbbbb;">(</span><span style="color:#d19a66;">reelContainer</span><span style="color:#abb2bf;">,</span><span style="color:#bbbbbb;"> </span><span style="color:#d19a66;">onSpinEnd</span><span style="color:#bbbbbb;">) {</span>
	</div>

	<div>
		<span style="color:#bbbbbb;">  </span><span style="color:#56b6c2;">const</span><span style="color:#bbbbbb;"> </span><span style="color:#61afef;">currentTime</span><span style="color:#bbbbbb;"> </span><span style="color:#e06c75;">=</span><span style="color:#bbbbbb;"> </span><span style="color:#61afef;">Date</span><span style="color:#abb2bf;">.</span><span style="color:#98c379;">now</span><span style="color:#abb2bf;">()</span><span style="color:#bbbbbb;">;</span>
	</div>
	 

	<div>
		<span style="color:#bbbbbb;">  </span><span style="color:#e06c75;">if</span><span style="color:#bbbbbb;"> </span><span style="color:#abb2bf;">(isSpinning</span><span style="color:#bbbbbb;"> </span><span style="color:#e06c75;">||</span><span style="color:#bbbbbb;"> </span><span style="color:#abb2bf;">currentTime</span><span style="color:#bbbbbb;"> </span><span style="color:#e06c75;">-</span><span style="color:#bbbbbb;"> </span><span style="color:#abb2bf;">lastSpinTime</span><span style="color:#bbbbbb;"> </span><span style="color:#e06c75;">&lt;</span><span style="color:#bbbbbb;"> </span><span style="color:#abb2bf;">spinCooldown)</span><span style="color:#bbbbbb;"> {</span>
	</div>

	<div>
		<span style="color:#bbbbbb;">    </span><span style="color:#e06c75;">return</span><span style="color:#bbbbbb;">;</span>
	</div>

	<div>
		<span style="color:#bbbbbb;">  }</span>
	</div>
	 

	<div>
		<span style="color:#bbbbbb;">  </span><span style="color:#abb2bf;">isSpinning</span><span style="color:#bbbbbb;"> </span><span style="color:#e06c75;">=</span><span style="color:#bbbbbb;"> </span><span style="color:#56b6c2;">true</span><span style="color:#bbbbbb;">;</span>
	</div>

	<div>
		<span style="color:#bbbbbb;">  </span><span style="color:#abb2bf;">lastSpinTime</span><span style="color:#bbbbbb;"> </span><span style="color:#e06c75;">=</span><span style="color:#bbbbbb;"> </span><span style="color:#abb2bf;">currentTime</span><span style="color:#bbbbbb;">;</span>
	</div>
	 

	<div>
		<span style="color:#bbbbbb;">  </span><span style="color:#56b6c2;">const</span><span style="color:#bbbbbb;"> </span><span style="color:#61afef;">fruitContainer</span><span style="color:#bbbbbb;"> </span><span style="color:#e06c75;">=</span><span style="color:#bbbbbb;"> </span><span style="color:#61afef;">reelContainer</span><span style="color:#abb2bf;">.</span><span style="color:#98c379;">getChildByName</span><span style="color:#abb2bf;">(</span><span style="color:#e5c07b;">"fruitContainer"</span><span style="color:#abb2bf;">)</span><span style="color:#bbbbbb;">;</span>
	</div>

	<div>
		<span style="color:#bbbbbb;">  </span><span style="color:#56b6c2;">const</span><span style="color:#bbbbbb;"> </span><span style="color:#61afef;">spinDuration</span><span style="color:#bbbbbb;"> </span><span style="color:#e06c75;">=</span><span style="color:#bbbbbb;"> </span><span style="color:#c678dd;">500</span><span style="color:#bbbbbb;">;</span>
	</div>

	<div>
		<span style="color:#bbbbbb;">  </span><span style="color:#56b6c2;">const</span><span style="color:#bbbbbb;"> </span><span style="color:#61afef;">rows</span><span style="color:#bbbbbb;"> </span><span style="color:#e06c75;">=</span><span style="color:#bbbbbb;"> </span><span style="color:#c678dd;">4</span><span style="color:#bbbbbb;">;</span>
	</div>

	<div>
		<span style="color:#bbbbbb;">  </span><span style="color:#56b6c2;">const</span><span style="color:#bbbbbb;"> </span><span style="color:#61afef;">columns</span><span style="color:#bbbbbb;"> </span><span style="color:#e06c75;">=</span><span style="color:#bbbbbb;"> </span><span style="color:#61afef;">fruitContainer</span><span style="color:#abb2bf;">.</span><span style="color:#61afef;">children</span><span style="color:#abb2bf;">.</span><span style="color:#56b6c2;">length</span><span style="color:#bbbbbb;"> </span><span style="color:#e06c75;">/</span><span style="color:#bbbbbb;"> </span><span style="color:#abb2bf;">rows</span><span style="color:#bbbbbb;">;</span>
	</div>

	<div>
		<span style="color:#bbbbbb;">  </span><span style="color:#56b6c2;">const</span><span style="color:#bbbbbb;"> </span><span style="color:#61afef;">fruitHeight</span><span style="color:#bbbbbb;"> </span><span style="color:#e06c75;">=</span><span style="color:#bbbbbb;"> </span><span style="color:#61afef;">fruitContainer</span><span style="color:#abb2bf;">.children[</span><span style="color:#c678dd;">0</span><span style="color:#abb2bf;">].height</span><span style="color:#bbbbbb;">;</span>
	</div>

	<div>
		<span style="color:#bbbbbb;">  </span><span style="color:#56b6c2;">const</span><span style="color:#bbbbbb;"> </span><span style="color:#61afef;">stopDelay</span><span style="color:#bbbbbb;"> </span><span style="color:#e06c75;">=</span><span style="color:#bbbbbb;"> </span><span style="color:#c678dd;">300</span><span style="color:#bbbbbb;">;</span>
	</div>

	<div>
		<span style="color:#bbbbbb;">  </span><span style="color:#56b6c2;">let</span><span style="color:#bbbbbb;"> </span><span style="color:#abb2bf;">finishedColumns</span><span style="color:#bbbbbb;"> </span><span style="color:#e06c75;">=</span><span style="color:#bbbbbb;"> </span><span style="color:#c678dd;">0</span><span style="color:#bbbbbb;">;</span>
	</div>
	 

	<div>
		<span style="color:#bbbbbb;">  </span><span style="color:#56b6c2;">const</span><span style="color:#bbbbbb;"> </span><span style="color:#61afef;">tickers</span><span style="color:#bbbbbb;"> </span><span style="color:#e06c75;">=</span><span style="color:#bbbbbb;"> </span><span style="color:#abb2bf;">[]</span><span style="color:#bbbbbb;">;</span>
	</div>
	 

	<div>
		<span style="color:#bbbbbb;">  </span><span style="color:#56b6c2;">const</span><span style="color:#bbbbbb;"> </span><span style="color:#61afef;">mask</span><span style="color:#bbbbbb;"> </span><span style="color:#e06c75;">=</span><span style="color:#bbbbbb;"> </span><span style="color:#e06c75;">new</span><span style="color:#bbbbbb;"> </span><span style="color:#98c379;">Graphics</span><span style="color:#abb2bf;">()</span><span style="color:#bbbbbb;">;</span>
	</div>

	<div>
		<span style="color:#bbbbbb;">  </span><span style="color:#61afef;">mask</span><span style="color:#abb2bf;">.</span><span style="color:#98c379;">rect</span><span style="color:#abb2bf;">(</span>
	</div>

	<div>
		<span style="color:#bbbbbb;">    </span><span style="color:#61afef;">fruitContainer</span><span style="color:#abb2bf;">.x,</span>
	</div>

	<div>
		<span style="color:#bbbbbb;">    </span><span style="color:#61afef;">fruitContainer</span><span style="color:#abb2bf;">.y</span><span style="color:#bbbbbb;"> </span><span style="color:#e06c75;">+</span><span style="color:#bbbbbb;"> </span><span style="color:#c678dd;">20</span><span style="color:#abb2bf;">,</span>
	</div>

	<div>
		<span style="color:#bbbbbb;">    </span><span style="color:#61afef;">reelContainer</span><span style="color:#abb2bf;">.width,</span>
	</div>

	<div>
		<span style="color:#bbbbbb;">    </span><span style="color:#abb2bf;">rows</span><span style="color:#bbbbbb;"> </span><span style="color:#e06c75;">*</span><span style="color:#bbbbbb;"> </span><span style="color:#abb2bf;">fruitHeight</span><span style="color:#bbbbbb;"> </span><span style="color:#e06c75;">+</span><span style="color:#bbbbbb;"> </span><span style="color:#c678dd;">45</span>
	</div>

	<div>
		<span style="color:#bbbbbb;">  </span><span style="color:#abb2bf;">)</span><span style="color:#bbbbbb;">;</span>
	</div>

	<div>
		<span style="color:#bbbbbb;">  </span><span style="color:#61afef;">mask</span><span style="color:#abb2bf;">.</span><span style="color:#98c379;">fill</span><span style="color:#abb2bf;">(</span><span style="color:#bbbbbb;">{ color</span><span style="color:#abb2bf;">:</span><span style="color:#bbbbbb;"> </span><span style="color:#c678dd;">0x000000</span><span style="color:#abb2bf;">,</span><span style="color:#bbbbbb;"> alpha</span><span style="color:#abb2bf;">:</span><span style="color:#bbbbbb;"> </span><span style="color:#c678dd;">0</span><span style="color:#bbbbbb;"> }</span><span style="color:#abb2bf;">)</span><span style="color:#bbbbbb;">;</span>
	</div>

	<div>
		<span style="color:#bbbbbb;">  </span><span style="color:#61afef;">fruitContainer</span><span style="color:#abb2bf;">.mask</span><span style="color:#bbbbbb;"> </span><span style="color:#e06c75;">=</span><span style="color:#bbbbbb;"> </span><span style="color:#abb2bf;">mask</span><span style="color:#bbbbbb;">;</span>
	</div>

	<div>
		<span style="color:#bbbbbb;">  </span><span style="color:#61afef;">reelContainer</span><span style="color:#abb2bf;">.</span><span style="color:#98c379;">addChild</span><span style="color:#abb2bf;">(mask)</span><span style="color:#bbbbbb;">;</span>
	</div>
	 

	<div>
		<span style="color:#bbbbbb;">  </span><span style="color:#56b6c2;">const</span><span style="color:#bbbbbb;"> </span><span style="color:#61afef;">kickInDuration</span><span style="color:#bbbbbb;"> </span><span style="color:#e06c75;">=</span><span style="color:#bbbbbb;"> </span><span style="color:#c678dd;">300</span><span style="color:#bbbbbb;">;</span>
	</div>

	<div>
		<span style="color:#bbbbbb;">  </span><span style="color:#56b6c2;">const</span><span style="color:#bbbbbb;"> </span><span style="color:#61afef;">startKickIn</span><span style="color:#bbbbbb;"> </span><span style="color:#e06c75;">=</span><span style="color:#bbbbbb;"> </span><span style="color:#61afef;">Date</span><span style="color:#abb2bf;">.</span><span style="color:#98c379;">now</span><span style="color:#abb2bf;">()</span><span style="color:#bbbbbb;">;</span>
	</div>
	 

	<div>
		<span style="color:#bbbbbb;">  </span><span style="color:#56b6c2;">const</span><span style="color:#bbbbbb;"> </span><span style="color:#61afef;">kickInTicker</span><span style="color:#bbbbbb;"> </span><span style="color:#e06c75;">=</span><span style="color:#bbbbbb;"> </span><span style="color:#e06c75;">new</span><span style="color:#bbbbbb;"> </span><span style="color:#98c379;">Ticker</span><span style="color:#abb2bf;">()</span><span style="color:#bbbbbb;">;</span>
	</div>

	<div>
		<span style="color:#bbbbbb;">  </span><span style="color:#61afef;">activeTickers</span><span style="color:#abb2bf;">.</span><span style="color:#98c379;">push</span><span style="color:#abb2bf;">(kickInTicker)</span><span style="color:#bbbbbb;">;</span>
	</div>
	 

	<div>
		<span style="color:#bbbbbb;">  </span><span style="color:#61afef;">kickInTicker</span><span style="color:#abb2bf;">.</span><span style="color:#98c379;">add</span><span style="color:#abb2bf;">(</span><span style="color:#bbbbbb;">() </span><span style="color:#56b6c2;">=&gt;</span><span style="color:#bbbbbb;"> {</span>
	</div>

	<div>
		<span style="color:#bbbbbb;">    </span><span style="color:#56b6c2;">const</span><span style="color:#bbbbbb;"> </span><span style="color:#61afef;">elapsedTime</span><span style="color:#bbbbbb;"> </span><span style="color:#e06c75;">=</span><span style="color:#bbbbbb;"> </span><span style="color:#61afef;">Date</span><span style="color:#abb2bf;">.</span><span style="color:#98c379;">now</span><span style="color:#abb2bf;">()</span><span style="color:#bbbbbb;"> </span><span style="color:#e06c75;">-</span><span style="color:#bbbbbb;"> </span><span style="color:#abb2bf;">startKickIn</span><span style="color:#bbbbbb;">;</span>
	</div>

	<div>
		<span style="color:#bbbbbb;">    </span><span style="color:#56b6c2;">const</span><span style="color:#bbbbbb;"> </span><span style="color:#61afef;">progress</span><span style="color:#bbbbbb;"> </span><span style="color:#e06c75;">=</span><span style="color:#bbbbbb;"> </span><span style="color:#61afef;">Math</span><span style="color:#abb2bf;">.</span><span style="color:#98c379;">min</span><span style="color:#abb2bf;">(elapsedTime</span><span style="color:#bbbbbb;"> </span><span style="color:#e06c75;">/</span><span style="color:#bbbbbb;"> </span><span style="color:#abb2bf;">kickInDuration,</span><span style="color:#bbbbbb;"> </span><span style="color:#c678dd;">1</span><span style="color:#abb2bf;">)</span><span style="color:#bbbbbb;">;</span>
	</div>
	 

	<div>
		<span style="color:#bbbbbb;">    </span><span style="color:#61afef;">fruitContainer</span><span style="color:#abb2bf;">.</span><span style="color:#61afef;">children</span><span style="color:#abb2bf;">.</span><span style="color:#98c379;">forEach</span><span style="color:#abb2bf;">(</span><span style="color:#bbbbbb;">(</span><span style="color:#d19a66;">fruit</span><span style="color:#bbbbbb;">) </span><span style="color:#56b6c2;">=&gt;</span><span style="color:#bbbbbb;"> {</span>
	</div>

	<div>
		<span style="color:#bbbbbb;">      </span><span style="color:#61afef;">fruit</span><span style="color:#abb2bf;">.y</span><span style="color:#bbbbbb;"> </span><span style="color:#e06c75;">-=</span><span style="color:#bbbbbb;"> </span><span style="color:#c678dd;">4</span><span style="color:#bbbbbb;"> </span><span style="color:#e06c75;">*</span><span style="color:#bbbbbb;"> </span><span style="color:#abb2bf;">(</span><span style="color:#c678dd;">1</span><span style="color:#bbbbbb;"> </span><span style="color:#e06c75;">-</span><span style="color:#bbbbbb;"> </span><span style="color:#98c379;">smoothEaseOut</span><span style="color:#abb2bf;">(progress))</span><span style="color:#bbbbbb;">;</span>
	</div>

	<div>
		<span style="color:#bbbbbb;">    }</span><span style="color:#abb2bf;">)</span><span style="color:#bbbbbb;">;</span>
	</div>
	 

	<div>
		<span style="color:#bbbbbb;">    </span><span style="color:#e06c75;">if</span><span style="color:#bbbbbb;"> </span><span style="color:#abb2bf;">(progress</span><span style="color:#bbbbbb;"> </span><span style="color:#e06c75;">&gt;=</span><span style="color:#bbbbbb;"> </span><span style="color:#c678dd;">1</span><span style="color:#abb2bf;">)</span><span style="color:#bbbbbb;"> {</span>
	</div>

	<div>
		<span style="color:#bbbbbb;">      </span><span style="color:#61afef;">kickInTicker</span><span style="color:#abb2bf;">.</span><span style="color:#98c379;">stop</span><span style="color:#abb2bf;">()</span><span style="color:#bbbbbb;">;</span>
	</div>

	<div>
		<span style="color:#bbbbbb;">      </span><span style="color:#61afef;">kickInTicker</span><span style="color:#abb2bf;">.</span><span style="color:#98c379;">destroy</span><span style="color:#abb2bf;">()</span><span style="color:#bbbbbb;">;</span>
	</div>

	<div>
		<span style="color:#bbbbbb;">      </span><span style="color:#abb2bf;">activeTickers</span><span style="color:#bbbbbb;"> </span><span style="color:#e06c75;">=</span><span style="color:#bbbbbb;"> </span><span style="color:#61afef;">activeTickers</span><span style="color:#abb2bf;">.</span><span style="color:#98c379;">filter</span><span style="color:#abb2bf;">(</span><span style="color:#bbbbbb;">(</span><span style="color:#d19a66;">t</span><span style="color:#bbbbbb;">) </span><span style="color:#56b6c2;">=&gt;</span><span style="color:#bbbbbb;"> </span><span style="color:#abb2bf;">t</span><span style="color:#bbbbbb;"> </span><span style="color:#e06c75;">!==</span><span style="color:#bbbbbb;"> </span><span style="color:#abb2bf;">kickInTicker)</span><span style="color:#bbbbbb;">;</span>
	</div>

	<div>
		<span style="color:#bbbbbb;">      </span><span style="color:#98c379;">startSpinning</span><span style="color:#abb2bf;">()</span><span style="color:#bbbbbb;">;</span>
	</div>

	<div>
		<span style="color:#bbbbbb;">    }</span>
	</div>

	<div>
		<span style="color:#bbbbbb;">  }</span><span style="color:#abb2bf;">)</span><span style="color:#bbbbbb;">;</span>
	</div>

	<div>
		<span style="color:#bbbbbb;">  </span><span style="color:#61afef;">kickInTicker</span><span style="color:#abb2bf;">.</span><span style="color:#98c379;">start</span><span style="color:#abb2bf;">()</span><span style="color:#bbbbbb;">;</span>
	</div>
	 

	<div>
		<span style="color:#bbbbbb;">  </span><span style="color:#56b6c2;">function</span><span style="color:#bbbbbb;"> </span><span style="color:#98c379;">startSpinning</span><span style="color:#bbbbbb;">() {</span>
	</div>

	<div>
		<span style="color:#bbbbbb;">    </span><span style="color:#e06c75;">for</span><span style="color:#bbbbbb;"> </span><span style="color:#abb2bf;">(</span><span style="color:#56b6c2;">let</span><span style="color:#bbbbbb;"> </span><span style="color:#abb2bf;">col</span><span style="color:#bbbbbb;"> </span><span style="color:#e06c75;">=</span><span style="color:#bbbbbb;"> </span><span style="color:#c678dd;">0</span><span style="color:#bbbbbb;">; </span><span style="color:#abb2bf;">col</span><span style="color:#bbbbbb;"> </span><span style="color:#e06c75;">&lt;</span><span style="color:#bbbbbb;"> </span><span style="color:#abb2bf;">columns</span><span style="color:#bbbbbb;">; </span><span style="color:#abb2bf;">col</span><span style="color:#e06c75;">++</span><span style="color:#abb2bf;">)</span><span style="color:#bbbbbb;"> {</span>
	</div>

	<div>
		<span style="color:#bbbbbb;">      </span><span style="color:#56b6c2;">const</span><span style="color:#bbbbbb;"> </span><span style="color:#61afef;">ticker</span><span style="color:#bbbbbb;"> </span><span style="color:#e06c75;">=</span><span style="color:#bbbbbb;"> </span><span style="color:#e06c75;">new</span><span style="color:#bbbbbb;"> </span><span style="color:#98c379;">Ticker</span><span style="color:#abb2bf;">()</span><span style="color:#bbbbbb;">;</span>
	</div>

	<div>
		<span style="color:#bbbbbb;">      </span><span style="color:#61afef;">tickers</span><span style="color:#abb2bf;">.</span><span style="color:#98c379;">push</span><span style="color:#abb2bf;">(ticker)</span><span style="color:#bbbbbb;">;</span>
	</div>

	<div>
		<span style="color:#bbbbbb;">      </span><span style="color:#61afef;">activeTickers</span><span style="color:#abb2bf;">.</span><span style="color:#98c379;">push</span><span style="color:#abb2bf;">(ticker)</span><span style="color:#bbbbbb;">;</span>
	</div>
	 

	<div>
		<span style="color:#bbbbbb;">      </span><span style="color:#61afef;">ticker</span><span style="color:#abb2bf;">.</span><span style="color:#98c379;">add</span><span style="color:#abb2bf;">(</span><span style="color:#bbbbbb;">() </span><span style="color:#56b6c2;">=&gt;</span><span style="color:#bbbbbb;"> {</span>
	</div>

	<div>
		<span style="color:#bbbbbb;">        </span><span style="color:#56b6c2;">const</span><span style="color:#bbbbbb;"> </span><span style="color:#61afef;">fruits</span><span style="color:#bbbbbb;"> </span><span style="color:#e06c75;">=</span><span style="color:#bbbbbb;"> </span><span style="color:#abb2bf;">[]</span><span style="color:#bbbbbb;">;</span>
	</div>

	<div>
		<span style="color:#bbbbbb;">        </span><span style="color:#e06c75;">for</span><span style="color:#bbbbbb;"> </span><span style="color:#abb2bf;">(</span><span style="color:#56b6c2;">let</span><span style="color:#bbbbbb;"> </span><span style="color:#abb2bf;">row</span><span style="color:#bbbbbb;"> </span><span style="color:#e06c75;">=</span><span style="color:#bbbbbb;"> </span><span style="color:#c678dd;">0</span><span style="color:#bbbbbb;">; </span><span style="color:#abb2bf;">row</span><span style="color:#bbbbbb;"> </span><span style="color:#e06c75;">&lt;</span><span style="color:#bbbbbb;"> </span><span style="color:#abb2bf;">rows</span><span style="color:#bbbbbb;">; </span><span style="color:#abb2bf;">row</span><span style="color:#e06c75;">++</span><span style="color:#abb2bf;">)</span><span style="color:#bbbbbb;"> {</span>
	</div>

	<div>
		<span style="color:#bbbbbb;">          </span><span style="color:#56b6c2;">const</span><span style="color:#bbbbbb;"> </span><span style="color:#61afef;">fruitIndex</span><span style="color:#bbbbbb;"> </span><span style="color:#e06c75;">=</span><span style="color:#bbbbbb;"> </span><span style="color:#abb2bf;">col</span><span style="color:#bbbbbb;"> </span><span style="color:#e06c75;">+</span><span style="color:#bbbbbb;"> </span><span style="color:#abb2bf;">row</span><span style="color:#bbbbbb;"> </span><span style="color:#e06c75;">*</span><span style="color:#bbbbbb;"> </span><span style="color:#abb2bf;">columns</span><span style="color:#bbbbbb;">;</span>
	</div>

	<div>
		<span style="color:#bbbbbb;">          </span><span style="color:#61afef;">fruits</span><span style="color:#abb2bf;">.</span><span style="color:#98c379;">push</span><span style="color:#abb2bf;">(</span><span style="color:#61afef;">fruitContainer</span><span style="color:#abb2bf;">.children[fruitIndex])</span><span style="color:#bbbbbb;">;</span>
	</div>

	<div>
		<span style="color:#bbbbbb;">        }</span>
	</div>
	 

	<div>
		<span style="color:#bbbbbb;">        </span><span style="color:#61afef;">fruits</span><span style="color:#abb2bf;">.</span><span style="color:#98c379;">forEach</span><span style="color:#abb2bf;">(</span><span style="color:#bbbbbb;">(</span><span style="color:#d19a66;">fruit</span><span style="color:#bbbbbb;">) </span><span style="color:#56b6c2;">=&gt;</span><span style="color:#bbbbbb;"> {</span>
	</div>

	<div>
		<span style="color:#bbbbbb;">          </span><span style="color:#e06c75;">if</span><span style="color:#bbbbbb;"> </span><span style="color:#abb2bf;">(</span><span style="color:#61afef;">window</span><span style="color:#abb2bf;">.innerWidth</span><span style="color:#bbbbbb;"> </span><span style="color:#e06c75;">&lt;</span><span style="color:#bbbbbb;"> </span><span style="color:#c678dd;">768</span><span style="color:#abb2bf;">)</span><span style="color:#bbbbbb;"> {</span>
	</div>

	<div>
		<span style="color:#bbbbbb;">            </span><span style="color:#61afef;">fruit</span><span style="color:#abb2bf;">.y</span><span style="color:#bbbbbb;"> </span><span style="color:#e06c75;">+=</span><span style="color:#bbbbbb;"> </span><span style="color:#c678dd;">100</span><span style="color:#bbbbbb;">;</span>
	</div>

	<div>
		<span style="color:#bbbbbb;">          } </span><span style="color:#e06c75;">else</span><span style="color:#bbbbbb;"> {</span>
	</div>

	<div>
		<span style="color:#bbbbbb;">            </span><span style="color:#61afef;">fruit</span><span style="color:#abb2bf;">.y</span><span style="color:#bbbbbb;"> </span><span style="color:#e06c75;">+=</span><span style="color:#bbbbbb;"> </span><span style="color:#c678dd;">40</span><span style="color:#bbbbbb;">;</span>
	</div>

	<div>
		<span style="color:#bbbbbb;">          }</span>
	</div>
	 

	<div>
		<span style="color:#bbbbbb;">          </span><span style="color:#e06c75;">if</span><span style="color:#bbbbbb;"> </span><span style="color:#abb2bf;">(</span><span style="color:#61afef;">fruit</span><span style="color:#abb2bf;">.y</span><span style="color:#bbbbbb;"> </span><span style="color:#e06c75;">&gt;</span><span style="color:#bbbbbb;"> </span><span style="color:#abb2bf;">rows</span><span style="color:#bbbbbb;"> </span><span style="color:#e06c75;">*</span><span style="color:#bbbbbb;"> </span><span style="color:#abb2bf;">fruitHeight)</span><span style="color:#bbbbbb;"> {</span>
	</div>

	<div>
		<span style="color:#bbbbbb;">            </span><span style="color:#61afef;">fruit</span><span style="color:#abb2bf;">.y</span><span style="color:#bbbbbb;"> </span><span style="color:#e06c75;">=</span><span style="color:#bbbbbb;"> </span><span style="color:#e06c75;">-</span><span style="color:#c678dd;">70</span><span style="color:#bbbbbb;">;</span>
	</div>

	<div>
		<span style="color:#bbbbbb;">            </span><span style="color:#56b6c2;">const</span><span style="color:#bbbbbb;"> </span><span style="color:#61afef;">randomFruitName</span><span style="color:#bbbbbb;"> </span><span style="color:#e06c75;">=</span><span style="color:#bbbbbb;"> </span><span style="color:#98c379;">getWeightedRandomFruit</span><span style="color:#abb2bf;">()</span><span style="color:#bbbbbb;">;</span>
	</div>

	<div>
		<span style="color:#bbbbbb;">            </span><span style="color:#61afef;">fruit</span><span style="color:#abb2bf;">.texture</span><span style="color:#bbbbbb;"> </span><span style="color:#e06c75;">=</span><span style="color:#bbbbbb;"> </span><span style="color:#61afef;">Texture</span><span style="color:#abb2bf;">.</span><span style="color:#98c379;">from</span><span style="color:#abb2bf;">(randomFruitName)</span><span style="color:#bbbbbb;">;</span>
	</div>

	<div>
		<span style="color:#bbbbbb;">          }</span>
	</div>

	<div>
		<span style="color:#bbbbbb;">        }</span><span style="color:#abb2bf;">)</span><span style="color:#bbbbbb;">;</span>
	</div>

	<div>
		<span style="color:#bbbbbb;">      }</span><span style="color:#abb2bf;">)</span><span style="color:#bbbbbb;">;</span>
	</div>
	 

	<div>
		<span style="color:#bbbbbb;">      </span><span style="color:#61afef;">ticker</span><span style="color:#abb2bf;">.</span><span style="color:#98c379;">start</span><span style="color:#abb2bf;">()</span><span style="color:#bbbbbb;">;</span>
	</div>

	<div>
		<span style="color:#bbbbbb;">    }</span>
	</div>
	 

	<div>
		<span style="color:#bbbbbb;">    </span><span style="color:#56b6c2;">const</span><span style="color:#bbbbbb;"> </span><span style="color:#98c379;">stopColumn</span><span style="color:#bbbbbb;"> </span><span style="color:#e06c75;">=</span><span style="color:#bbbbbb;"> (</span><span style="color:#d19a66;">col</span><span style="color:#bbbbbb;">) </span><span style="color:#56b6c2;">=&gt;</span><span style="color:#bbbbbb;"> {</span>
	</div>

	<div>
		<span style="color:#bbbbbb;">      </span><span style="color:#56b6c2;">const</span><span style="color:#bbbbbb;"> </span><span style="color:#61afef;">ticker</span><span style="color:#bbbbbb;"> </span><span style="color:#e06c75;">=</span><span style="color:#bbbbbb;"> </span><span style="color:#abb2bf;">tickers[col]</span><span style="color:#bbbbbb;">;</span>
	</div>

	<div>
		<span style="color:#bbbbbb;">      </span><span style="color:#e06c75;">try</span><span style="color:#bbbbbb;"> {</span>
	</div>

	<div>
		<span style="color:#bbbbbb;">        </span><span style="color:#56b6c2;">const</span><span style="color:#bbbbbb;"> </span><span style="color:#61afef;">startTime</span><span style="color:#bbbbbb;"> </span><span style="color:#e06c75;">=</span><span style="color:#bbbbbb;"> </span><span style="color:#61afef;">Date</span><span style="color:#abb2bf;">.</span><span style="color:#98c379;">now</span><span style="color:#abb2bf;">()</span><span style="color:#bbbbbb;">;</span>
	</div>
	 

	<div>
		<span style="color:#bbbbbb;">        </span><span style="color:#61afef;">ticker</span><span style="color:#abb2bf;">.</span><span style="color:#98c379;">add</span><span style="color:#abb2bf;">(</span><span style="color:#bbbbbb;">() </span><span style="color:#56b6c2;">=&gt;</span><span style="color:#bbbbbb;"> {</span>
	</div>

	<div>
		<span style="color:#bbbbbb;">          </span><span style="color:#56b6c2;">const</span><span style="color:#bbbbbb;"> </span><span style="color:#61afef;">elapsedTime</span><span style="color:#bbbbbb;"> </span><span style="color:#e06c75;">=</span><span style="color:#bbbbbb;"> </span><span style="color:#61afef;">Date</span><span style="color:#abb2bf;">.</span><span style="color:#98c379;">now</span><span style="color:#abb2bf;">()</span><span style="color:#bbbbbb;"> </span><span style="color:#e06c75;">-</span><span style="color:#bbbbbb;"> </span><span style="color:#abb2bf;">startTime</span><span style="color:#bbbbbb;">;</span>
	</div>

	<div>
		<span style="color:#bbbbbb;">          </span><span style="color:#56b6c2;">const</span><span style="color:#bbbbbb;"> </span><span style="color:#61afef;">progress</span><span style="color:#bbbbbb;"> </span><span style="color:#e06c75;">=</span><span style="color:#bbbbbb;"> </span><span style="color:#61afef;">Math</span><span style="color:#abb2bf;">.</span><span style="color:#98c379;">min</span><span style="color:#abb2bf;">(elapsedTime</span><span style="color:#bbbbbb;"> </span><span style="color:#e06c75;">/</span><span style="color:#bbbbbb;"> </span><span style="color:#abb2bf;">spinDuration,</span><span style="color:#bbbbbb;"> </span><span style="color:#c678dd;">1</span><span style="color:#abb2bf;">)</span><span style="color:#bbbbbb;">;</span>
	</div>
	 

	<div>
		<span style="color:#bbbbbb;">          </span><span style="color:#56b6c2;">const</span><span style="color:#bbbbbb;"> </span><span style="color:#61afef;">fruits</span><span style="color:#bbbbbb;"> </span><span style="color:#e06c75;">=</span><span style="color:#bbbbbb;"> </span><span style="color:#abb2bf;">[]</span><span style="color:#bbbbbb;">;</span>
	</div>

	<div>
		<span style="color:#bbbbbb;">          </span><span style="color:#e06c75;">for</span><span style="color:#bbbbbb;"> </span><span style="color:#abb2bf;">(</span><span style="color:#56b6c2;">let</span><span style="color:#bbbbbb;"> </span><span style="color:#abb2bf;">row</span><span style="color:#bbbbbb;"> </span><span style="color:#e06c75;">=</span><span style="color:#bbbbbb;"> </span><span style="color:#c678dd;">0</span><span style="color:#bbbbbb;">; </span><span style="color:#abb2bf;">row</span><span style="color:#bbbbbb;"> </span><span style="color:#e06c75;">&lt;</span><span style="color:#bbbbbb;"> </span><span style="color:#abb2bf;">rows</span><span style="color:#bbbbbb;">; </span><span style="color:#abb2bf;">row</span><span style="color:#e06c75;">++</span><span style="color:#abb2bf;">)</span><span style="color:#bbbbbb;"> {</span>
	</div>

	<div>
		<span style="color:#bbbbbb;">            </span><span style="color:#56b6c2;">const</span><span style="color:#bbbbbb;"> </span><span style="color:#61afef;">fruitIndex</span><span style="color:#bbbbbb;"> </span><span style="color:#e06c75;">=</span><span style="color:#bbbbbb;"> </span><span style="color:#abb2bf;">col</span><span style="color:#bbbbbb;"> </span><span style="color:#e06c75;">+</span><span style="color:#bbbbbb;"> </span><span style="color:#abb2bf;">row</span><span style="color:#bbbbbb;"> </span><span style="color:#e06c75;">*</span><span style="color:#bbbbbb;"> </span><span style="color:#abb2bf;">columns</span><span style="color:#bbbbbb;">;</span>
	</div>

	<div>
		<span style="color:#bbbbbb;">            </span><span style="color:#61afef;">fruits</span><span style="color:#abb2bf;">.</span><span style="color:#98c379;">push</span><span style="color:#abb2bf;">(</span><span style="color:#61afef;">fruitContainer</span><span style="color:#abb2bf;">.children[fruitIndex])</span><span style="color:#bbbbbb;">;</span>
	</div>

	<div>
		<span style="color:#bbbbbb;">          }</span>
	</div>
	 

	<div>
		<span style="color:#bbbbbb;">          </span><span style="color:#56b6c2;">const</span><span style="color:#bbbbbb;"> </span><span style="color:#61afef;">speed</span><span style="color:#bbbbbb;"> </span><span style="color:#e06c75;">=</span><span style="color:#bbbbbb;"> </span><span style="color:#c678dd;">20</span><span style="color:#bbbbbb;"> </span><span style="color:#e06c75;">*</span><span style="color:#bbbbbb;"> </span><span style="color:#abb2bf;">(</span><span style="color:#c678dd;">1</span><span style="color:#bbbbbb;"> </span><span style="color:#e06c75;">-</span><span style="color:#bbbbbb;"> </span><span style="color:#98c379;">smoothEaseOut</span><span style="color:#abb2bf;">(progress))</span><span style="color:#bbbbbb;">;</span>
	</div>
	 

	<div>
		<span style="color:#bbbbbb;">          </span><span style="color:#61afef;">fruits</span><span style="color:#abb2bf;">.</span><span style="color:#98c379;">forEach</span><span style="color:#abb2bf;">(</span><span style="color:#bbbbbb;">(</span><span style="color:#d19a66;">fruit</span><span style="color:#bbbbbb;">) </span><span style="color:#56b6c2;">=&gt;</span><span style="color:#bbbbbb;"> {</span>
	</div>

	<div>
		<span style="color:#bbbbbb;">            </span><span style="color:#61afef;">fruit</span><span style="color:#abb2bf;">.y</span><span style="color:#bbbbbb;"> </span><span style="color:#e06c75;">+=</span><span style="color:#bbbbbb;"> </span><span style="color:#abb2bf;">speed</span><span style="color:#bbbbbb;">;</span>
	</div>
	 

	<div>
		<span style="color:#bbbbbb;">            </span><span style="color:#e06c75;">if</span><span style="color:#bbbbbb;"> </span><span style="color:#abb2bf;">(</span><span style="color:#61afef;">fruit</span><span style="color:#abb2bf;">.y</span><span style="color:#bbbbbb;"> </span><span style="color:#e06c75;">&gt;</span><span style="color:#bbbbbb;"> </span><span style="color:#abb2bf;">rows</span><span style="color:#bbbbbb;"> </span><span style="color:#e06c75;">*</span><span style="color:#bbbbbb;"> </span><span style="color:#abb2bf;">fruitHeight)</span><span style="color:#bbbbbb;"> {</span>
	</div>

	<div>
		<span style="color:#bbbbbb;">              </span><span style="color:#61afef;">fruit</span><span style="color:#abb2bf;">.y</span><span style="color:#bbbbbb;"> </span><span style="color:#e06c75;">=</span><span style="color:#bbbbbb;"> </span><span style="color:#e06c75;">-</span><span style="color:#c678dd;">70</span><span style="color:#bbbbbb;">;</span>
	</div>

	<div>
		<span style="color:#bbbbbb;">              </span><span style="color:#56b6c2;">const</span><span style="color:#bbbbbb;"> </span><span style="color:#61afef;">randomFruitName</span><span style="color:#bbbbbb;"> </span><span style="color:#e06c75;">=</span>
	</div>

	<div>
		<span style="color:#bbbbbb;">                </span><span style="color:#abb2bf;">fruitNames[</span><span style="color:#61afef;">Math</span><span style="color:#abb2bf;">.</span><span style="color:#98c379;">floor</span><span style="color:#abb2bf;">(</span><span style="color:#61afef;">Math</span><span style="color:#abb2bf;">.</span><span style="color:#98c379;">random</span><span style="color:#abb2bf;">()</span><span style="color:#bbbbbb;"> </span><span style="color:#e06c75;">*</span><span style="color:#bbbbbb;"> </span><span style="color:#61afef;">fruitNames</span><span style="color:#abb2bf;">.</span><span style="color:#56b6c2;">length</span><span style="color:#abb2bf;">)]</span><span style="color:#bbbbbb;">;</span>
	</div>

	<div>
		<span style="color:#bbbbbb;">              </span><span style="color:#61afef;">fruit</span><span style="color:#abb2bf;">.texture</span><span style="color:#bbbbbb;"> </span><span style="color:#e06c75;">=</span><span style="color:#bbbbbb;"> </span><span style="color:#61afef;">Texture</span><span style="color:#abb2bf;">.</span><span style="color:#98c379;">from</span><span style="color:#abb2bf;">(randomFruitName)</span><span style="color:#bbbbbb;">;</span>
	</div>

	<div>
		<span style="color:#bbbbbb;">            }</span>
	</div>

	<div>
		<span style="color:#bbbbbb;">          }</span><span style="color:#abb2bf;">)</span><span style="color:#bbbbbb;">;</span>
	</div>
	 

	<div>
		<span style="color:#bbbbbb;">          </span><span style="color:#e06c75;">if</span><span style="color:#bbbbbb;"> </span><span style="color:#abb2bf;">(progress</span><span style="color:#bbbbbb;"> </span><span style="color:#e06c75;">&gt;=</span><span style="color:#bbbbbb;"> </span><span style="color:#c678dd;">1</span><span style="color:#abb2bf;">)</span><span style="color:#bbbbbb;"> {</span>
	</div>

	<div>
		<span style="color:#bbbbbb;">            </span><span style="color:#61afef;">ticker</span><span style="color:#abb2bf;">.</span><span style="color:#98c379;">stop</span><span style="color:#abb2bf;">()</span><span style="color:#bbbbbb;">;</span>
	</div>

	<div>
		<span style="color:#bbbbbb;">            </span><span style="color:#61afef;">ticker</span><span style="color:#abb2bf;">.</span><span style="color:#98c379;">destroy</span><span style="color:#abb2bf;">()</span><span style="color:#bbbbbb;">;</span>
	</div>

	<div>
		<span style="color:#bbbbbb;">            </span><span style="color:#abb2bf;">activeTickers</span><span style="color:#bbbbbb;"> </span><span style="color:#e06c75;">=</span><span style="color:#bbbbbb;"> </span><span style="color:#61afef;">activeTickers</span><span style="color:#abb2bf;">.</span><span style="color:#98c379;">filter</span><span style="color:#abb2bf;">(</span><span style="color:#bbbbbb;">(</span><span style="color:#d19a66;">t</span><span style="color:#bbbbbb;">) </span><span style="color:#56b6c2;">=&gt;</span><span style="color:#bbbbbb;"> </span><span style="color:#abb2bf;">t</span><span style="color:#bbbbbb;"> </span><span style="color:#e06c75;">!==</span><span style="color:#bbbbbb;"> </span><span style="color:#abb2bf;">ticker)</span><span style="color:#bbbbbb;">;</span>
	</div>
	 

	<div>
		<span style="color:#bbbbbb;">            </span><span style="color:#98c379;">finishAnimation</span><span style="color:#abb2bf;">(fruits,</span><span style="color:#bbbbbb;"> () </span><span style="color:#56b6c2;">=&gt;</span><span style="color:#bbbbbb;"> {</span>
	</div>

	<div>
		<span style="color:#bbbbbb;">              </span><span style="color:#abb2bf;">finishedColumns</span><span style="color:#e06c75;">++</span><span style="color:#bbbbbb;">;</span>
	</div>

	<div>
		<span style="color:#bbbbbb;">              </span><span style="color:#e06c75;">if</span><span style="color:#bbbbbb;"> </span><span style="color:#abb2bf;">(</span>
	</div>

	<div>
		<span style="color:#bbbbbb;">                </span><span style="color:#abb2bf;">finishedColumns</span><span style="color:#bbbbbb;"> </span><span style="color:#e06c75;">===</span><span style="color:#bbbbbb;"> </span><span style="color:#abb2bf;">columns</span><span style="color:#bbbbbb;"> </span><span style="color:#e06c75;">&amp;&amp;</span>
	</div>

	<div>
		<span style="color:#bbbbbb;">                </span><span style="color:#e06c75;">typeof</span><span style="color:#bbbbbb;"> </span><span style="color:#abb2bf;">onSpinEnd</span><span style="color:#bbbbbb;"> </span><span style="color:#e06c75;">===</span><span style="color:#bbbbbb;"> </span><span style="color:#e5c07b;">"function"</span>
	</div>

	<div>
		<span style="color:#bbbbbb;">              </span><span style="color:#abb2bf;">)</span><span style="color:#bbbbbb;"> {</span>
	</div>

	<div>
		<span style="color:#bbbbbb;">                </span><span style="color:#abb2bf;">isSpinning</span><span style="color:#bbbbbb;"> </span><span style="color:#e06c75;">=</span><span style="color:#bbbbbb;"> </span><span style="color:#56b6c2;">false</span><span style="color:#bbbbbb;">;</span>
	</div>
	 

	<div>
		<span style="color:#bbbbbb;">                </span><span style="color:#98c379;">setTimeout</span><span style="color:#abb2bf;">(</span><span style="color:#bbbbbb;">() </span><span style="color:#56b6c2;">=&gt;</span><span style="color:#bbbbbb;"> {}</span><span style="color:#abb2bf;">,</span><span style="color:#bbbbbb;"> </span><span style="color:#abb2bf;">spinCooldown)</span><span style="color:#bbbbbb;">;</span>
	</div>
	 

	<div>
		<span style="color:#bbbbbb;">                </span><span style="color:#98c379;">onSpinEnd</span><span style="color:#abb2bf;">()</span><span style="color:#bbbbbb;">;</span>
	</div>

	<div>
		<span style="color:#bbbbbb;">              }</span>
	</div>

	<div>
		<span style="color:#bbbbbb;">            }</span><span style="color:#abb2bf;">)</span><span style="color:#bbbbbb;">;</span>
	</div>

	<div>
		<span style="color:#bbbbbb;">          }</span>
	</div>

	<div>
		<span style="color:#bbbbbb;">        }</span><span style="color:#abb2bf;">)</span><span style="color:#bbbbbb;">;</span>
	</div>

	<div>
		<span style="color:#bbbbbb;">      } </span><span style="color:#e06c75;">catch</span><span style="color:#bbbbbb;"> </span><span style="color:#abb2bf;">(error)</span><span style="color:#bbbbbb;"> {} </span><span style="color:#676f7d;">// Possible problem</span>
	</div>

	<div>
		<span style="color:#bbbbbb;">    };</span>
	</div>
	 

	<div>
		<span style="color:#bbbbbb;">    </span><span style="color:#e06c75;">for</span><span style="color:#bbbbbb;"> </span><span style="color:#abb2bf;">(</span><span style="color:#56b6c2;">let</span><span style="color:#bbbbbb;"> </span><span style="color:#abb2bf;">col</span><span style="color:#bbbbbb;"> </span><span style="color:#e06c75;">=</span><span style="color:#bbbbbb;"> </span><span style="color:#c678dd;">0</span><span style="color:#bbbbbb;">; </span><span style="color:#abb2bf;">col</span><span style="color:#bbbbbb;"> </span><span style="color:#e06c75;">&lt;</span><span style="color:#bbbbbb;"> </span><span style="color:#abb2bf;">columns</span><span style="color:#bbbbbb;">; </span><span style="color:#abb2bf;">col</span><span style="color:#e06c75;">++</span><span style="color:#abb2bf;">)</span><span style="color:#bbbbbb;"> {</span>
	</div>

	<div>
		<span style="color:#bbbbbb;">      </span><span style="color:#98c379;">setTimeout</span><span style="color:#abb2bf;">(</span><span style="color:#bbbbbb;">() </span><span style="color:#56b6c2;">=&gt;</span><span style="color:#bbbbbb;"> </span><span style="color:#98c379;">stopColumn</span><span style="color:#abb2bf;">(col),</span><span style="color:#bbbbbb;"> </span><span style="color:#abb2bf;">col</span><span style="color:#bbbbbb;"> </span><span style="color:#e06c75;">*</span><span style="color:#bbbbbb;"> </span><span style="color:#abb2bf;">stopDelay)</span><span style="color:#bbbbbb;">;</span>
	</div>

	<div>
		<span style="color:#bbbbbb;">    }</span>
	</div>

	<div>
		<span style="color:#bbbbbb;">  }</span>
	</div>

	<div>
		<span style="color:#bbbbbb;">}</span>
	</div>
	 

	<div>
		<span style="color:#56b6c2;">function</span><span style="color:#bbbbbb;"> </span><span style="color:#98c379;">finishAnimation</span><span style="color:#bbbbbb;">(</span><span style="color:#d19a66;">fruits</span><span style="color:#abb2bf;">,</span><span style="color:#bbbbbb;"> </span><span style="color:#d19a66;">callback</span><span style="color:#bbbbbb;">) {</span>
	</div>

	<div>
		<span style="color:#bbbbbb;">  </span><span style="color:#56b6c2;">const</span><span style="color:#bbbbbb;"> </span><span style="color:#61afef;">bounceDuration</span><span style="color:#bbbbbb;"> </span><span style="color:#e06c75;">=</span><span style="color:#bbbbbb;"> </span><span style="color:#c678dd;">300</span><span style="color:#bbbbbb;">;</span>
	</div>

	<div>
		<span style="color:#bbbbbb;">  </span><span style="color:#56b6c2;">const</span><span style="color:#bbbbbb;"> </span><span style="color:#61afef;">startBounce</span><span style="color:#bbbbbb;"> </span><span style="color:#e06c75;">=</span><span style="color:#bbbbbb;"> </span><span style="color:#61afef;">Date</span><span style="color:#abb2bf;">.</span><span style="color:#98c379;">now</span><span style="color:#abb2bf;">()</span><span style="color:#bbbbbb;">;</span>
	</div>
	 

	<div>
		<span style="color:#bbbbbb;">  </span><span style="color:#56b6c2;">const</span><span style="color:#bbbbbb;"> </span><span style="color:#61afef;">bounceTicker</span><span style="color:#bbbbbb;"> </span><span style="color:#e06c75;">=</span><span style="color:#bbbbbb;"> </span><span style="color:#e06c75;">new</span><span style="color:#bbbbbb;"> </span><span style="color:#98c379;">Ticker</span><span style="color:#abb2bf;">()</span><span style="color:#bbbbbb;">;</span>
	</div>

	<div>
		<span style="color:#bbbbbb;">  </span><span style="color:#61afef;">activeTickers</span><span style="color:#abb2bf;">.</span><span style="color:#98c379;">push</span><span style="color:#abb2bf;">(bounceTicker)</span><span style="color:#bbbbbb;">;</span>
	</div>
	 

	<div>
		<span style="color:#bbbbbb;">  </span><span style="color:#61afef;">bounceTicker</span><span style="color:#abb2bf;">.</span><span style="color:#98c379;">add</span><span style="color:#abb2bf;">(</span><span style="color:#bbbbbb;">() </span><span style="color:#56b6c2;">=&gt;</span><span style="color:#bbbbbb;"> {</span>
	</div>

	<div>
		<span style="color:#bbbbbb;">    </span><span style="color:#56b6c2;">const</span><span style="color:#bbbbbb;"> </span><span style="color:#61afef;">elapsedTime</span><span style="color:#bbbbbb;"> </span><span style="color:#e06c75;">=</span><span style="color:#bbbbbb;"> </span><span style="color:#61afef;">Date</span><span style="color:#abb2bf;">.</span><span style="color:#98c379;">now</span><span style="color:#abb2bf;">()</span><span style="color:#bbbbbb;"> </span><span style="color:#e06c75;">-</span><span style="color:#bbbbbb;"> </span><span style="color:#abb2bf;">startBounce</span><span style="color:#bbbbbb;">;</span>
	</div>

	<div>
		<span style="color:#bbbbbb;">    </span><span style="color:#56b6c2;">const</span><span style="color:#bbbbbb;"> </span><span style="color:#61afef;">progress</span><span style="color:#bbbbbb;"> </span><span style="color:#e06c75;">=</span><span style="color:#bbbbbb;"> </span><span style="color:#61afef;">Math</span><span style="color:#abb2bf;">.</span><span style="color:#98c379;">min</span><span style="color:#abb2bf;">(elapsedTime</span><span style="color:#bbbbbb;"> </span><span style="color:#e06c75;">/</span><span style="color:#bbbbbb;"> </span><span style="color:#abb2bf;">bounceDuration,</span><span style="color:#bbbbbb;"> </span><span style="color:#c678dd;">1</span><span style="color:#abb2bf;">)</span><span style="color:#bbbbbb;">;</span>
	</div>
	 

	<div>
		<span style="color:#bbbbbb;">    </span><span style="color:#61afef;">fruits</span><span style="color:#abb2bf;">.</span><span style="color:#98c379;">forEach</span><span style="color:#abb2bf;">(</span><span style="color:#bbbbbb;">(</span><span style="color:#d19a66;">fruit</span><span style="color:#bbbbbb;">) </span><span style="color:#56b6c2;">=&gt;</span><span style="color:#bbbbbb;"> {</span>
	</div>

	<div>
		<span style="color:#bbbbbb;">      </span><span style="color:#56b6c2;">const</span><span style="color:#bbbbbb;"> </span><span style="color:#61afef;">bounce</span><span style="color:#bbbbbb;"> </span><span style="color:#e06c75;">=</span><span style="color:#bbbbbb;"> </span><span style="color:#61afef;">Math</span><span style="color:#abb2bf;">.</span><span style="color:#98c379;">sin</span><span style="color:#abb2bf;">(progress</span><span style="color:#bbbbbb;"> </span><span style="color:#e06c75;">*</span><span style="color:#bbbbbb;"> </span><span style="color:#61afef;">Math</span><span style="color:#abb2bf;">.</span><span style="color:#61afef;">PI</span><span style="color:#abb2bf;">)</span><span style="color:#bbbbbb;"> </span><span style="color:#e06c75;">*</span><span style="color:#bbbbbb;"> </span><span style="color:#c678dd;">50</span><span style="color:#bbbbbb;">;</span>
	</div>

	<div>
		<span style="color:#bbbbbb;">      </span><span style="color:#61afef;">fruit</span><span style="color:#abb2bf;">.y</span><span style="color:#bbbbbb;"> </span><span style="color:#e06c75;">=</span><span style="color:#bbbbbb;"> </span><span style="color:#61afef;">fruit</span><span style="color:#abb2bf;">.originalY</span><span style="color:#bbbbbb;"> </span><span style="color:#e06c75;">-</span><span style="color:#bbbbbb;"> </span><span style="color:#abb2bf;">bounce</span><span style="color:#bbbbbb;">;</span>
	</div>

	<div>
		<span style="color:#bbbbbb;">    }</span><span style="color:#abb2bf;">)</span><span style="color:#bbbbbb;">;</span>
	</div>
	 

	<div>
		<span style="color:#bbbbbb;">    </span><span style="color:#e06c75;">if</span><span style="color:#bbbbbb;"> </span><span style="color:#abb2bf;">(progress</span><span style="color:#bbbbbb;"> </span><span style="color:#e06c75;">&gt;=</span><span style="color:#bbbbbb;"> </span><span style="color:#c678dd;">1</span><span style="color:#abb2bf;">)</span><span style="color:#bbbbbb;"> {</span>
	</div>

	<div>
		<span style="color:#bbbbbb;">      </span><span style="color:#61afef;">bounceTicker</span><span style="color:#abb2bf;">.</span><span style="color:#98c379;">stop</span><span style="color:#abb2bf;">()</span><span style="color:#bbbbbb;">;</span>
	</div>

	<div>
		<span style="color:#bbbbbb;">      </span><span style="color:#61afef;">bounceTicker</span><span style="color:#abb2bf;">.</span><span style="color:#98c379;">destroy</span><span style="color:#abb2bf;">()</span><span style="color:#bbbbbb;">;</span>
	</div>

	<div>
		<span style="color:#bbbbbb;">      </span><span style="color:#abb2bf;">activeTickers</span><span style="color:#bbbbbb;"> </span><span style="color:#e06c75;">=</span><span style="color:#bbbbbb;"> </span><span style="color:#61afef;">activeTickers</span><span style="color:#abb2bf;">.</span><span style="color:#98c379;">filter</span><span style="color:#abb2bf;">(</span><span style="color:#bbbbbb;">(</span><span style="color:#d19a66;">t</span><span style="color:#bbbbbb;">) </span><span style="color:#56b6c2;">=&gt;</span><span style="color:#bbbbbb;"> </span><span style="color:#abb2bf;">t</span><span style="color:#bbbbbb;"> </span><span style="color:#e06c75;">!==</span><span style="color:#bbbbbb;"> </span><span style="color:#abb2bf;">bounceTicker)</span><span style="color:#bbbbbb;">;</span>
	</div>

	<div>
		<span style="color:#bbbbbb;">      </span><span style="color:#98c379;">callback</span><span style="color:#abb2bf;">()</span><span style="color:#bbbbbb;">;</span>
	</div>

	<div>
		<span style="color:#bbbbbb;">    }</span>
	</div>

	<div>
		<span style="color:#bbbbbb;">  }</span><span style="color:#abb2bf;">)</span><span style="color:#bbbbbb;">;</span>
	</div>

	<div>
		<span style="color:#bbbbbb;">  </span><span style="color:#61afef;">bounceTicker</span><span style="color:#abb2bf;">.</span><span style="color:#98c379;">start</span><span style="color:#abb2bf;">()</span><span style="color:#bbbbbb;">;</span>
	</div>

	<div>
		<span style="color:#bbbbbb;">}</span>
	</div>
	 

	<div>
		<span style="color:#e06c75;">export</span><span style="color:#bbbbbb;"> </span><span style="color:#56b6c2;">function</span><span style="color:#bbbbbb;"> </span><span style="color:#98c379;">stopSpin</span><span style="color:#bbbbbb;">(</span><span style="color:#d19a66;">reelContainer</span><span style="color:#bbbbbb;">) {</span>
	</div>

	<div>
		<span style="color:#bbbbbb;">  </span><span style="color:#98c379;">setTimeout</span><span style="color:#abb2bf;">(</span><span style="color:#bbbbbb;">() </span><span style="color:#56b6c2;">=&gt;</span><span style="color:#bbbbbb;"> {</span>
	</div>

	<div>
		<span style="color:#bbbbbb;">    </span><span style="color:#e06c75;">if</span><span style="color:#bbbbbb;"> </span><span style="color:#abb2bf;">(</span><span style="color:#e06c75;">!</span><span style="color:#abb2bf;">isSpinning)</span><span style="color:#bbbbbb;"> </span><span style="color:#e06c75;">return</span><span style="color:#bbbbbb;">;</span>
	</div>
	 

	<div>
		<span style="color:#bbbbbb;">    </span><span style="color:#abb2bf;">isSpinning</span><span style="color:#bbbbbb;"> </span><span style="color:#e06c75;">=</span><span style="color:#bbbbbb;"> </span><span style="color:#56b6c2;">false</span><span style="color:#bbbbbb;">;</span>
	</div>
	 

	<div>
		<span style="color:#bbbbbb;">    </span><span style="color:#61afef;">activeTickers</span><span style="color:#abb2bf;">.</span><span style="color:#98c379;">forEach</span><span style="color:#abb2bf;">(</span><span style="color:#bbbbbb;">(</span><span style="color:#d19a66;">ticker</span><span style="color:#bbbbbb;">) </span><span style="color:#56b6c2;">=&gt;</span><span style="color:#bbbbbb;"> {</span>
	</div>

	<div>
		<span style="color:#bbbbbb;">      </span><span style="color:#61afef;">ticker</span><span style="color:#abb2bf;">.</span><span style="color:#98c379;">stop</span><span style="color:#abb2bf;">()</span><span style="color:#bbbbbb;">;</span>
	</div>

	<div>
		<span style="color:#bbbbbb;">      </span><span style="color:#61afef;">ticker</span><span style="color:#abb2bf;">.</span><span style="color:#98c379;">destroy</span><span style="color:#abb2bf;">()</span><span style="color:#bbbbbb;">;</span>
	</div>

	<div>
		<span style="color:#bbbbbb;">    }</span><span style="color:#abb2bf;">)</span><span style="color:#bbbbbb;">;</span>
	</div>

	<div>
		<span style="color:#bbbbbb;">    </span><span style="color:#abb2bf;">activeTickers</span><span style="color:#bbbbbb;"> </span><span style="color:#e06c75;">=</span><span style="color:#bbbbbb;"> </span><span style="color:#abb2bf;">[]</span><span style="color:#bbbbbb;">;</span>
	</div>
	 

	<div>
		<span style="color:#bbbbbb;">    </span><span style="color:#56b6c2;">const</span><span style="color:#bbbbbb;"> </span><span style="color:#61afef;">fruitContainer</span><span style="color:#bbbbbb;"> </span><span style="color:#e06c75;">=</span><span style="color:#bbbbbb;"> </span><span style="color:#61afef;">reelContainer</span><span style="color:#abb2bf;">.</span><span style="color:#98c379;">getChildByName</span><span style="color:#abb2bf;">(</span><span style="color:#e5c07b;">"fruitContainer"</span><span style="color:#abb2bf;">)</span><span style="color:#bbbbbb;">;</span>
	</div>

	<div>
		<span style="color:#bbbbbb;">    </span><span style="color:#56b6c2;">const</span><span style="color:#bbbbbb;"> </span><span style="color:#61afef;">rows</span><span style="color:#bbbbbb;"> </span><span style="color:#e06c75;">=</span><span style="color:#bbbbbb;"> </span><span style="color:#c678dd;">4</span><span style="color:#bbbbbb;">;</span>
	</div>

	<div>
		<span style="color:#bbbbbb;">    </span><span style="color:#56b6c2;">const</span><span style="color:#bbbbbb;"> </span><span style="color:#61afef;">columns</span><span style="color:#bbbbbb;"> </span><span style="color:#e06c75;">=</span><span style="color:#bbbbbb;"> </span><span style="color:#61afef;">fruitContainer</span><span style="color:#abb2bf;">.</span><span style="color:#61afef;">children</span><span style="color:#abb2bf;">.</span><span style="color:#56b6c2;">length</span><span style="color:#bbbbbb;"> </span><span style="color:#e06c75;">/</span><span style="color:#bbbbbb;"> </span><span style="color:#abb2bf;">rows</span><span style="color:#bbbbbb;">;</span>
	</div>
	 

	<div>
		<span style="color:#bbbbbb;">    </span><span style="color:#56b6c2;">const</span><span style="color:#bbbbbb;"> </span><span style="color:#61afef;">bounceDuration</span><span style="color:#bbbbbb;"> </span><span style="color:#e06c75;">=</span><span style="color:#bbbbbb;"> </span><span style="color:#c678dd;">400</span><span style="color:#bbbbbb;">;</span>
	</div>

	<div>
		<span style="color:#bbbbbb;">    </span><span style="color:#56b6c2;">const</span><span style="color:#bbbbbb;"> </span><span style="color:#61afef;">startTime</span><span style="color:#bbbbbb;"> </span><span style="color:#e06c75;">=</span><span style="color:#bbbbbb;"> </span><span style="color:#61afef;">Date</span><span style="color:#abb2bf;">.</span><span style="color:#98c379;">now</span><span style="color:#abb2bf;">()</span><span style="color:#bbbbbb;">;</span>
	</div>
	 

	<div>
		<span style="color:#bbbbbb;">    </span><span style="color:#56b6c2;">const</span><span style="color:#bbbbbb;"> </span><span style="color:#61afef;">bounceTicker</span><span style="color:#bbbbbb;"> </span><span style="color:#e06c75;">=</span><span style="color:#bbbbbb;"> </span><span style="color:#e06c75;">new</span><span style="color:#bbbbbb;"> </span><span style="color:#98c379;">Ticker</span><span style="color:#abb2bf;">()</span><span style="color:#bbbbbb;">;</span>
	</div>

	<div>
		<span style="color:#bbbbbb;">    </span><span style="color:#61afef;">activeTickers</span><span style="color:#abb2bf;">.</span><span style="color:#98c379;">push</span><span style="color:#abb2bf;">(bounceTicker)</span><span style="color:#bbbbbb;">;</span>
	</div>
	 

	<div>
		<span style="color:#bbbbbb;">    </span><span style="color:#61afef;">bounceTicker</span><span style="color:#abb2bf;">.</span><span style="color:#98c379;">add</span><span style="color:#abb2bf;">(</span><span style="color:#bbbbbb;">() </span><span style="color:#56b6c2;">=&gt;</span><span style="color:#bbbbbb;"> {</span>
	</div>

	<div>
		<span style="color:#bbbbbb;">      </span><span style="color:#56b6c2;">const</span><span style="color:#bbbbbb;"> </span><span style="color:#61afef;">elapsedTime</span><span style="color:#bbbbbb;"> </span><span style="color:#e06c75;">=</span><span style="color:#bbbbbb;"> </span><span style="color:#61afef;">Date</span><span style="color:#abb2bf;">.</span><span style="color:#98c379;">now</span><span style="color:#abb2bf;">()</span><span style="color:#bbbbbb;"> </span><span style="color:#e06c75;">-</span><span style="color:#bbbbbb;"> </span><span style="color:#abb2bf;">startTime</span><span style="color:#bbbbbb;">;</span>
	</div>

	<div>
		<span style="color:#bbbbbb;">      </span><span style="color:#56b6c2;">const</span><span style="color:#bbbbbb;"> </span><span style="color:#61afef;">progress</span><span style="color:#bbbbbb;"> </span><span style="color:#e06c75;">=</span><span style="color:#bbbbbb;"> </span><span style="color:#61afef;">Math</span><span style="color:#abb2bf;">.</span><span style="color:#98c379;">min</span><span style="color:#abb2bf;">(elapsedTime</span><span style="color:#bbbbbb;"> </span><span style="color:#e06c75;">/</span><span style="color:#bbbbbb;"> </span><span style="color:#abb2bf;">bounceDuration,</span><span style="color:#bbbbbb;"> </span><span style="color:#c678dd;">1</span><span style="color:#abb2bf;">)</span><span style="color:#bbbbbb;">;</span>
	</div>
	 

	<div>
		<span style="color:#bbbbbb;">      </span><span style="color:#61afef;">fruitContainer</span><span style="color:#abb2bf;">.</span><span style="color:#61afef;">children</span><span style="color:#abb2bf;">.</span><span style="color:#98c379;">forEach</span><span style="color:#abb2bf;">(</span><span style="color:#bbbbbb;">(</span><span style="color:#d19a66;">fruit</span><span style="color:#abb2bf;">,</span><span style="color:#bbbbbb;"> </span><span style="color:#d19a66;">index</span><span style="color:#bbbbbb;">) </span><span style="color:#56b6c2;">=&gt;</span><span style="color:#bbbbbb;"> {</span>
	</div>

	<div>
		<span style="color:#bbbbbb;">        </span><span style="color:#56b6c2;">const</span><span style="color:#bbbbbb;"> </span><span style="color:#61afef;">col</span><span style="color:#bbbbbb;"> </span><span style="color:#e06c75;">=</span><span style="color:#bbbbbb;"> </span><span style="color:#abb2bf;">index</span><span style="color:#bbbbbb;"> </span><span style="color:#e06c75;">%</span><span style="color:#bbbbbb;"> </span><span style="color:#abb2bf;">columns</span><span style="color:#bbbbbb;">;</span>
	</div>

	<div>
		<span style="color:#bbbbbb;">        </span><span style="color:#56b6c2;">const</span><span style="color:#bbbbbb;"> </span><span style="color:#61afef;">row</span><span style="color:#bbbbbb;"> </span><span style="color:#e06c75;">=</span><span style="color:#bbbbbb;"> </span><span style="color:#61afef;">Math</span><span style="color:#abb2bf;">.</span><span style="color:#98c379;">floor</span><span style="color:#abb2bf;">(index</span><span style="color:#bbbbbb;"> </span><span style="color:#e06c75;">/</span><span style="color:#bbbbbb;"> </span><span style="color:#abb2bf;">columns)</span><span style="color:#bbbbbb;">;</span>
	</div>
	 

	<div>
		<span style="color:#bbbbbb;">        </span><span style="color:#56b6c2;">const</span><span style="color:#bbbbbb;"> </span><span style="color:#61afef;">randomY</span><span style="color:#bbbbbb;"> </span><span style="color:#e06c75;">=</span><span style="color:#bbbbbb;"> </span><span style="color:#abb2bf;">row</span><span style="color:#bbbbbb;"> </span><span style="color:#e06c75;">*</span><span style="color:#bbbbbb;"> </span><span style="color:#61afef;">fruit</span><span style="color:#abb2bf;">.height</span><span style="color:#bbbbbb;">;</span>
	</div>
	 

	<div>
		<span style="color:#bbbbbb;">        </span><span style="color:#e06c75;">if</span><span style="color:#bbbbbb;"> </span><span style="color:#abb2bf;">(</span><span style="color:#e06c75;">!</span><span style="color:#61afef;">fruit</span><span style="color:#abb2bf;">.originalY)</span><span style="color:#bbbbbb;"> {</span>
	</div>

	<div>
		<span style="color:#bbbbbb;">          </span><span style="color:#61afef;">fruit</span><span style="color:#abb2bf;">.originalY</span><span style="color:#bbbbbb;"> </span><span style="color:#e06c75;">=</span><span style="color:#bbbbbb;"> </span><span style="color:#61afef;">fruit</span><span style="color:#abb2bf;">.y</span><span style="color:#bbbbbb;">;</span>
	</div>

	<div>
		<span style="color:#bbbbbb;">        }</span>
	</div>
	 

	<div>
		<span style="color:#bbbbbb;">        </span><span style="color:#e06c75;">if</span><span style="color:#bbbbbb;"> </span><span style="color:#abb2bf;">(</span><span style="color:#e06c75;">!</span><span style="color:#61afef;">fruit</span><span style="color:#abb2bf;">.finalY)</span><span style="color:#bbbbbb;"> {</span>
	</div>

	<div>
		<span style="color:#bbbbbb;">          </span><span style="color:#61afef;">fruit</span><span style="color:#abb2bf;">.finalY</span><span style="color:#bbbbbb;"> </span><span style="color:#e06c75;">=</span><span style="color:#bbbbbb;"> </span><span style="color:#abb2bf;">randomY</span><span style="color:#bbbbbb;"> </span><span style="color:#e06c75;">+</span><span style="color:#bbbbbb;"> </span><span style="color:#61afef;">Math</span><span style="color:#abb2bf;">.</span><span style="color:#98c379;">random</span><span style="color:#abb2bf;">()</span><span style="color:#bbbbbb;"> </span><span style="color:#e06c75;">*</span><span style="color:#bbbbbb;"> </span><span style="color:#c678dd;">10</span><span style="color:#bbbbbb;"> </span><span style="color:#e06c75;">+</span><span style="color:#bbbbbb;"> </span><span style="color:#c678dd;">35</span><span style="color:#bbbbbb;">;</span>
	</div>

	<div>
		<span style="color:#bbbbbb;">        }</span>
	</div>
	 

	<div>
		<span style="color:#bbbbbb;">        </span><span style="color:#56b6c2;">const</span><span style="color:#bbbbbb;"> </span><span style="color:#61afef;">bounce</span><span style="color:#bbbbbb;"> </span><span style="color:#e06c75;">=</span><span style="color:#bbbbbb;"> </span><span style="color:#61afef;">Math</span><span style="color:#abb2bf;">.</span><span style="color:#98c379;">sin</span><span style="color:#abb2bf;">(progress</span><span style="color:#bbbbbb;"> </span><span style="color:#e06c75;">*</span><span style="color:#bbbbbb;"> </span><span style="color:#61afef;">Math</span><span style="color:#abb2bf;">.</span><span style="color:#61afef;">PI</span><span style="color:#abb2bf;">)</span><span style="color:#bbbbbb;"> </span><span style="color:#e06c75;">*</span><span style="color:#bbbbbb;"> </span><span style="color:#c678dd;">20</span><span style="color:#bbbbbb;">;</span>
	</div>
	 

	<div>
		<span style="color:#bbbbbb;">        </span><span style="color:#61afef;">fruit</span><span style="color:#abb2bf;">.y</span><span style="color:#bbbbbb;"> </span><span style="color:#e06c75;">=</span><span style="color:#bbbbbb;"> </span><span style="color:#61afef;">fruit</span><span style="color:#abb2bf;">.finalY</span><span style="color:#bbbbbb;"> </span><span style="color:#e06c75;">-</span><span style="color:#bbbbbb;"> </span><span style="color:#abb2bf;">bounce</span><span style="color:#bbbbbb;"> </span><span style="color:#e06c75;">*</span><span style="color:#bbbbbb;"> </span><span style="color:#98c379;">smoothEaseOut</span><span style="color:#abb2bf;">(</span><span style="color:#c678dd;">1</span><span style="color:#bbbbbb;"> </span><span style="color:#e06c75;">-</span><span style="color:#bbbbbb;"> </span><span style="color:#abb2bf;">progress)</span><span style="color:#bbbbbb;">;</span>
	</div>
	 

	<div>
		<span style="color:#bbbbbb;">        </span><span style="color:#e06c75;">if</span><span style="color:#bbbbbb;"> </span><span style="color:#abb2bf;">(progress</span><span style="color:#bbbbbb;"> </span><span style="color:#e06c75;">===</span><span style="color:#bbbbbb;"> </span><span style="color:#c678dd;">0</span><span style="color:#abb2bf;">)</span><span style="color:#bbbbbb;"> {</span>
	</div>

	<div>
		<span style="color:#bbbbbb;">          </span><span style="color:#56b6c2;">const</span><span style="color:#bbbbbb;"> </span><span style="color:#61afef;">randomFruitName</span><span style="color:#bbbbbb;"> </span><span style="color:#e06c75;">=</span><span style="color:#bbbbbb;"> </span><span style="color:#98c379;">getWeightedRandomFruit</span><span style="color:#abb2bf;">()</span><span style="color:#bbbbbb;">;</span>
	</div>

	<div>
		<span style="color:#bbbbbb;">          </span><span style="color:#61afef;">fruit</span><span style="color:#abb2bf;">.texture</span><span style="color:#bbbbbb;"> </span><span style="color:#e06c75;">=</span><span style="color:#bbbbbb;"> </span><span style="color:#61afef;">Texture</span><span style="color:#abb2bf;">.</span><span style="color:#98c379;">from</span><span style="color:#abb2bf;">(randomFruitName)</span><span style="color:#bbbbbb;">;</span>
	</div>

	<div>
		<span style="color:#bbbbbb;">        }</span>
	</div>

	<div>
		<span style="color:#bbbbbb;">      }</span><span style="color:#abb2bf;">)</span><span style="color:#bbbbbb;">;</span>
	</div>
	 

	<div>
		<span style="color:#bbbbbb;">      </span><span style="color:#e06c75;">if</span><span style="color:#bbbbbb;"> </span><span style="color:#abb2bf;">(progress</span><span style="color:#bbbbbb;"> </span><span style="color:#e06c75;">&gt;=</span><span style="color:#bbbbbb;"> </span><span style="color:#c678dd;">1</span><span style="color:#abb2bf;">)</span><span style="color:#bbbbbb;"> {</span>
	</div>

	<div>
		<span style="color:#bbbbbb;">        </span><span style="color:#61afef;">bounceTicker</span><span style="color:#abb2bf;">.</span><span style="color:#98c379;">stop</span><span style="color:#abb2bf;">()</span><span style="color:#bbbbbb;">;</span>
	</div>

	<div>
		<span style="color:#bbbbbb;">        </span><span style="color:#61afef;">bounceTicker</span><span style="color:#abb2bf;">.</span><span style="color:#98c379;">destroy</span><span style="color:#abb2bf;">()</span><span style="color:#bbbbbb;">;</span>
	</div>

	<div>
		<span style="color:#bbbbbb;">        </span><span style="color:#abb2bf;">activeTickers</span><span style="color:#bbbbbb;"> </span><span style="color:#e06c75;">=</span><span style="color:#bbbbbb;"> </span><span style="color:#61afef;">activeTickers</span><span style="color:#abb2bf;">.</span><span style="color:#98c379;">filter</span><span style="color:#abb2bf;">(</span><span style="color:#bbbbbb;">(</span><span style="color:#d19a66;">t</span><span style="color:#bbbbbb;">) </span><span style="color:#56b6c2;">=&gt;</span><span style="color:#bbbbbb;"> </span><span style="color:#abb2bf;">t</span><span style="color:#bbbbbb;"> </span><span style="color:#e06c75;">!==</span><span style="color:#bbbbbb;"> </span><span style="color:#abb2bf;">bounceTicker)</span><span style="color:#bbbbbb;">;</span>
	</div>
	 

	<div>
		<span style="color:#bbbbbb;">        </span><span style="color:#61afef;">fruitContainer</span><span style="color:#abb2bf;">.</span><span style="color:#61afef;">children</span><span style="color:#abb2bf;">.</span><span style="color:#98c379;">forEach</span><span style="color:#abb2bf;">(</span><span style="color:#bbbbbb;">(</span><span style="color:#d19a66;">fruit</span><span style="color:#bbbbbb;">) </span><span style="color:#56b6c2;">=&gt;</span><span style="color:#bbbbbb;"> {</span>
	</div>

	<div>
		<span style="color:#bbbbbb;">          </span><span style="color:#61afef;">fruit</span><span style="color:#abb2bf;">.y</span><span style="color:#bbbbbb;"> </span><span style="color:#e06c75;">=</span><span style="color:#bbbbbb;"> </span><span style="color:#61afef;">fruit</span><span style="color:#abb2bf;">.finalY</span><span style="color:#bbbbbb;">;</span>
	</div>

	<div>
		<span style="color:#bbbbbb;">          </span><span style="color:#e06c75;">delete</span><span style="color:#bbbbbb;"> </span><span style="color:#61afef;">fruit</span><span style="color:#abb2bf;">.finalY</span><span style="color:#bbbbbb;">;</span>
	</div>

	<div>
		<span style="color:#bbbbbb;">        }</span><span style="color:#abb2bf;">)</span><span style="color:#bbbbbb;">;</span>
	</div>

	<div>
		<span style="color:#bbbbbb;">      }</span>
	</div>

	<div>
		<span style="color:#bbbbbb;">    }</span><span style="color:#abb2bf;">)</span><span style="color:#bbbbbb;">;</span>
	</div>
	 

	<div>
		<span style="color:#bbbbbb;">    </span><span style="color:#61afef;">bounceTicker</span><span style="color:#abb2bf;">.</span><span style="color:#98c379;">start</span><span style="color:#abb2bf;">()</span><span style="color:#bbbbbb;">;</span>
	</div>

	<div>
		<span style="color:#bbbbbb;">  }</span><span style="color:#abb2bf;">,</span><span style="color:#bbbbbb;"> </span><span style="color:#c678dd;">500</span><span style="color:#abb2bf;">)</span><span style="color:#bbbbbb;">;</span>
	</div>

	<div>
		<span style="color:#bbbbbb;">}</span>
	</div>
	 

	<div>
		<span style="color:#56b6c2;">function</span><span style="color:#bbbbbb;"> </span><span style="color:#98c379;">smoothEaseOut</span><span style="color:#bbbbbb;">(</span><span style="color:#d19a66;">t</span><span style="color:#bbbbbb;">) {</span>
	</div>

	<div>
		<span style="color:#bbbbbb;">  </span><span style="color:#e06c75;">return</span><span style="color:#bbbbbb;"> </span><span style="color:#c678dd;">1</span><span style="color:#bbbbbb;"> </span><span style="color:#e06c75;">-</span><span style="color:#bbbbbb;"> </span><span style="color:#61afef;">Math</span><span style="color:#abb2bf;">.</span><span style="color:#98c379;">pow</span><span style="color:#abb2bf;">(</span><span style="color:#c678dd;">1</span><span style="color:#bbbbbb;"> </span><span style="color:#e06c75;">-</span><span style="color:#bbbbbb;"> </span><span style="color:#abb2bf;">t,</span><span style="color:#bbbbbb;"> </span><span style="color:#c678dd;">3</span><span style="color:#abb2bf;">)</span><span style="color:#bbbbbb;">;</span>
	</div>

	<div>
		<span style="color:#bbbbbb;">}</span>
	</div>
	 

	<div>
		<span style="color:#98c379;">getWeightedRandomFruit</span><span style="color:#abb2bf;">()</span><span style="color:#bbbbbb;">;</span>
	</div>
</div>
]]></description><guid isPermaLink="false">57072</guid><pubDate>Thu, 28 Nov 2024 10:54:10 +0000</pubDate></item><item><title>HTML Programming Error Challenge: Broken Image Link</title><link>https://www.html5gamedevs.com/topic/54577-html-programming-error-challenge-broken-image-link/</link><description><![CDATA[<p>
	I am  working on a web page that includes an image, but for some reason, the image is not displaying as expected. My HTML code includes an &lt;img&gt; tag with a specified src attribute, but the image is not rendering on the page.
</p>

<p>
	Here's a simplified version of the HTML code:
</p>

<pre class="ipsCode prettyprint lang-html prettyprinted"><span class="dec">&lt;!DOCTYPE html&gt;</span><span class="pln">
</span><span class="tag">&lt;html</span><span class="pln"> </span><span class="atn">lang</span><span class="pun">=</span><span class="atv">"en"</span><span class="tag">&gt;</span><span class="pln">
</span><span class="tag">&lt;head&gt;</span><span class="pln">
    </span><span class="tag">&lt;meta</span><span class="pln"> </span><span class="atn">charset</span><span class="pun">=</span><span class="atv">"UTF-8"</span><span class="tag">&gt;</span><span class="pln">
    </span><span class="tag">&lt;meta</span><span class="pln"> </span><span class="atn">name</span><span class="pun">=</span><span class="atv">"viewport"</span><span class="pln"> </span><span class="atn">content</span><span class="pun">=</span><span class="atv">"width=device-width, initial-scale=1.0"</span><span class="tag">&gt;</span><span class="pln">
    </span><span class="tag">&lt;title&gt;</span><span class="pln">Error Challenge</span><span class="tag">&lt;/title&gt;</span><span class="pln">
</span><span class="tag">&lt;/head&gt;</span><span class="pln">
</span><span class="tag">&lt;body&gt;</span><span class="pln">
    </span><span class="tag">&lt;h1&gt;</span><span class="pln">Web Page with Image</span><span class="tag">&lt;/h1&gt;</span><span class="pln">
    
    </span><span class="com">&lt;!-- The image tag with a broken link --&gt;</span><span class="pln">
    </span><span class="tag">&lt;img</span><span class="pln"> </span><span class="atn">src</span><span class="pun">=</span><span class="atv">"path/to/your/image.jpg"</span><span class="pln"> </span><span class="atn">alt</span><span class="pun">=</span><span class="atv">"Sample Image"</span><span class="tag">&gt;</span><span class="pln">

    </span><span class="tag">&lt;p&gt;</span><span class="pln">This is a paragraph below the image.</span><span class="tag">&lt;/p&gt;</span><span class="pln">
</span><span class="tag">&lt;/body&gt;</span><span class="pln">
</span><span class="tag">&lt;/html&gt;</span></pre>

<p>
	 
</p>

<p>
	Despite having a valid image path, the image is not showing up on the page. If someone could identify and fix the programming error causing the image not to display and provide the corrected HTML code, ensuring that the image renders correctly when the page is loaded. Thank you for addressing this HTML programming error .
</p>
]]></description><guid isPermaLink="false">54577</guid><pubDate>Tue, 19 Dec 2023 06:39:55 +0000</pubDate></item><item><title>Device rotation prompt library</title><link>https://www.html5gamedevs.com/topic/54287-device-rotation-prompt-library/</link><description><![CDATA[<p>
	Hi, maybe this little library will be useful for someone. It can be used in JS and also TS project with Phaser 2/3 or other frameworks, it shows "Rotate your device" prompt. It is highly customizable. Enjoy. PRs are welcome.
</p>

<p>
	<a href="https://github.com/Raiper34/device-rotation-prompt" rel="external nofollow">https://github.com/Raiper34/device-rotation-prompt</a>
</p>

<p>
	<img alt="demo.gif.8d39dc25ab426860e6b7b288d083d0f6.gif" class="ipsImage ipsImage_thumbnailed" data-fileid="26337" data-ratio="55.71" width="666" src="https://www.html5gamedevs.com/uploads/monthly_2023_12/demo.gif.8d39dc25ab426860e6b7b288d083d0f6.gif" />
</p>
]]></description><guid isPermaLink="false">54287</guid><pubDate>Fri, 01 Dec 2023 18:44:21 +0000</pubDate></item><item><title>String to Int Conversion Challenge in C++: Overcoming Code Issues</title><link>https://www.html5gamedevs.com/topic/54108-string-to-int-conversion-challenge-in-c-overcoming-code-issues/</link><description><![CDATA[<p>
	I'm currently tackling a coding problem in C++ that involves converting a string to an integer. Here's a simplified version of the code snippet:
</p>

<pre class="ipsCode prettyprint lang-c prettyprinted"><span class="com">#include</span><span class="pln"> </span><span class="str">&lt;iostream&gt;</span><span class="pln">
</span><span class="com">#include</span><span class="pln"> </span><span class="str">&lt;string&gt;</span><span class="pln">

</span><span class="typ">int</span><span class="pln"> main</span><span class="pun">()</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
    std</span><span class="pun">::</span><span class="pln">string numString </span><span class="pun">=</span><span class="pln"> </span><span class="str">"123"</span><span class="pun">;</span><span class="pln">
    
    </span><span class="com">// Attempting string to int conversion</span><span class="pln">
    </span><span class="typ">int</span><span class="pln"> convertedNumber </span><span class="pun">=</span><span class="pln"> std</span><span class="pun">::</span><span class="pln">stoi</span><span class="pun">(</span><span class="pln">numString</span><span class="pun">);</span><span class="pln">

    </span><span class="com">// Output the converted integer</span><span class="pln">
    std</span><span class="pun">::</span><span class="pln">cout </span><span class="pun">&lt;&lt;</span><span class="pln"> </span><span class="str">"Converted Integer: "</span><span class="pln"> </span><span class="pun">&lt;&lt;</span><span class="pln"> convertedNumber </span><span class="pun">&lt;&lt;</span><span class="pln"> std</span><span class="pun">::</span><span class="pln">endl</span><span class="pun">;</span><span class="pln">

    </span><span class="kwd">return</span><span class="pln"> </span><span class="lit">0</span><span class="pun">;</span><span class="pln">
</span><span class="pun">}</span></pre>

<p>
	<span style="background-color:rgb(255,255,255);font-size:15.008px;"><font color="#222222">Despite my efforts and also trying to search on multiple </font>sites like <a href="https://www.scaler.com/topics/string-to-int-in-cpp/" rel="external nofollow">Scaler</a></span><span style="background-color:#ffffff;color:#222222;font-size:15.008px;">, the code seems to encounter unexpected behavior during the conversion. What potential pitfalls might be causing this issue, and how can I modify the code to ensure a successful conversion from string to integer? Additionally, are there alternative approaches or best practices for handling such conversions in C++?</span>
</p>
]]></description><guid isPermaLink="false">54108</guid><pubDate>Wed, 22 Nov 2023 10:54:04 +0000</pubDate></item><item><title>How to Efficiently Sort a Large Array of Structs in C?</title><link>https://www.html5gamedevs.com/topic/53648-how-to-efficiently-sort-a-large-array-of-structs-in-c/</link><description><![CDATA[<p>
	I have a large array of structs, and I need to sort them based on a specific field within the struct. What's the most efficient way to do this in C? Should I use a custom sorting function or a standard library function like qsort? Any tips for optimizing the sorting process, especially when dealing with a large dataset?"
</p>

<p>
	This question addresses a common task in C programming and invites experienced developers to share their insights on optimizing sorting algorithms and techniques.
</p>
]]></description><guid isPermaLink="false">53648</guid><pubDate>Mon, 06 Nov 2023 07:37:36 +0000</pubDate></item><item><title>how to apply Math.min on a array who have a null value inside?</title><link>https://www.html5gamedevs.com/topic/43981-how-to-apply-mathmin-on-a-array-who-have-a-null-value-inside/</link><description><![CDATA[
<p>
	Hi, 
</p>

<p>
	I would like to know the lowest value on my array. So i make 
</p>

<pre>
<code>var arr=[0,1,2,3]

console.log(Math.min(...arr)) =&gt; 0 ok</code></pre>

<p>
	The problem is that my array contains this <span>:</span>
</p>

<pre>
<code>var arr=[null,0,2]
var min=Math.min(...arr)
arr.indexOf(min) =&gt; -1 because it take null as lowest value...how to eject the null value ?</code></pre>

<p>
	How do you eject the null value from the Math.min() ?
</p>
]]></description><guid isPermaLink="false">43981</guid><pubDate>Tue, 22 Oct 2019 10:28:41 +0000</pubDate></item><item><title>Handling CORS Issues in Fetch API</title><link>https://www.html5gamedevs.com/topic/52808-handling-cors-issues-in-fetch-api/</link><description><![CDATA[<p>
	I'm working on a web development project where I'm using the Fetch API to make cross-origin requests to a different domain. However, I'm running into CORS (Cross-Origin Resource Sharing) issues, and my requests are being blocked. I've tried a few solutions I found online, but I'm still having trouble. Here's a simplified version of my code:
</p>

<pre class="ipsCode prettyprint lang-javascript prettyprinted"><span class="pln">fetch</span><span class="pun">(</span><span class="str">'https://api.example.com/data'</span><span class="pun">)</span><span class="pln">
  </span><span class="pun">.</span><span class="pln">then</span><span class="pun">(</span><span class="pln">response </span><span class="pun">=&gt;</span><span class="pln"> response</span><span class="pun">.</span><span class="pln">json</span><span class="pun">())</span><span class="pln">
  </span><span class="pun">.</span><span class="pln">then</span><span class="pun">(</span><span class="pln">data </span><span class="pun">=&gt;</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
    console</span><span class="pun">.</span><span class="pln">log</span><span class="pun">(</span><span class="pln">data</span><span class="pun">);</span><span class="pln">
  </span><span class="pun">})</span><span class="pln">
  </span><span class="pun">.</span><span class="kwd">catch</span><span class="pun">(</span><span class="pln">error </span><span class="pun">=&gt;</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
    console</span><span class="pun">.</span><span class="pln">error</span><span class="pun">(</span><span class="str">'Error fetching data:'</span><span class="pun">,</span><span class="pln"> error</span><span class="pun">);</span><span class="pln">
  </span><span class="pun">});</span></pre>

<p>
	I've heard about using CORS headers on the server-side to allow cross-origin requests, but I'm not sure how to implement them. Can someone guide me on the proper way to handle CORS issues? How do I configure my server to allow requests from my domain? I'm using Express.js on the server side. Any help would be greatly appreciated!
</p>
]]></description><guid isPermaLink="false">52808</guid><pubDate>Wed, 16 Aug 2023 13:02:42 +0000</pubDate></item><item><title>Why is the following CSS code not centering my button horizontally within a div element?</title><link>https://www.html5gamedevs.com/topic/52830-why-is-the-following-css-code-not-centering-my-button-horizontally-within-a-div-element/</link><description><![CDATA[<p>
	Why is the following CSS code not centering my button horizontally within a div element? It appears off-center in my webpage:
</p>

<pre class="ipsCode prettyprint lang-html prettyprinted"><span class="dec">&lt;!DOCTYPE html&gt;</span><span class="pln">
</span><span class="tag">&lt;html&gt;</span><span class="pln">
</span><span class="tag">&lt;head&gt;</span><span class="pln">
</span><span class="tag">&lt;style&gt;</span><span class="pln">
  </span><span class="pun">.</span><span class="pln">container </span><span class="pun">{</span><span class="pln">
    </span><span class="kwd">width</span><span class="pun">:</span><span class="pln"> </span><span class="lit">100%</span><span class="pun">;</span><span class="pln">
    </span><span class="kwd">display</span><span class="pun">:</span><span class="pln"> flex</span><span class="pun">;</span><span class="pln">
    </span><span class="kwd">justify-content</span><span class="pun">:</span><span class="pln"> center</span><span class="pun">;</span><span class="pln">
    </span><span class="kwd">align-items</span><span class="pun">:</span><span class="pln"> center</span><span class="pun">;</span><span class="pln">
  </span><span class="pun">}</span><span class="pln">

  </span><span class="pun">.</span><span class="pln">btn </span><span class="pun">{</span><span class="pln">
    </span><span class="kwd">background-color</span><span class="pun">:</span><span class="pln"> </span><span class="lit">#3498db</span><span class="pun">;</span><span class="pln">
    </span><span class="kwd">color</span><span class="pun">:</span><span class="pln"> white</span><span class="pun">;</span><span class="pln">
    </span><span class="kwd">padding</span><span class="pun">:</span><span class="pln"> </span><span class="lit">10px</span><span class="pln"> </span><span class="lit">20px</span><span class="pun">;</span><span class="pln">
    </span><span class="kwd">border</span><span class="pun">:</span><span class="pln"> none</span><span class="pun">;</span><span class="pln">
    </span><span class="kwd">border-radius</span><span class="pun">:</span><span class="pln"> </span><span class="lit">5px</span><span class="pun">;</span><span class="pln">
  </span><span class="pun">}</span><span class="pln">
</span><span class="tag">&lt;/style&gt;</span><span class="pln">
</span><span class="tag">&lt;/head&gt;</span><span class="pln">
</span><span class="tag">&lt;body&gt;</span><span class="pln">

</span><span class="tag">&lt;div</span><span class="pln"> </span><span class="atn">class</span><span class="pun">=</span><span class="atv">"container"</span><span class="tag">&gt;</span><span class="pln">
  </span><span class="tag">&lt;button</span><span class="pln"> </span><span class="atn">class</span><span class="pun">=</span><span class="atv">"btn"</span><span class="tag">&gt;</span><span class="pln">Click Me</span><span class="tag">&lt;/button&gt;</span><span class="pln">
</span><span class="tag">&lt;/div&gt;</span><span class="pln">

</span><span class="tag">&lt;/body&gt;</span><span class="pln">
</span><span class="tag">&lt;/html&gt;</span></pre>

<p>
	The button seems to be slightly towards the left side within the container. What am I missing in the CSS that is preventing the button from being perfectly centered?
</p>
]]></description><guid isPermaLink="false">52830</guid><pubDate>Fri, 18 Aug 2023 11:07:50 +0000</pubDate></item></channel></rss>
