Week 7

Setup and prototype:

Vlad Ciutacu, Jeroen Nijkamp — Sonic Coin Run


  1. Hot lava; the user balanced on the beam is surrounded by hot lava, and when they touch the floor, the lava erupts or reacts
  2. Frozen Lake: the user is balancing over a frozen lake, and when they touch the lake  that part of the lake defrosts and the irce breaks
  3. Collapsing building: every time the user touches the floor another part of the build collapses
  4. Coin run: swing from one end to the other collecting as many coins as possible (ropes / balancing bench)
  5. Coin run 2 – balance from one stone to another collecting as many coins as possible


  • The user collects coins by going from one balancing stone to the next, collecting coins in between. This gives the user an incentive to do the exercise. Coins make sound when they are collected.
  • When the user get onto a new balancing stone, the coins positions randomize, adding replay-ability to the experience.
  • The coins are spinning, to give the interaction a dynamic feeling.


  • Coins
    • Spinning
    • Randomized locations

Wizard Rules

  • The wizard follows the user with the mouse, and when the mouse touched a coin in processing, then the coin is collected

int numFrames = 8;
int currentFrame = 0;
int score = 0;
int time = 60;
PImage[] images = new PImage[numFrames];
PImage background;

void setup(){
size(700, 600);

background = loadImage(“backgeround.jpg”);
background.resize(700, 600);
images[0] = loadImage(“coin1.gif”);
images[1] = loadImage(“coin2.gif”);
images[2] = loadImage(“coin3.gif”);
images[3] = loadImage(“coin4.gif”);
images[4] = loadImage(“coin5.gif”);
images[5] = loadImage(“coin6.gif”);
images[6] = loadImage(“coin7.gif”);
images[7] = loadImage(“coin8.gif”);

images[0].resize(64, 64);
images[1].resize(64, 64);
images[2].resize(64, 64);
images[3].resize(64, 64);
images[4].resize(64, 64);
images[5].resize(64, 64);
images[6].resize(64, 64);
images[7].resize(64, 64);


void draw(){
currentFrame = (currentFrame+1);
for (int x = 0; x < width; x+= images[0].width) {
image(images[(currentFrame) % numFrames], 150, 100);
image(images[(currentFrame) % numFrames], 150, 200);
image(images[(currentFrame) % numFrames], 150, 300);
image(images[(currentFrame) % numFrames], 150, 400);
image(images[(currentFrame) % numFrames], 150, 100);
image(images[(currentFrame) % numFrames], 150, 200);
image(images[(currentFrame) % numFrames], 150, 300);
image(images[(currentFrame) % numFrames], 150, 400);
image(images[(currentFrame) % numFrames], 250, 100);
image(images[(currentFrame) % numFrames], 250, 200);
image(images[(currentFrame) % numFrames], 250, 300);
image(images[(currentFrame) % numFrames], 250, 400);
image(images[(currentFrame) % numFrames], 350, 100);
image(images[(currentFrame) % numFrames], 350, 200);
image(images[(currentFrame) % numFrames], 350, 300);
image(images[(currentFrame) % numFrames], 350, 400);
image(images[(currentFrame) % numFrames], 450, 100);
image(images[(currentFrame) % numFrames], 450, 200);
image(images[(currentFrame) % numFrames], 450, 300);
image(images[(currentFrame) % numFrames], 450, 400);
fill(21, 67, 170);
ellipse(175, 425, 100, 100);
ellipse(175, 125, 100, 100);
ellipse(475, 425, 100, 100);
ellipse(475, 125, 100, 100);
ellipse(mouseX, mouseY, 100, 100);
fill(255, 255, 255);
text(“score:” + score, 25, 25);
if (keyPressed == true) {


void display(){


At first, I imagined it would be boring and relatively easy to do, but it proved out to be quite a challenge because at first, while coming up with concepts, I was thinking all the ideas we’re coming up with are pretty easy to set up and test, but when we got to actually deciding on an idea (the second coin run, sonic the hedgehog inspired), we realised that we overcomplicated our design past the functionality of the application (gifs in processing), so we had to come up with a workaround to that. Besides that, the coin collecting method didn’t really work, and as we ran out of time (and we wanted to test the application properly), we had to wizard of oz that too, increasing the score of a player with the press of a button (white the mouse followed the player’s position to hide currently picked up coins).

While coding we found out that a lot of things that seemed easy on paper turned out to be had to do in a small period of time and as we did not have the time available until the testing, we had to work around with what we already had. The finished prototype is pretty messy, as we did not use arrays for the coin placement, but it works, and that’s what mattered for the sake of this experiment.

Continued in Week 8.


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s