Vanilla JS Tutorials

JsIso Tutorials

RSS feed

03 - Applying shadows to isometric heightmap

Using the previous isometric tilemap we apply both horizontal and vertical shadows. The horizontal shadows can also be applied in a non isometric map. We have increased the tilemap size and added a secondary green rgba tile as the ground. The shadows are applied via the Tile Layer shadow flag.


    require([
      'jsiso/canvas/Control',
      'jsiso/tile/Field',
      'jsiso/img/load',
      'requirejs/domReady!'
    ],
    function(CanvasControl, TileField, imgLoad) {

      // RGBA of color to use
      var tileColor = "(158, 154, 255, 1)";
      var groundColor =  "(100, 154, 100, 1)";

      // Our Tile Map
      var tileMap = [
        [groundColor, groundColor, groundColor, groundColor, groundColor, groundColor, groundColor],
        [groundColor, tileColor, groundColor, tileColor, groundColor, tileColor, groundColor],
        [groundColor, tileColor, tileColor, tileColor, groundColor, tileColor, groundColor],
        [groundColor, tileColor, groundColor, tileColor, groundColor, tileColor, groundColor],
        [groundColor, groundColor, groundColor, groundColor, groundColor, groundColor, groundColor]
      ]

      // Our Height Map 
      var tileHeightMap = [
        [0,0,0,0,0,0,0],
        [0,1,0,1,0,1,0],
        [0,1,1,1,0,2,0],
        [0,4,0,4,0,3,0],
        [0,0,0,0,0,0,0]
      ]

      // X & Y drawing position, and tile span to draw 
      var xrange = 8;
      var yrange = 8;

      // use CanvasControl to create a simple canvas element
      // ID of Canvas,
      // width of Canvas,
      // Height of Canvas,
      // Optioanl: Any Style proprties we wish to apply,
      // Optional: The DOM ID location we wish to place the canvas in, otherwise it appends to Body
      var context = CanvasControl.create("canavas", 640, 640, {});

      var tileLayer = new TileField(context, CanvasControl().height, CanvasControl().width);

      var images = [
        {
          graphics: [
            "/img/game/ground/blank-block.png" // The images we want to load using imgLoader
          ]
        }
      ];


      imgLoad(images).then(function(imgResponse) { // imgLoad uses Promises, once the images have loaded we continue and use the returned imgResponse

        tileLayer.setup({
          layout: tileMap,
          isometric: true, // Flag used to layout grid in non isometric format
          tileHeight: 50,
          tileWidth: 100,
          heightMap: {
            map: tileHeightMap,
            heightTile: imgResponse[0].files["blank-block.png"], // imgResponse[0] contains the files[] we placed in the graphcis array for loading
            offset: 0
          },
          shadow: {
            offset: 50, // Offset is the same height as the stack tile
            verticalColor: '(5, 5, 30, 0.4)',
            horizontalColor: '(6, 5, 50, 0.5)'
          }
        });

        // Rotate our entire Map 
        tileLayer.rotate("left");

        // Set an offset so our map is on screen
        tileLayer.setOffset(200, 100)
        
        
        // Loop through our tiles and draw the map  
        for (i = 0; i < 0 + xrange; i++) {
          for (j = 0; j < 0 + yrange; j++) {
            tileLayer.draw(i,j);
          }
        }
      });
    });

Check out the View Source to see tutorial.

Tutorial Outcome (View & Run Source)

47 comments

  1. Thank a lot. You have done excellent job. I enjoyed your blog . Nice efforts.. candy crush

    — samuelddarden Wed, 29 May 2019

  2. I have been studying your entries all the way through my morning holiday, and I should admit the entire tutorials has been very enlightening and very well written. click here

    — Joshua A. Price Mon, 10 Jun 2019

  3. This site is very nice. I really like such a fantastic written tutorials. I will keep coming here again and again. Visit my link as well. click here

    — Joshua A. Price Mon, 10 Jun 2019

  4. Than you for sharing this! I like to look at coding as a metaphor for tree service. We'r epruning and trimming nature to get the results we want, and coding on computers so no different than pruning on a tree service. Anyways, thanks for sharing and I just wanted to take the time to say thank you from Winnipeg!

    — Christopher Macdonald Sat, 22 Jun 2019

  5. Reading this one will never get me bored cause of its nice information have. bathroom remodel

    — fredluis Wed, 10 Jul 2019

  6. Exact translation , great value and friendly people. What otherwise can I ask for? Strongly recommended! chinese translation

    — chinese translation Thu, 1 Aug 2019

  7. I was wondering if you could write a litte more on this topic. Thank you. seaport.seaworld

    — SAMS Thu, 1 Aug 2019

  8. These are great instructions thanks!!

    Vancouver accountability coaching Wed, 7 Aug 2019

  9. You have a nice procedure because it's easy to understand. Keep it up!
    roofing companies in Northern Kentucky

    — Jake Thu, 8 Aug 2019

  10. Well, this post is quite good! Thanks for updating my information about the subject. Pro Carpet Cleaning Hunter's Creek

    — Cassandra D. Everhart Mon, 19 Aug 2019

  11. Thanks for sharing your tutorial with us. Amazing!

    highrisk.solutions/ Wed, 28 Aug 2019

  12. Type naar gebruik of toepassing: bouwlift, goederenlift, huislift,
    liftinstallatie, personenlift, stoellift en de traplift

    Bron: Wikipedia. Een lift is een verticaal transportsysteem met
    vaste stopplaatsen, bedoeld voor het vervoer van personen en/of
    goederen. Het vervoer geschiedt door middel van een kooi waar
    de personen en/of goederen in geplaatst worden. De kooi bevindt
    zich meestal in een schacht en verplaatst zich langs vaste
    geleidingen omhoog of omlaag. Wanneer de kooi voor de stopplaats
    tot stilstand wordt gebracht, spreekt men van een stoplift.
    Door middel van vaste geleidingen wordt de lift in een verticale
    baan gehouden en omhoog en omlaag bewogen. Een contragewicht
    vermindert het effectieve gewicht van de lift. Voor het betreden
    en verlaten en - in het kader van goederentransport - het laden
    en lossen wordt de lift tot stilstand gebracht. Liftbouw soorten liftinstallaties Een uitzondering
    hierop zijn de paternosterliften die voor het betreden en
    verlaten niet tot stilstand worden gebracht. De liftinstallatie
    bestaat uit een machineruimte die zich meestal boven op de
    liftschacht en dus boven op het dak van een gebouw bevindt.

    Hierin is de liftmachine geplaatst en de schakelkast die de
    besturing van de lift regelt. Soms bevindt de machinekamer zich
    ook naast de schacht. Dit kan zowel boven als onder in de
    schacht zijn. Bij hydraulische liften maakt het niet uit waar
    de machineruimte zich bevindt. Een vinding van de laatste jaren
    is de machinekamerloze lift. Een ander belangrijk onderdeel van
    de lift is de liftschacht. Dit is de ruimte waarin de kooi en de
    leiders zich bevinden. Passagiers krijgen door middel van
    schachtdeuren toegang tot de liftkooi. Onder in de schacht
    bevindt zich de schachtput met de buffers voor de kooi.

    Aandrijving: Tractieliften, Hydraulische liften, Trommelliften,
    Spindelliften, tandheugelliften en Vacuümliften. Gerelateerd:
    Scheepslift, Skilift, Paternoster, Bouwlift, Elisha Otis,
    Trampe-fietslift, Bailonglift en traplift. Liftbouw bedrijf
    in Nederland dient te werken volgens de hoogste norm van
    veiligheid in Europa: de NEN-EN-81.

    — muneer ahmed Mon, 2 Sep 2019

  13. "Bron: Wikipedia. Een bungalowpark (ook vakantiepark)
    is een park met vakantiehuizen die verhuurd worden
    aan vakantiegangers en toeristen. De vakantiebungalows
    zijn niet bestemd voor permanente bewoning, maar worden
    in principe alleen tijdelijk verhuurd, doorgaans per
    week, midweek of weekend.

    Bungalowparken zijn meestal van de lente tot in de
    herfst geopend, maar zijn er steeds meer het gehele
    jaar door geopend. Een bungalowpark ligt vaak bij
    (of in) een recreatiegebied, natuurgebied ( bos,
    strand en zee ) of toeristisch attractieve omgeving.
    Toch kent een bungalowpark / pretpark zelf vaak ook
    de nodige basis voorzieningen. Vaak is er een
    zwembad, filmzaal, speeltuin en horecagelegenheid
    daarnaast zijn er meestal sportfaciliteiten als
    bowlingbanen en activiteitenprogramma's.

    Naast zeer luxe parken met alle voorzieningen in
    en om de bungalows zijn er ook zeer eenvoudige en
    rustige bungalowparken. Een eigenaar van een
    bungalowpark kan door het aanbod van voorzieningen
    op een bepaalde doelgroep van bezoekers richten.
    In Nederland en België behoort een groot deel van
    de parken toe aan een beperkt aantal bedrijven:
    Center Parcs (onderdeel van Pierre & Vacances Center
    Parcs Group), Sunparks (onderdeel van Pierre &
    Vacances Center Parcs Group), Landal GreenParks
    (Onderdeel van Platinum Equity), Roompot Vakanties,
    Recreatie Centra Nederland, Droomparken, Efteling
    (Efteling Bosrijk en Efteling Loonsche Land)

    Bovenstaande is slecht een beperkt overzicht van
    het totaal aan parken in België en Nederland.
    Overige europese landen hebben wij even buiten
    beschouwing gelaten maar zal online eenvoudig
    te vinden zijn wat elk land biedt.
    Populaire bungalowparken in Nederland
    Wat altijd belangrijk is dat de omgeving veel biedt
    aan de bezoeker zodat men niet alleen aangewezen
    is op de mogelijkheden en faciliteiten van het park.
    Kernwoorden: Natuur, Bos, Water, Strand en Zee etc.

    — muneer ahmed Tue, 3 Sep 2019

  14. "Bron: Wikipedia. Een vakblad is een tijdschrift dat gewijd
    is aan een bepaald vak, een beroep. Het eerste vakblad was
    voor mensen in de leerindustrie en verscheen eind 19e eeuw.
    Het ontstaan ervan had zijn wortels in de industriële
    revolutie. Steeds meer mensen kregen een gespecialiseerde
    taak in fabrieken en werkplaatsen. Deze werknemers en
    natuurlijk ook hun bazen hadden daardoor behoefte aan
    speciale scholing. Er ontstonden daardoor specialisten,
    die zich meestal verenigden in beroepsorganisaties en
    ook een eigen blad, een vakblad, oprichtten.

    Daar stond en staat informatie in over dat specifieke vak.
    Soms zeer gespecialiseerd, zoals nieuwe ontwikkelingen en
    informatie over en bepaald productieprocedé of product /
    gereedschap. Maar ook algemene informatie over bijvoorbeeld
    ontwikkelingen in het vak, nieuwe opleidingen, de toe-
    nemende of afnemende waarde van het vak, interviews en
    algemene opiniërende stukken over economie en eigen
    bedrijven. De branche vakbladen werden vroeger bijna
    allemaal vervaardigd door de beroepsverenigingen zelf,
    die daarvoor speciale redacteuren aanstelden.

    Dat waren meestal vakgenoten of bestuursleden, die ook
    vaardig waren met de pen en een beetje hadden doorgeleerd.
    In de tweede helft van de vorige (20ste) eeuw wierpen
    grote uitgevers of drukkers zich ook op de vakbladen.
    Ze namen de exploitatie en vervaardiging over van zo'n
    vereniging, of ze gingen zelf nieuwe vakbladen opzetten
    met professionele redacties. Dit laatste bleek vaak een
    lucratieve zaak, want er werd zo een platform gemaakt
    voor adverteerders. En uitgeverijen maken meestal bladen,
    ook vakbladen, om eraan te verdienen. Elke zichzelf
    respecterende (vak)branche heeft zo zijn eigen periodiek.

    Enkele titels: Groente & Fruit, De Molenaar, Bloemisterij,
    De Boerderij, De Architect, De Ingenieur, Cobouw, De
    Levensmiddelenkrant, Shops-Out-of-Home, Advocatenblad,
    Adformatie, Medisch Contact, Media Facts, Schoenvisie,
    Computable, Automatisering Gids, Management Team,
    Distrifood en Bizz. Grote uitgeverijen op dit gebied
    zijn Kluwer, Sdu Uitgevers, Elma Multimedia, Elsevier
    Business Press en VNU Media. Daarnaast zijn er
    vakbondsbladen, die een combinatie zijn van informatie
    over de uitoefening van het vak en over arbeidsvoorwaarden
    en wat die vakbond allemaal voor de leden doet. Maar
    deze kunnen niet tot de echte vakbladen worden gerekend.
    Nederland kent zo'n 3800 vakbladen en tegenwoordig ook
    veelal online digitaal via internet te downloaden. Vakblad branche / sector

    — muneer ahmed Tue, 3 Sep 2019

  15. I want you to thank for your time of this wonderful read!!! https://quickppsr.com.au
    I definitely enjoy every little bit of it and I have you bookmarked to check out new stuff of your blog a must read blog

    — muneer Tue, 3 Sep 2019

  16. Voor SEO in Utrecht kan je kiezen voor Invictus Online Marketing,
    Maar httpmarketing uit NH biedt landelijke seo dekking! Naast
    local seo diensten. Scoren jouw concurrenten in uw provincie
    ( Utrecht ) beter met hun website? Dan is het tijd om direct
    serieus aan de slag te gaan met zoekmachine optimalisatie (SEO).
    Ook conversie van uw website teksten worden herschreven zodat
    deze zoekmachine vriendelijk zijn maar ook een aantrekking
    hebben op de websitebezoeker! SEO Utrecht Stad

    — muneer ahmed Thu, 5 Sep 2019

  17. Thanks for sharing this routine. My friends at tinytowerstand.com/ office were trying to figure out how to move the shadow depending on the light position.

    — Karl Mon, 9 Sep 2019

  18. This looks easy but in reality, it isn't, right? I've tried one before.
    Daniel | pet odor removal columbia

    — Daniel Tue, 10 Sep 2019

  19. Thanks for this tutorial. I'd appreciate seeing a video of this as well so that it will make things a whole lot easier.
    Kevin | https://www.kitchensnclosets.com

    — Kevin Collins Tue, 10 Sep 2019

  20. Thanks for this tutorial. I'd appreciate seeing a video of this as well so that it will make things a whole lot easier.
    Kevin | shelf genie

    — Kevin Collins Tue, 10 Sep 2019

  21. UTVG is producent en importeur van nicotinehoudende elektronische
    sigaretten (""e-sigaretten"") van vijf verschillende merken (Flavor
    Vapes, Vape Master, Premium, Envy en Wanna Vape). De e-sigaret
    van UTVG bestaat uit een houder met de uiterlijke vorm van een
    sigaret, alsmede uit een batterij, een ampul, een verstuiver en
    een ledlampje. De ampul bestaat uit een oplossing van uit tabak
    geëxtraheerde nicotine en is in verschillende doses beschikbaar. Uitspraak elektronische sigaretten 2012

    — muneer Sat, 14 Sep 2019

  22. One present why galore businesses opt for postcards is because they are overmuch cheaper to be prefab and this can forbear a lot of expenses on the lengthened run.
    drivers knowledge test

    — muneera ahmed Sun, 15 Sep 2019

  23. This information is superb! Carry on with the fantastic informations!
    covetdiamonds
    jetpackcoins
    warrobotsgold
    golfclashgems/
    empiresgems

    — jake Wed, 18 Sep 2019

  24. I wanted to thank you for this great read!! I definitely enjoying every little bit of it I have you bookmarked to check out new stuff you post.

    소액결제현금화 Mon, 23 Sep 2019

  25. I'm just thinking if your tutorial can help me in my business. Absolutely Elite

    Absolutely Elite Wed, 25 Sep 2019

  26. I appreciate this tutorial. Thank you so much. Houston Screen Room

    Houston Screen Room Wed, 25 Sep 2019

  27. This is worth it to read. The Woodlands Windows

    The Woodlands Windows Wed, 25 Sep 2019

  28. Our academic pursuits, along with a range of extracurricular activities, help in honing a child's skills and ensuring that he/she grows to be a mature and responsible citizen.

    best school in greater noida

    — abc Thu, 26 Sep 2019

  29. I am always searching online for articles that can help me. There is obviously a lot to know about this. I think you made some good points in Features also. Keep working, great job! voyance-amour-eternel.com

    — muneer ahmed Sat, 28 Sep 2019

  30. Visit our site to find more about wedding photographer Northern Virginia. We offer engagement and proposal photography in Va. best site to buy bitcoin in canada

    — muneer Mon, 30 Sep 2019

  31. google

    — asd Wed, 2 Oct 2019

  32. Great article Lot's of information to Read...Great Man Keep Posting and update to People..Thanks

    how to start blogging to make money Tue, 8 Oct 2019

  33. Thanks for a wonderful share. Your article has proved your hard work and experience you have got in this field. Brilliant .i love it reading. Notenshop

    Rank Feed Thu, 10 Oct 2019

  34. Thank you for this tutorial. This will really help us a lot.

    see this Thu, 10 Oct 2019

  35. I found your this post while searching for some related information on blog search...Its a good post..keep posting and update the information.

    ביטוח אובדן כושר עבודה Thu, 10 Oct 2019

  36. There are so many awesome party ideas For younger kids, but as children mature there are far fewer alternatives for tweenies and teenage parties. Movies, computers, Ipads, Wii’s and Playstations all keep the children engaged, but we prefer activities that exercise their muscles and engage their brains!

    party for kids birthday turramurra Sun, 20 Oct 2019

  37. Positive site, where did u come up with the information on this posting? I'm pleased I discovered it though, ill be checking back soon to find out what additional posts you include.

    smm panel pakistan Tue, 29 Oct 2019

  38. I am always searching online for articles that can help me. There is obviously a lot to know about this. I think you made some good points in Features also. Keep working, great job! ACL Pros

    — muneer ahmed Tue, 29 Oct 2019

  39. So luck to come across your excellent blog. Your blog brings me a great deal of fun.. Good luck with the site. flooring store

    — muneer ahmed Sat, 2 Nov 2019

  40. Thanks for a wonderful share. Your article has proved your hard work and experience you have got in this field. Brilliant .i love it reading.

    sách Chuyển Pháp Luân Mon, 4 Nov 2019

  41. Regular visits listed here are the easiest method to appreciate your energy, which is why why I am going to the website everyday, searching for new, interesting info. Many, thank you Umzugskosten Berlin

    — muneer ahmed Tue, 5 Nov 2019

  42. 감사합니다. 소액결제 현금화는 좋은것 같아요

    소액결제 Tue, 5 Nov 2019

  43. Thanks For sharing this Superb article.I use this Article to show my assignment in college.it is useful For me Great Work.

    premiumessaywritings.com Mon, 11 Nov 2019

  44. Thanks for a wonderful share. Your article has proved your hard work and experience you have got in this field. Brilliant .i love it reading.

    phoenix az auto glass Wed, 13 Nov 2019

  45. Love to read it,Waiting For More new Update and I Already Read your Recent Post its Great Thanks.

    workplace mental health training Thu, 14 Nov 2019

  46. When I originally commented I clicked the -Notify me when new surveys are added- checkbox now every time a comment is added I receive four emails with the same comment.

    showbox apk download Thu, 14 Nov 2019

  47. thank you

    소액결제 Thu, 14 Nov 2019

Please insert the result of the arithmetical operation from the following image:

Please insert the result of the arithmetical operation from this image. =