Skip to main content

Make a HTML5 Canvas Colorful Tile Board Part II

Make a HTML5 Canvas Colorful Tile Board Part II


So last time we created a HTML 5 Canvas TileBoard in javascript. But it was not so flexible and we were not able to control it properly. So Lets develop this project it little more.
   
             

THE IDEA

2) User can Change the Background color of the Board

2) User can assign a single color to some specific tiles

3) User can clear the Canvas Completely (Just for fun).


THE IMPLEMENTATION

Lets Make the Background color Chooser First, we can implement it with HTml5 Color Chooser
So add this Code to your Html File.





Create a new function for drawing Backgorund




Call this Function in  Draw() Before Calling the TileMaker........





This was easy right we just drawn a rectangle to draw the backgorund


Next we are going to make another color chooser for Single color tiles.


then we are Going to make a range slider to control the influence on the color tiles and a an
 element ti show the numbere of tiles influenced. 


Now lets add functionality to it......we are going to make a function range slider which will pass some values to the tilemaker function.Hence we are going to make some changes to the Tile maker Function.....






Now in the end we are going to make that clear button.



Lets add functionality to it




The Full Source Code Is available below.....,


<!DOCTYPE html>
<html>
    <head>
        <title>TODO supply a title</title>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <script src="main.js" type="text/javascript"></script>
    </head>
    <body >
        <div>
   <Canvas width="600" height="400" id="Can" ></Canvas>
        </div>
   
   <div>
                <button onclick="Draw()">Draw</button>
                <button onclick="Clear()">Clear</button>
                <br>
                 <span id="CheckingRX"></span>
                 <br>
                 <input type="color" value="#ff0000" id="ColorChooserBG">
                 <Br>
                 <input type="range" id="RangeX" oninput="DrawRange(this.value)" max="50"/>
             
                 <br>
                 <input type="color" value="#ff0000" id="ColorChooser">
             
   </div>
        <script>
            var can = document.getElementById("Can");
            var ct = can.getContext("2d");

            var CordinateX = 0;
            var CordinateY = 0;
         
       
         
         
            function Draw()
        {   drawBG();
             // Remember To deactivate it   ct.clearRect(0,0,can.width,can.height);
            Tilemaker(ct,CordinateX,CordinateY,60,40);
        }
     
           function Clear()
           {
               ct.clearRect(0,0,can.width,can.height);
             
           }
             
       
           function DrawRange(rangex,Drawbg)
            {  drawBG();
         
              TileColor = document.getElementById("ColorChooser").value;
              document.getElementById("CheckingRX").innerHTML=" Columns Affected: "+rangex;
         
              Tilemaker(ct,CordinateX,CordinateY,60,40,TileColor,rangex);
           
           }
       
          function drawBG()
          {
            ct.fillStyle = document.getElementById("ColorChooserBG").value;
            ct.fillRect(0,0,Can.width,Can.height);
          }
     
        </script>
    </body>
</html>


And the Tile maker Function

 var Color = '#';
var Tilemaker = function(c,CordX,CordY,maxx,maxy,COLOR,rangex)
{
 
     

      var colorarr = ['1','2','3','4','5','6','7','8','9','0','a','b','c','d','e','f'];
   
     //For Row
    for (var i = 0; i < maxy; i++) {
    //For Drawing
        for (var j = 0; j < maxx; j++)
          {
         
           this.width = 10;
           this.height = 10;

         
    var random = Math.floor(Math.random()*16);
   //For Color Genration
    for(var k =0;k<6;k++)
    {
        var random = Math.floor(Math.random()*16);
        Color = Color+colorarr[random];
     
    }
    //For Color Chosing
     if(rangex !== undefined)
     {
           if(j > rangex-1)
            {
              c.fillStyle = Color;
       
            }
            else
            {
              c.fillStyle = COLOR;
            }
     }
     else
     {
          c.fillStyle = Color;
     }
   
 
     
           c.fillRect(CordX,CordY,this.width,this.height);  
           CordX = CordX+this.width+2;    
           Color ='#';
    }
       CordX = 0;
       CordY = CordY+this.height+2;
    }
 
};

Here is the end result.....................,





Please Comment your thoughts below...........also share this post if you like it.








Comments

Popular posts from this blog

Gdevelop: How to manually export to android or ios using Cordova

In this post we will see how to export your Gdevelop project to android or ios manually using cordova. Gdevelop provides a web service for export to android or ios. But it is a paid service it only provides 2 exports/day. By paying for subscription you support developement of Gdevelop but it you don't want to pay, Gdevelop provides you with an offline option. We will see how we can export Gdevelop project as a Cordova project and build it using a cordova by ourselves locally on our computer. Obviously for FREE!!. Lets get started. Prerequisite  I am assuming you have Android SDK installed on computer.If not then download it and install it first. I am not covering it here as it is a general thing and you can find plenty of tutorials and also that it will make this post unnecessarily longer. Also cordova requires node.js installed on your computer..Installing is as easy as downloading the installer and running. Link :  https://nodejs.org/en/ After installing the no...

Gdevelop 5 : How to Find Distance Between Two Objects

In this Post we will learn how to find distance between two objects in Gdevelop 5. Many times we are required to find distance between two objects Gdevelop provides inbuilt functionality for this purpose just let's get started. Creating A Project We will start by  creating an empty  project.  So click on create a new project and name it distance between two objects.  Let's quickly add a scene and a sprite. Let's add another sprite. I will also add text to display the distance between these two sprites.  Let's add these objects to the scene.Now let's head over to the event sheet and Add an event.The condition will be empty and action will to display the distance. So choose the distance choose->modify text and operator be set to equal and click on then expression button. We first have to convert expression to string choose conversion and then number to text. Click on the expression button and then search square root. Click on expression button again and this t...

Gdevelop Game Debugger and Profiler Tutorial

Gdevelop Game Debugger and Profiler In this post we will learn how to use Debugger. It helps us remove bugs from our game. A bug is basically a error or fault in our game that makes game work in in intended. A debugger helps remove bugs from our game. Debugger    Its a tool that is used to inspect the variables and objects of game at runtime. It gives us information about the objects and variables in the game. By using this information we can track the bugs in our game. It Debugger as it helps us remove the bugs from our game.  Using Debugger we can inspect  global variables, scene variables and variables of instances of  objects in the game. We can then analyse this information to find problems in our logic and game. How to Launch game with the debugger To use the debugger, we need to launch the game preview using the Debugger. To do this just go to the toolbar of a scene editor, click on the “Debug” icon and then choose “Prev...

[Inkscape] : How to import inkscape SVGs in Html file

[Inkscape To Web]: Make beautiful sites with SVGs In this tutorial we will make a SVG drawing in Inkscape and will use it in a webpage. The goal of this tutorial is to know how to make beautiful SVG Drawing for your website. Before starting you should have following things, Familiarity with SVGs/Inkscape and HTML  Inkscape Installed. How to Embbed Step 1: Open Inkscape. Now make a simple Shape. I am making a polygon,                                       [Click on the Image to Enlarge] Step 2: Now save it as a svg. The inkscape saves its files as svgs but it is not compatiable with html. It a lot Inkscape specific(useless) data. To save it as plain Svg. Click on File->Save as. Then from dropdown box in the dialog box. Choose the .PlainSvg.  [Click on the Im...

Blender 3D Graph Builder Addon Tutorial

Graph Builder Addon lets you generate 3D Bar Graphs from simple values. The bars can have simple animation.In this tutorial,I will be making a simple 3D graph in blender with this Addon. You can download the addon on Github and download the data that I am going to use  and end result from here , in case you want to follow along . Though you can use any data you want, just make sure data values are integer and each value is separated by a comma.  Just to give you an idea Graph Builder addon work like this.   Installation Just extract the file. Open Blender and go to user preferences and select “install from the file”. Then locate and choose the graph.py file. Tutorial: There are 4 panels in the addon. We will go to them one by one and see what are their usage. Step1:  Copy Data into the data values and set the factor. Here, you want to enter the values that will be used to draw the graph. Each value represents a bar on the grap...

How to make Make money with Inkscape

How to make Make money with Inkscape Inkscape is a free and open source but professional vector graphics editing program for Windows, Linux and Macintosh. A Free alternative to Adobe Illustrator and is used by a lot of enthusiasts, art students and artist all around the world. Ah.. you knew this already? Right!! Otherwise why would you read this post. So here are the ways to make money with inkscape. Selling Vectors This is an obvious one but not as easy as it seems, you see there is a lot of competition, you will  hundreds of sites if not thousands for selling vectors with tens of thousands of sellers on them also it's not that you can sell anything made with inkscape you need to follow some standards.For example here is an article which might be helpful, http://sellingvector.blogspot.com/p/how-to-start-selling-vectors.html?m=1 Tutorials If you want to know more about how to sell vectors created in inkscape then you should read ...

A Quick Look at Machine learning

A Quick Look at Machine learning Ever heard of ‘Artificial intelligence’, of course you did after all we all watch sci-fi movies. But if you ever tried to know more about AI then you might have heard about Machine learning. Also in past few years it's been a hot topic in computer science. So, what is machine learning??. Let's talk about this…, Computer are everywhere today, even in your pocket (your phone).They help us do a lot of thing but in reality these are just calculators with logic and control circuitry.Therefore we can program them to do different tasks.But there are scenarios where we cannot predict the situation and its nearly impossible to program the computer for that.For instance , CCTV Cameras are installed at many places and surveillance has become very easy as it can be done remotely but we need a human to process the video from the cameras as a computer cannot tell us if everything is ok or not.Now imagine if the computer can automatically dete...