Welcome to the Virtual Pet List Community

Wanting to join the rest of our members? Feel free to sign up today. It is completely free and one of the most positive communities on the web! Come and join the fun!

Join VPL Today!
  1. Virtual Pets

    Welcome to the Virtual Pet list forum!

    We're a Virtual Pets and Sim Games Community. We have a lot of Virtual Pet Sites Owners and Sim Games Owners that frequently visit, along with Artists, Writers and Programmers that come here looking for work and games to work for. Our Artists sell art in our Art Marketplace and Programmers are allowed to sell scripts in the Programming Marketplace. We've been opened since 2011 and since then we've grown and expanded quite nicely. What are you waiting for, why don't you join today?

    Our List of Virtual Pet Sites has a lot of Sim Games listed as well. You are more than welcome to check out our directory of sites and find a new game to play. If you're still curious about a game to play, you can check out some of our Game Reviews and Interviews with Coders, Artists, Writers and Game Owners of the industry.
  2. Have you read and commented on any of our Interviews or Reviews yet?
    Yes, it's true Teripets will not come back online
    Paladore - Boopets - Icepets
    Virtual Pet Directory
    join mycena cave!

Canvas Cycling in HTML5?

Discussion in 'Programming General' started by CometTheMicroraptor, Jun 30, 2012.

  1. CometTheMicroraptor
    Offline

    CometTheMicroraptor Approved Artist Approved Artist VPL Member

    Joined:
    Mar 22, 2011
    Messages:
    331
    Likes Received:
    38
    Trophy Points:
    38
    Location:
    Liaoning Province, China. est. 126 mya
    Okay, so I'm curious about something, and this is entirely for future reference, so don't get too excited just yet. I also apologize if I'm not articulating myself very well, since I know very little about how this works.

    Now, I happened upon this site a while ago now, and it remains to be something that absolutely stuns and baffles me every time I look at it.
    The artist says that he and another programmer used HTML5 to make these images, which are like traditional canvas cycling pixelled images seen in older games.

    This is the site in question: http://www.effectgames.com/demos/canvascycle/
    I highly recommend going through it to see what I'm trying to describe here. Basically, though, they are images (with pleasant accompanying sounds, I might add) that have certain pixels cycling in color to create animations (most of which you see is precipitation and moving water).

    Now, out of curiosity... is anybody on here able to do that? I've mentioned before that a friend of mine and myself want to open a site that is slowly turning into something exclusively pixel based and we'd love to have our maps be like this. However, we'd love to have different weather patterns and light cycles happening on them as well (not that these would cycle but I think you get what I mean), and I'd love to know how it works or if anybody can help me do this so that I don't have to make the animations myself, as that is incredibly complicated. It just seems incredibly fascinating.
    join misticpets, support vpl
  2. indysolo621
    Offline

    indysolo621 Member VPL Member

    Joined:
    Feb 27, 2011
    Messages:
    1,395
    Likes Received:
    59
    Trophy Points:
    48
    I'm trying to wrap my head around how they are doing this. I assumed that this was done simply with images, and just cycling through them on the canvas to create the animation. But the way you described it sounds a little bit more complicated. Do you have a link to them describing this method?
  3. CometTheMicroraptor
    Offline

    CometTheMicroraptor Approved Artist Approved Artist VPL Member

    Joined:
    Mar 22, 2011
    Messages:
    331
    Likes Received:
    38
    Trophy Points:
    38
    Location:
    Liaoning Province, China. est. 126 mya
  4. Dart
    Offline

    Dart JRPG Fanatic VPL Supporter VPL Member

    Joined:
    Jan 23, 2011
    Messages:
    1,019
    Likes Received:
    97
    Trophy Points:
    48
    A better way is array operations on imagedata objects. I'm working on an example.
  5. Dart
    Offline

    Dart JRPG Fanatic VPL Supporter VPL Member

    Joined:
    Jan 23, 2011
    Messages:
    1,019
    Likes Received:
    97
    Trophy Points:
    48
    The following example uses imagedata manipulation:

    http://www.brawnpower.com/img/test.html

    Programming this demo reinforced my preference of flash over HTML5 (CanvasPixelArray doesn't support the regular Array methods, meaning I had to use for loops to set each pixel value individually, adding extra code and time)

    On the bright side, it's still more flexible than using images (suppose, for example, that you wanted to slow down the animation. With this method, you can simply change a single number) :)
  6. Lewis
    Offline

    Lewis Moderator Moderator Programming Moderator Senior Programmer Pet Game Owner VPL Supporter

    Joined:
    Jan 21, 2011
    Messages:
    1,795
    Likes Received:
    127
    Trophy Points:
    63
    Location:
    UK
    It's done by using one image and changing the colours of the palette and blending them with the original colour. If you click "Show Options »" you can see the colours changing.

    How does that compare to this?
  7. Dart
    Offline

    Dart JRPG Fanatic VPL Supporter VPL Member

    Joined:
    Jan 23, 2011
    Messages:
    1,019
    Likes Received:
    97
    Trophy Points:
    48
    And how do you think they show / change the colors?

    Basically you use a loop to check each set of four values (the data of each pixel) to see if it matches the target color, and if it does you set the values to 255, 255, 255, 0.

    ------

    That being said, I will concede that they were actually using images for the animation.
    Last edited: Jul 1, 2012
  8. Hituro
    Offline

    Hituro VPL Supporter Pet Game Owner VPL Supporter VPL Member

    Joined:
    Feb 1, 2011
    Messages:
    1,386
    Likes Received:
    78
    Trophy Points:
    48
    On an 8-bit animation system you achieved these effects by directly manipulating the color palette used to draw an image. This provided very fast color cycling animations, where waves of color moved across an image. I used to have a screensaver that acted just like that. By changing only part of the palette you could make only part of the image animate.

    In the JS implementation you can't change the actual color palette, so the author makes an object representing the palette, with cycles defined for each color, and then updates the canvas image as the colors change. For speed he redraws only the individual pixels whose colors have changed. He doesn't ever test the pixel's current color, just changes the palette.
Similar Threads
Forum Title Date
Programming General jCanvas Jun 27, 2012
Programming General My First Canvas Game Jan 30, 2012
Programming General HTML5 canvas- Ready to commit yet? Oct 20, 2011

Share This Page