Search the Community

Showing results for tags 'android'.

More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


  • HTML5 Game Coding
    • News
    • Game Showcase
    • Coding and Game Design
  • Frameworks
    • Phaser
    • Pixi.js
    • Babylon.js
    • Panda.js
    • melonJS
    • Haxe JS
    • Kiwi.js
  • General
    • General Talk
  • Business
    • Collaborations (un-paid)
    • Jobs (Hiring and Freelance)
    • Services Offered

Found 290 results

  1. Hello everyone, I want to present you my game, "Flappy Wings". Gameplay preview on youtube: Play the game online now: Available on google play store: More games available on my website: This game is available for licensing.. If you are interested, please contact me via email! ; -) Best regards, Kyriakos
  2. Garo Android App

    Garo is an addictive free indie game for Android devices. Garo is Make with Phaser Framework and Build with Cordova for Android Devices. The Game is Released and Published for free over Google PlayStore -> or over Try to collect as many coins as possible in 3 minutes. They have to pay attention to different points in order not to lose the game. Fog, airplanes and the time are only a few points that await you as a challenge. You need skill for the game and strong nerves! Feedback?
  3. Hi everybody, To thank the users of this forum who helped me a lot, i put my template available to help new beginners or someone else. This template offers : correct scaling without stretching effect portrait mode (for landscape mode you must invert width and height) works with cocoon in webview+ and canvas+ mode (deviceready implemented) upload the file in and run it. simple example with prototype and inheritance use the states (i personnaly put all the states in a single file but you can quite put them in separate files, it's necessary to inform them in index.html eg: <script src="src/otherfile.js"></script> This template is based on : and how to adjust the scale is based on: Now my template for the beginners , index.html <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>example_test_scale</title> <link rel="shortcut icon" href="favicon.png" type="image/x-icon" /> <style> body { margin: auto; display: table; position: absolute; border:0px; top: 0px; left: 0px; padding: 0; margin: 0; background: #ffff00 } </style> <!--necessary for cocoon.js--> <script src="cordova.js"></script> <script src="src/phaser.js"></script> <script src="src/main.js"></script> </head> <body> </body> <script> document.addEventListener("deviceready", function() { setTimeout(function() { navigator.splashscreen.hide(); }, 5000, false); }); (function() { //start with a game with these resolution : 1280-1920 // personnaly i find it offers the best graphics for all devices but may slow some devices. // after put a safe zone //1280+200 > 1480 //1920 +350 > 2270 (350 is 200*1.5 > ratio from 1920/1280) var safe_zone_width=1480 var safe_zone_height=2270 var w = window.innerWidth ;//* pixelRatio, var h = window.innerHeight ;//* pixelRatio; var lw, lh; if ( h > w ) { lw = h; lh = w; } else { lw = w; lh = h; } var aspect_ratio_device = lw/lh; var aspect_ratio_safe_zone = safe_zone_height / safe_zone_width; var extra_height = 0, extra_width = 0; if (aspect_ratio_safe_zone < aspect_ratio_device) { // have to add game pixels horizontally in order to fill the device screen extra_height = aspect_ratio_device * safe_zone_width - safe_zone_height; } else { // have to add game pixels vertically extra_width = safe_zone_height / aspect_ratio_device - safe_zone_width; } game = new Phaser.Game( safe_zone_width + extra_width, safe_zone_height + extra_height, Phaser.CANVAS, 'game'); game.state.add('boot', boot); game.state.add('preloader', preloader); game.state.add('the_game', the_game); game.state.add('next_screen', next_screen); game.state.start('boot'); })(); </script> </html> my main.js //initialize variables here var test="1...2...3" var text="hello from sprite" //example of prototype => a simple sprite _sprite = function(game,posx,posy,picture){ this.picture=picture this.posx=posx this.posy=posy //call the class sprite from Phaser,game,this.posx,this.posy,this.picture) this.anchor.setTo(.5,.5) game.add.existing(this) } _sprite.prototype=Object.create(Phaser.Sprite.prototype) // say hello from sprite _sprite.prototype.say_hello=function(){ alert(text) } //use another prototype but with the previous parameter from _sprite, it's inheritance _super_sprite=function(game,posx,posy,picture,super_power){ //call the first prototype,game,posx,posy,picture) this.super_power=super_power this.scale.setTo(2,2) } _super_sprite.prototype=Object.create(_sprite.prototype) // add a new characteritic to this prototype _super_sprite.prototype.show_super_power=function(){ alert(this.super_power) } var boot = { preload: function() { }, create: function() { //to scale the game = Phaser.ScaleManager.SHOW_ALL; = true; = true; //red color to see the background of the game itself // you must change the background in the index.html to have the same color in the background game // > change the yellow in red it's only to see how the game is scalling = '#ff4000''preloader'); }, }; var preloader = { preload: function() { this.load.image('green_circle', 'img/green_circle.png'); this.load.image('white_circle', 'img/white_circle.png'); }, create: function() {'the_game'); //do not use arrow function like this var some_function=()=>{alert(test)} //it works on webview+ mode but not on canvas mode var some_function=function(){ alert(test) } some_function() } }; var the_game = { create: function(){ //to center an object in your game use this: this.green_circle = this.add.sprite(,,'green_circle') this.green_circle.anchor.setTo(.5,.5),function(){'next_screen')},this); //use prototype => sprite with white_circle this.white_circle=new _sprite(game,,1800,'white_circle'),function(){this.white_circle.say_hello()},this); //use another prototype with inheritance this.super_white_circle=new _super_sprite(game,,1500,'white_circle','i am superman'),function(){this.super_white_circle.show_super_power()},this);,function(){this.super_white_circle.say_hello()},this); }, }; //for the next screen => next state, the green_circle move to top and alpha is minder var next_screen = { create: function(){ console.log("next") this.green_circle = this.add.sprite(,300,'green_circle') this.green_circle.anchor.setTo(.5,.5) this.green_circle.alpha=.5 }, }; And finally you could download all the template below( To launch the app, go to template/www/index.html or upload the file in and run it. Enjoy ! ps : an interesting link to review the basis from javascript in 5 minutes >
  4. Phaser/Cordova/Webpack(ES6)

    I created a quickstart application that I hope would be useful to some of you. It is a Phaser 2.8.8 quick start application that incorporates Webpack (ES6), and Cordova. It supports iOS and Android out of the box, along with all default Phaser supported web browsers. The code is on Github and is licensed under Apache V2. Enjoy!
  5. With some hacks from these two links: I managed to open the keyboard on my android device. However the keystrokes i do are not sent to the Phaser game i.e my Phaser text field is not filled with data. <input id="hiddenInput" type="text" name="hiddenInput" style="position:absolute; left:-1px; top: -1px; width:1px; height:1px; opacity:0;"/> <script> $(document).ready( function() { $("#hiddenInput").focus(); }); </script> I am using Intel XDK and I upgraded my project to use cordova plugins. I installed ionic-plugin-keyboard but it behaves similar, i.e show/hide the keyboard but the input is not detected by Phaser. What do I miss to do or what do i do wrong? Any suggestions?
  6. WildCowboy

    Hello, game devs I created my first game WildCowboy with Phaser.js. This game is interpretation classic Sokoban. Game include 60 classic levels. I will be glad to hear your opinion and comments links: Web: Android: Google Play Regards.
  7. Hi guys, I just wanted to show you my latest Phaser app, Pop Pop Bubble Wrap (I know it's simple but I just wanted to get back on track, I haven't coded a Phaser app since the end of 2015). Pop Pop Bubble Wrap is an infinite bubble wrapping popping simulator designed to reduce one' stress and anxiety. You can find it here: iOS: Google Play: Website: #indiedev #indiegame #gamedev #roninmobile Let me know what you think! Regards!
  8. ERMO - An Ethereal Puzzle Game

    Hello, I'm developing a relaxing puzzle game, featured by a pleasant aesthetics. SCREENSHOTS You can read more about ERMO on the announcement post. DOWNLOAD Actually, ERMO is in beta status, and you can download it from Google Play | Windows Store | Apple Store. WEB VERSION You can play a mini web version on the Game Page. FOLLOW US Send us any commend and advice. Help us to make a better game. Facebook | Twitter | Web
  9. Hello everyone, Dot Snap return with new mission: The Battle Gameplay preview on youtube: Play the game online now: Available on google play store: More games available on my website: This game is available for licensing.. If you are interested, please contact me via email! ; -) Best regards, Kyriakos
  10. Deploying games to Android.

    Hi Guys, I'm new to html 5 game development but not new to programming, I picked phaser over other tools such as unity because I like to code more than fighting with the UI for making simple 2d games. When it came to deployment to Android, the performance was terrible. I wrapped it using plain Cordova(not cocoon or phone gap) I understand that the game will then use WebView provided by the phone, so that means the performance will vary across devices. On my note 4, the game worked fine but on my s3 it was terribly slow. I searched everywhere on the web on how to deploy html5 games to Android and people have been suggesting either phone gap(performance sucks on this) or which basically packages WebView+ or Canvas+ which are suppose to improve performance and is developed specifically for games but requires payment for apps more than 50mb. Does that mean we are stuck using if the games I develop are more than 50mb and I want them to perform reasonably well? All I wanted was to develop couple of small games and ship them on Android to test the waters and not have to pay for it. Unity is free until the 100k revenue mark and now I'm thinking of moving to Unity just because it makes deployment slightly better than deploying html5/js games. Also I'm not sure about'sfuture, if for some reason they decide to pull the plug on it, then that would be just terrible for developers who are using html5/js to develop games. In short - Are we stuck using if we want our games to perform well? Thanks and I apologize if it sounded like a rant, I'm just frustrated because of this whole deployment issue.
  11. Development of games for Android?

    Who knows examples of successful games for android and suitable phaser framework for this?
  12. Flappy Pong

    Hello everyone, I'm very glad that I can show you my game called Flappy Pong. Its a little mix up of flappy bird and classic pong. In simple words - you have to bounce the ball. Everything with beautiful changing colors! Get it on play store: Click Here PS. I'm aware that at the start there may be some light freeze - its due to the loading banner from admob(Still trying to figure it out, maybe someone have some solution?). Tell me your opinions
  13. Impossible Snake is a game I've been working on (see posts here and here) and it's now available on the Android playstore. Impossible Snake on Android Store: Impossible Snake on kongregate - Impossible Snake on newgrounds - It is a one-button game, meaning that you control the snake with only single taps on the screen. Every time you tap the snake will toggle between turning clockwise and counter-clockwise. Eat all apples to complete a level, the last three levels are almost impossible.. almost. There is also a VS multiplayer mode, where 2 players can compete on the same device. Player one taps on the top half and player two taps on the bottom half to control their snake. Eat the most apples to win.
  14. Hello everyone, I want to present you my game, "Dot Snap". Gameplay preview on youtube: Play the game online now: Available on google play store: More games available on my website: This game is available for licensing.. If you are interested, please contact me via email! ; -) Best regards, Kyriakos
  15. Admob phonegap

    I NEEED HELP PLEASE.. I just finished a phaser game and Im trying to implement admob to my app. Its been so hard nothing work idk what to do anymore, ive seen all the tutorials that ive found I seen this all of them I still cant get them to work please help help help. I'll attach my html please someone help me step by step i need to monetize my apps. thank you index.html
  16. Looking for feedback for new game available at the moment on 3 platforms: Android Facebook Done with Phaser, includes sharing integration, FB invites, Firebase integration (not working on Android - please take a look, LocalStorage, AdMob as ads and in-app purchases included also at the end wrapped with Cocoon.
  17. [Phaser] Truck Reign

    Hello, This game was made with Phaser framework, P2 Physics, Howler.js, localForage, phaser-ads plugin and wrapped with CocoonJS Google Play: Truck Reign YouTube: Truck Reign Any feedback would be greatly appreciated!
  18. Phaser Game Lag In Mobile

    Hi, I am new to phaser as well as game designing. I created my first game as hobby using phaser. it is working fine in desktop but lags very bad on mobile devices. Images I am using for game is very small. game is smaller that 2mb. I am attaching my main.js file hope someone can help me. thanks var buttetSpwanSpeed; var bulletSpeed; var enemySpwanSpeed; var enemySpeed; var golis; var enemies; var enemyLoop; var scoreText; var powers; var bulletSize; setStart(); //game phaser var game=new Phaser.Game(window.innerWidth, window.innerHeight, Phaser.CANVAS,"gamearea"); var BootState={ //loding accets preload: function(){ this.load.image('LodingScreen', 'assets/desimulga.png'); this.load.image('background', 'assets/blue.png'); }, create: function(){ game.state.start("LoadingState"); }, }; var LoadingState={ //loding acc preload: function(){,0,600,300,'background'); bg.height = game.height; bg.width = game.width;,,'LodingScreen'); LodingScreen.anchor.setTo(0.5); LodingScreen.scale.setTo(0.5,0.5); this.load.image('spaceship', 'assets/player.png'); this.load.image('goli', 'assets/bullet.png'); //load ememies this.load.image('enemy1', 'assets/enemies/enemy1.png'); this.load.image('enemy2', 'assets/enemies/enemy2.png'); this.load.image('enemy3', 'assets/enemies/enemy3.png'); this.load.image('enemy4', 'assets/enemies/enemy4.png'); this.load.image('enemy5', 'assets/enemies/enemy5.png'); this.load.spritesheet('power1', 'assets/power/bulletUp.png',34,33,4); this.load.image('restart', 'assets/restart.png'); this.load.spritesheet('blast', 'assets/explosion.png',400,400,8);'fire', 'assets/music/bullet.mp3');'killed', 'assets/music/killed.mp3'); //'bg_music', 'assets/music/background.mp3');'death_music', 'assets/music/death.mp3');'start_music', 'assets/music/start.mp3'); }, create: function(){ * 2, function(){ bg.kill(); LodingScreen.kill(); game.state.start("PreGameState"); },this); }, }; var PreGameState={ //loding accets create: function(){ game.scale.refresh();,0,600,300,'background'); bg.height = game.height; bg.width = game.width;,, 'TAP TO START' , { fontSize: '32px', fill: 'yellow' }); Startb.anchor.setTo(0.5); Startb.scale.setTo(0.5,0.5);,*0.4,'spaceship'); ship.scale.setTo(0.4); ship.anchor.setTo(0.5); game.physics.arcade.enable(ship); bg.inputEnabled=true; start_music ='start_music'); start_music.allowMultiple = true; start_music.addMarker('start_music', 0, 30);{ bg.inputEnabled=false; Startb.kill();"start_music"); // game.physics.arcade.moveToXY(ship,,*0.8, 300, 3000); // game.add.tween(ship).to( { y:*0.8 }, 3000, Phaser.Easing.Sinusoidal.InOut, true); var tween = game.add.tween(ship).to({ x: [,*0,,], y: [*0.4,*0.5,*0.6,*0.8], }, 2000,Phaser.Easing.Quadratic.Out, true).interpolation(function(v, k){ return Phaser.Math.bezierInterpolation(v, k); }); * 2, function() { bg.kill(); ship.kill(); game.state.start("GameState"); } ,this); }, this); }, }; var GameState={ //loding accets preload: function(){ }, create: function(){ //background,0,600,300,'background'); this.background.height = game.height; this.background.width = game.width; this.background.inputEnabled=true; this.background.input.enableDrag(true); this.background.input.startDrag = function(pointer) { pointer.shipStart = new Phaser.Point(GameState.ship.x, GameState.ship.y);, pointer); }; this.background.input.updateDrag = function(pointer) { GameState.ship.x = pointer.shipStart.x - pointer.positionDown.x + pointer.x; GameState.ship.y = pointer.shipStart.y - pointer.positionDown.y + pointer.y; GameState.background.x=0; GameState.background.y=0; }; //ship,*0.8,'spaceship'); this.ship.scale.setTo(0.4); this.ship.anchor.setTo(0.5); game.physics.arcade.enable(this.ship); // this.ship.inputEnabled=true; // this.ship.input.enableDrag(true); //score this.scoreText =, 16, 'Kills: 0', { fontSize: '32px', fill: '#fff' }); //background Music // music ='bg_music'); //'', 0, 1, true); //bullet sound bullet_sound ='fire'); bullet_sound.allowMultiple = true; bullet_sound.volume=0.5; bullet_sound.addMarker('fire', 0, 0.5); //Killed sound killed_sound ='killed'); killed_sound.allowMultiple = true; killed_sound.addMarker('killed', 0, 0.5); //death music death_music ='death_music'); death_music.allowMultiple = true; death_music.addMarker('death_music', 0, 10); //groups of bullets and enemies;;; //fire bullet loop*1/buttetSpwanSpeed, fireBullet, this); //, this); //create ememy loop*1/enemySpwanSpeed, createEnemy, this); //change ememy speed and enemy spwan speed loop*1.5, changeEnemySpeed, this); //give powerup*20, powerFun, this); }, update: function(){ //scrolling background this.background.tilePosition.y+=2; //keybord control if (game.input.keyboard.isDown(Phaser.Keyboard.UP)) { this.ship.y-=2; } if (game.input.keyboard.isDown(Phaser.Keyboard.DOWN)) { this.ship.y+=2; } if (game.input.keyboard.isDown(Phaser.Keyboard.RIGHT)) { this.ship.x+=2; } if (game.input.keyboard.isDown(Phaser.Keyboard.LEFT)) { this.ship.x-=2; } //dont go out if(this.ship.y<0+this.ship.height/2) { this.ship.y=0+this.ship.height/2; } if(this.ship.y> {; } if(this.ship.x<0+this.ship.width/2) { this.ship.x=0+this.ship.width/2; } if(this.ship.x> {; } //check for collisions game.physics.arcade.overlap(golis,enemies,b_e_collide,null,this); game.physics.arcade.overlap(this.ship,enemies,s_e_collide,null,this); game.physics.arcade.overlap(this.ship,powers,s_power1_collide,null,this); }, }; //setting start game conditions function setStart(){ buttetSpwanSpeed=2; bulletSpeed=2000; enemySpwanSpeed=1; enemySpeed=300; score=0; bulletSize=1.2 } //fire bullet function function fireBullet(){,this.ship.y-this.ship.height/2,'goli'); goli.anchor.setTo(0.5); goli.scale.setTo(bulletSize,1); goli.checkWorldBounds = true; goli.outOfBoundsKill = true; //adding to group golis.add(goli);; game.physics.arcade.enable(goli); goli.body.collisonWorldBounds=true; goli.body.velocity.y=-bulletSpeed;"fire"); } //create enemy function function createEnemy(){ enemyNo=game.rnd.integerInRange(1, 5); x1=game.rnd.integerInRange(0,; x2=game.rnd.integerInRange(0,;,10,'enemy'+enemyNo); enemy.anchor.setTo(0.5); enemy.scale.setTo(0.4); enemy.checkWorldBounds = true; enemies.add(enemy); enemy.outOfBoundsKill = true; game.physics.arcade.enable(enemy); enemy.body.collisonWorldBounds=true; enemy.angle=90;; //moving enemy angleRedian=game.physics.arcade.moveToXY(enemy, x2,, enemySpeed,0); angleDegree=angleRedian*57.2958; enemy.angle=90+angleDegree; } //runs when bullet collide to enemy function b_e_collide(goli,enemy){ //blast,enemy.y,'blast'); blast.anchor.setTo(0.5); blast.scale.setTo(0.5); var explosion=blast.animations.add('explosion');'explosion',30,false,true); //killing goli.kill(); enemy.kill(); //update scores if(<4) { score+=1;'killed'); } this.scoreText.text = 'Kills: ' + score; } //runs when ship collide to enemy function s_e_collide(ship,enemy){,enemy.y,'blast'); blast.anchor.setTo(0.5); blast.scale.setTo(0.5); var explosion=blast.animations.add('explosion');'explosion',10,false,true); ship.kill(); enemy.kill(); //music.stop(); this.scoreText.kill();"death_music");; * 2, function() { fianlScore =,, 'KILL: '+score, { fontSize: '32px', fill: 'yellow' }); fianlScore.anchor.setTo(0.5); gameOverText =, - fianlScore.height, 'GAME OVER', { fontSize: '32px', fill: 'red' }); gameOverText.anchor.setTo(0.5); //restart button, + fianlScore.height+10,'restart'); restart.anchor.setTo(0.5); restart.scale.setTo(0.05,0.05); restart.inputEnabled = true;, this);; }, this); } //runs when ship collide power1 function s_power1_collide(ship,power){ power.kill();;*1/10, fireBullet, this); * 10, function(){;*1/buttetSpwanSpeed, fireBullet, this); },this); } function changeEnemySpeed() { if(enemySpeed<=900) { enemySpeed+=5; } if(enemySpwanSpeed<=3) { enemySpwanSpeed+=0.025; } enemyLoop.delay=Phaser.Timer.SECOND*1/enemySpwanSpeed; } //send power up function powerFun() { x1=game.rnd.integerInRange(0,; x2=game.rnd.integerInRange(0,;,10,'power1'); power.anchor.setTo(0.5); var shine=power.animations.add('shine');'shine',5,true,true); power.checkWorldBounds = true; power.outOfBoundsKill = true; powers.add(power); game.physics.arcade.enable(power); power.body.collisonWorldBounds=true; game.physics.arcade.moveToXY(power, x2,, 400,0); powerDelay=game.rnd.integerInRange(20,35); powerUp.delay=Phaser.Timer.SECOND*powerDelay; } function restartGame(){ setStart();; game.state.start("PreGameState"); } game.state.add("GameState",GameState); game.state.add("BootState",BootState); game.state.add("LoadingState",LoadingState); game.state.add("PreGameState",PreGameState); game.state.start("BootState"); main.js
  19. [Phaser] Zombie Cannon Attack!

    Zombie Cannon Attack! is a zombie-themed endless runner, with cannons! Cannon-fire test zombies to infect the local populace and create your very own rampaging zombie horde. Gather data and use it to upgrade your zombies and build the perfect undead army. Available now on Play Store, download FREE here: Created using Phaser, and packaged for Android with Cordova. For further details see this blog post. I'd appreciate any comments or feedback, and a download and rating on the Play Store would be fantastic. I'm also happy to answer any questions anyone might have.
  20. Hi, found issue with normal map on some android devices. PG. It gets corrupted and looks like it is related to light, as changing the light type, changes artefact types. Device: Galaxy S5 mini OS: Android 4.4.2 Browser: Chrome 50.0.2661.89 Webgl: {vendor: "ARM", renderer: "Mali-400 MP", version: "WebGL 1.0 (OpenGL ES 2.0 Chromium)"}
  21. Hi, I have issue that elements created with createInstance sometimes don't show up on screen but exist in memory. I managed to make small PG to show issue. There 2 objects are initialised on click. On first click both instances appear but on next one only second instance appear, after many clicks all instances appear. Sometimes helps to change camera angle to see all meshes. Device: Galaxy S4 OS: Android 4.4.2 Browser: Chrome 59.0.3071.125 I have seen similar issue also on desktop devices, that instanced meshes disappear and appear back on camera rotation, but that I couldn't reproduce in PG yet.
  22. Video won't play on Chrome Android

    Hello, I'm doing a project with Phaser (v2.7.5) and I have some issues trying to play videos with Chrome on Android (58.0). I've tried with several different tablets, it does not seem the problem is related to the device. The same code is working on desktop (Chrome & Firefox) and on Firefox Android. This is basically my code : var game = new Phaser.Game(800, 600, Phaser.AUTO, '', { preload: preload, create: create}); function preload() {'videodemo', 'video/reward.mp4'); } function create() { var videodemo ='videodemo'); videodemo.addToWorld(game.height/2, game.width/2, 0.5, 0.5);; } I've tried the following workaround, which I found on another topic. The video plays on Android if I test the code with codepen but for some reason it doesn't if I upload it on my own server. Any ideas ? Thanks
  23. Fluffy Bounce - A unicorn tale

    Hi, your job in fluffy bounce is to save all sweets from falling down. To do so, just move the unicorn to the corresponding point, so that tha sweet can bounce back up. The game was made with HTML5 and compiled to android and ios using Ludei's CocoonIO. Download The game is available for iOS and Android so far. Download it for free below. iTunes: Google Play: HTML5: Promo Video
  24. Hi guys, We developed a game last year with phaser 2.3.0 and webgl, it worked fine on computer browsers and mobile devices. But since the last update of chrome for android (v53.0.2785.97), the screen is flickering until it becomes totally black, without any error or warning. The issue is present on mobile only, it worked on chrome for android v52, but not v53. We tried to upgrade to phaser 2.6.2, same issue on chrome for android v53. If we use Phaser.CANVAS instead of webgl, it works fine, but we prefer using webgl for performances. Does anyone encounter the same problem? Thanks for your help. Joe K.
  25. Sweet Candy Slide

    Hi! Yesterday my new game Sweet Candy Slide was released. It's made with HTML5 and compiled to Android and iOS using Ludei's CocoonIO. Your job is to collect the sweets coming down from the slide into the accurate basket. You can change the basket by tapping the screen. Any feedback is appreciated! Download Please find the download links below. It's free iTunes: Google Play: