neon vibrance

I love looking at retro pixel art, especially low-resolution graphics from old computer games. It’s not just a way for me to reminisce about my childhood and the fun I had playing computer games and drawing my own computer graphics, but it also gives me a chance to appreciate the aesthetics of the old games. …

functional un-fixedness is fun

I watched a programme on telly last night, The Creative Brain: How Insight Works where some researchers talked about creativity and the brain. One theme of the documentary was on the structural differences in people’s brains (and within the hemispheres of all brains.) What is known as intelligence and quick thinking comes about in white …

random links

One of my favourite tools at the moment is an online random paragraph generator. The enjoyment comes when I try and make sense of the paragraph, either putting it in some context, or applying it to something else to generate a new idea, or just using it to set my mind wandering in a new …

change is such hard work

In this version I removed lots of repeated calls to self.layer.contents=… in the animation code, by modifying and checking a frame number instead. When the number changes, the code sets the layer contents to the next image. Eventually I’ll move this code into an Animation class, which will be used by both the sprites and …

gcw zero

The GCW Zero console is an open-source handheld that runs Linux; it’s capable of emulating old PC and PlayStation games but developers can also create games for it. There are other handhelds out there, but the build quality looks really good on this, and the thought of being able to develop games for the device …

dance to the beat

In this version I added a fixed time step to the display link update callback. I noticed very small increases and decreases in the movement rate of the green meanies, so by fixing the update to a fixed time step, it appeared to help a bit. This is also a useful technique for ensuring repeatable …

feeling animated

Did some refactoring so that the CADisplayLink is created in the View Controller, calling to the GridView and SpriteGroup classes with the current frame update interval in an update method; and also added some animations for tiles and sprites. The transforms are created in response to user interaction, but all the animation updates, movement updates …

meanie greenies on two screenies

Removing jitter and getting a better frame rate by reducing the number of sprites on the map to 100 moving sprites, and by culling sprites when they are not visible – sprites are “culled” by removing them from their parent sprite group superview – and added back when they are visible.

meanie greenies

I’ve added some sprites and a sprite group. To update the scroll content offset a Core Animation translation is applied – this gives the impression of scrolling. A CADisplayLink installed in a background thread is used to update the position of each sprite in each frame interval, using linear interpolation.