Blog

Duck in a Truck Released!

Duck in a Truck is out on iOS! Follow the link below to check it out!

https://itunes.apple.com/us/app/duck-in-a-truck/id907135188?mt=8

Check out the gameplay trailer below!

Posted in animal apps ios, family-friendly apps ios, ipad family-friendly apps, iphone animal apps, rhyming animal apps

0 comments

Exporting vectors in Flash Pro

Drawings in flash are naturally vectors, but in Flash Pro CS6, there appears to be  no option to publish vectors.

To publish vectors, click file > export > export image. Then save the file with a .eps extension instead of .swf or another image type .eps is a vector file and allows for smooth scaling.

You can also change the extension in the publish settings menu.

Hope this helps,
James Grams

Posted in .eps files in flash, adobe flash vectors, Exporting vectors, flash pro cs6 vectors

0 comments

Site Update

I have been updating Game 103 a lot recently. Here’s a list of some of the imporvements that have been added.

1. Mobile Apps pages – Pages for the Game 103 iOS Apps
2. Video page – Right now this only has Game 103 videos, but I hope to add more soon.
3. Site search – Search Game 103 directly from the homepage
4. Full embed links to Game 103 games – The Game 103 Games pages have embed links on them, so you can put the full game on your site.
6. New Games on Homepage – The homepage now shows the most recently added games

Thanks for coming to Game 103,

James Grams

Posted in family-friendly apps ios, Game 103 mobile apps, videos

0 comments

Adding and Removing Many Similar Movie Clips at the Same Time

Adding lots of movie clips at once is useful in flash in you want to generate multiple objects such as scenery, enemies, etc. This can be done with a for loop.

First, set the ActionScript Linkage in your library for the movie clip that you want to add multiple times. For me, this linkage is “Raindrop.”

for(i = 0;i < 25;i++) { //add the movie clip to the object //object is what the movie clip will be added under - this can be Stage at the highest level object.addChildAt(new Raindrop(),i);
}

To delete the movie clips you can use this code:

for(i = 0;i < 25;i++) { //get the unnamed movie clip with getChildAt //this parameter is 0, not i, because as one instance is deleted, the child numbers bump down. var temp:DisplayObject = object.getChildAt(0); //set the movieClip to null temp = null; //remove the movie clip object.removeChildAt(0);
}

This is good for adding and deleting, but what if you want to have these movie clips do something? Well you can do that to by creating an .as class. My .as class is named "RaindropClass." I have the Raindrop movieclip as a parameter, along with some other information that will be utilized in the code that makes the raindrop fall.

To start out you'll want to make an array to keep track of your objects

var rainDrops = new Array();
for(i = 0;i < 25;i++) { drop = new Raindrop(); object.addChildAt(drop,i); raindrop = new RaindropClass(drop,startX,startY,fallSpeed); //add this raindrop to the raindrops array rainDrops.push(raindrop);
}

Then, to remove the raindrop objects you'll want to add this code in addition to the code above (the code above removes the movie clips, this removes the objects)

for each(var r:Raindrop in rainDrops) { r.remove(); r = null;
}

As for RaindropClass, the code could be as simple as this:

package { import flash.display.MovieClip; import flash.events.Event; public class RaindropClass { private var drop:MovieClip; private var startX:Number; private var startY:Number; private var fallSpeed:Number; public function Raindrop(drop:MovieClip,startX:Number,startY:Number,fallSpeed:Number) {   this.drop = drop;   this.startX = startX;   this.startY = startY;   //set the raindrops start x and y   this.drop.x = startX;   this.drop.y = startY;   this.fallSpeed = fallSpeed;   //begin the fall function with enter frame event listener   this.drop.addEventListener(Event.ENTER_FRAME,fall); } public function fall(event:Event) {   this.drop.y = this.drop.y + this.fallSpeed;   this.fallSpeed = this.fallSpeed + 0.5;   if(this.drop.y >= 1000) {    this.drop.y = this.startY;    this.fallSpeed = 0;   } }
}

James Grams

Posted in actionscript 3 add movie clips, actionscript 3 remove movie clips, Adding lots of movie clips, removing lots of movie clips

0 comments

Helpful links for publishing and developing Adobe Air apps for the iOS app store

Listed below are some links that have helped me test and eventually get my app on the iOS app store. I used Flash Pro cs6 on Windows to develop my app, and it turns out the only thing that a mac was needed for was submitting the actual app.

This page walks you through the process step by step.

http://help.adobe.com/en_US/flex/mobileapps/WS064a3073e805330f6c6abf312e7545f65e-8000.html#WSe4e4b720da9dedb5-27e02e9a12ee20e4a60-7fff

 As stated in the tutorial above, you need to use OpenSSL on a pc for a few things. If you get an error about a configuration or random file, these links can help you out.

Random state
http://stackoverflow.com/questions/12507277/how-to-fix-unable-to-write-random-state-in-openssl

Configuration
http://www.weatherimagery.com/blog/windows-cant-open-config-file-usrlocalsslopenssl-cnf/

In order to silence your iOS apps sounds when the user puts the phone on silent, check out this article:

http://blogs.adobe.com/airodynamics/2012/07/17/silencing-audio-on-ios-with-ambient-audio-playback-mode/

To silence playing music when your app opens, check out this native extension:

https://github.com/freshplanet/ANE-Background-Music

Milkman Games has some great Native Extensions for your app. Two that I used were the Game Center and iAds extensions. Tutorials on these can be found here.

Game Center
http://www.adobe.com/devnet/air/articles/gamecenter-ane-ios.html

iAds
http://www.adobe.com/devnet/air/articles/iad-ane-ios.html

Finally, remember to include good-looking icons, launch images, and make sure the display name displays well on an iOS device. (names that are too long will not show up). This article covers some things that have already been covered, but it takes you through the final submission.

http://www.adobe.com/devnet/flash/articles/app_store_guide.html

A note about the above article: You do NOT need to unzip the ipa file, you can simply upload it. To open application loader on a mac, open application loader, click xcode on the top menu bar, click open developer tool, and then click Application Loader. From there just upload your .ipa file! You may get a warning about image sizes, but this is not an issue.

(Here’s some more info on launch images – http://help.adobe.com/en_US/air/build/WS901d38e593cd1bac1e63e3d129907d2886-8000.html, also to add a launch image, all you need to do is go to File – Air for iOS settings – and add the launch image to the included files list!)

James Grams

Posted in Adobe air ios apps, adobe air native extensions for ios, how to make ios apps with adobe air, silence music in air ios app, steps for making ios apps with adobe air

0 comments

New iOS App in Production

Thanks for supporting Lamb in a Pram! Just wanted to let you know that the next app, Duck in a Truck is in production! I’ll let you know more as time goes on, but for now, here’s a picture!

Duck in a Truck

Also, if you have any suggestions for Lamb in a Pram, let me know so that I can consider them for future updates! Thanks!

James Grams

Posted in Uncategorized

0 comments

Lamb in a Pram Lite Release

Lamb in a Pram Lite has been released on iOS! It is much like Lamb in a Pram, but it has fewer items in the store and advertisements. However, it is free! Here’s the link:

https://itunes.apple.com/us/app/lamb-in-a-pram-lite/id898885941?mt=8

Thanks and Enjoy!

James Grams

Posted in animal apps ios, cute iphone apps, family-friendly apps ios, free iphone animal apps for kids, rhyming animal apps

0 comments

Common Libraries in Flash Pro

Many times when creating a game, you will want to use sound effects. Well, Flash (I know cs6 for certain) has common libraries with sound effects built in. In Flash, just click “Window”, then “Common Libraries,” then “Sounds.” Here you will find sound effects that you can use in your game!

Also, the common library contains buttons and input elements that can help you in your game!

Thanks for reading!

James Grams

Posted in built in buttons in adobe flash pro, common libraries in flash pro, sound effects for flash, sound effects for flash games

0 comments

Jumping in as3

Jumping is a mechanic present in many video games. However, it takes some knowledge in physics to understand how it works. When an object jumps, it begins with maximum velocity moving away from the ground. the velocity decreases until the the object stops (reaches 0 velocity) and begins to fall faster and faster (begins negatives velocity).

Let’s take a look at how to implement this jumping mechanic in as3:

//add the listener that allows the object we need to jump //(jumpingObject) to move on enter frame
//note: jumpingObject is a moving
jumpingObject.addEventListener(Event.ENTER_FRAME, jumpFunction);
//jumpSpeed variable that begins the velocity at its maximum value
var jumpSpeed:Number = 10;
//function for jumping
function jumpFunction(event:Event) {
 if(jumpSpeed >= -10) {
  //move the object up (then down) at a changing rate by decreasing the jumpSpeed
  jumpingObject.y = jumpingObject.y - jumpSpeed;
  jumpSpeed --;
 }
 else {
  //reset the jumpSpeed for the next jump
  jumpSpeed = 10;
 }
}

In other news, Lamb in a Pram Lite will be coming out soon. Thanks for reading!

Posted in flash games jumping, Jumping in flash pro, jumping physics in games, realistic jump in games

0 comments

Tip for never duplicating random values

Hi all, here’s a programming tip for when you want to make some random values but never want the random values to repeat themselves.

Say that you want two random values, but you want to make sure that they are different. Well in php, you can do that with a simple while loop. Check out the code below:

$firstNumber = rand(0,10);
$secondNumber = $firstNumber;
while($secondNumber == $firstNumber) { $secondNumber = rand(0,10);
}

With this code, the variable secondNumber is set to equal firstNumber, and a new random value will be generated for secondNumber until it is not the same as firstNumber. This can be useful if you want to make sure that all information you display is unique!

In other news, an update for Lamb in a Pram will be coming soon. This will include 8 new items, the ability to change pram color, and a few bug fixes.

Also, a limited lite version of Lamb in a Pram will be coming out for free!

Enjoy!

James Grams

Posted in different random values, don't duplicate random values, php random generation without duplication, random item generation

0 comments