Build 1.10 of the Fantastic Worlds iOS Starter Kit is officially here

Build 1.10 of the Fantastic Worlds iOS Starter Kit is official. By the way, the runner up build titles were 1.1.0 and simply 1.1, but what the heck, let’s call it what it is: the tenth update to this kit. The major feature this time around is… (drum roll)… Special Weapons for characters! Yup, your leader can now trigger a secondary weapon, perfect for weapons you want to limit or keep “special” in the game, like grenades. Most of the properties added have to do with this feature, so let’s first mention the ones that don’t.

I tweaked the code slightly, so that objects that go “idle” when the character leaves their radius of attack, will finish out the remainder of their MoveYAmount or MoveXAmount properties. This fixes an issue where the object could be stopped mid-air essentially. I’ve added an example object dictionary in the Common_Properties.plist called Fish_Jumping_Out_Water_Type_Movement that illustrates this.  But if you want to disable this functionality, use the following property.

  • FinishMovementXWhenOutOfRadius  –  Set to NO to disable completing the remainder of the MoveXAmount cycle. By default this will be YES.
  • FinishMovementYWhenOutOfRadius  –  Set to NO to disable completing the remainder of the MoveYAmount cycle. By default this will be YES.

 

Also before I forget again, I’ve added the following properties (which I should have added last build) to set the location of the health meter if you wanted to add it as part of the GUI.

  • HealthLocationPhone – the location in {xyformat of the health meter on the 3.5 inch phone (or 4 inch phone if the next property is omitted).
  • HealthLocationPhoneWide - the location in {xyformat of the health meter on the 4 inch phone.

For any Levels dictionary or GameSettings dictionary

  • AllowChangingToCharacterInUse - By default this is NO. Set this to YES to allow the same character dictionary to get equipped twice. So for example if the leader picks up a follower,  the leader or follower could then potentially use the same dictionary as each other, (by equipping the character like an inventory item) thus making two of the same character in the scene.  When this is NO, the code will just switch out the characters if the player tries to equip the same character dictionary twice.  This property can be set in the GameSettings dictionary or on a per-level basis in any of the Levels dictionaries. Most likely, you’ll want this left at NO.

 

Special Weapons Introduction

Special weapons function the same as primary weapons. Characters can start with them by default, equip them later from inventory, collect them, or receive them as rewards for breaking objects / enemies. They can also be removed at the beginning of a level like other weapons or inventory items. The item in the Weapons dictionary (that defines all the weapon data), does not designate itself in anyway that it is being used as a special weapon. So any of your previously-created primary weapons could be used as special weapons as well.

Special Weapons Properties For the Characters dictionaries

  • UseSpecialWeapon – the name of the special weapon in the Weapons dictionary. You only need to set this if you want the character to have a special weapon by default. You can also use collectibles in the level to equip the character with a special weapon.
  • AddSpecialWeaponToInventory – A YES or NO to add the character’s default weapon to the inventory (perhaps to re-equip later). The Collectibles in the Root dictionary should contain an item with a matching name as the weapon.
  • MinimumAmountOfSpecialWeaponToStartWith - This is an integer value to start the character with a minimum amount of the special weapon. For example, if the character dies with 5 grenades in stock, and this value is 10, the character will restart with 10 (not 15). This value has no affect on weapons that have the RequiresAmmo property set to NO. An alternative to using this property to equip a player early on with a special weapon is to leave a collectible somewhere near the starting point of the level. Like all inventory, special weapons can be cleared from inventory at the start of a level.
  • TimeBetweenSpecialAttacks – An optional decimal value to set a time to wait between special attacks. For example 2.5 would make the character wait 2.5 seconds before being able to use the weapon again.

Along with a new weapon means lots of animation possibilities.  You can set a specific animation for attacking while moving up, down, right, or left and attacking while resting in the up, down, left or right directions. Using all of those would imply a top-down environment. For a side scroller world, you most likely only need a single resting special attack animation, a right special attack animation and possibly an up (jumping) special attack and down (crouching) special attack.

  • UseRestingSpecialAttackFrames  – YES or NO, this is “catch all” resting-into-attack animation, which can be used in place of the up, down, left or right specific animations. This a good option for a side-scrolling world.
  • RestingSpecialAttackAtlasFile - The atlas file for the animation.
  • RestingSpecialAttackFrames - The array of frames for this animation.
  • RestingSpecialAttackFPS – Overrides the base frames per second.
  • UseUpSpecialAttackFrames  – YES or NO to use this animation set. This set would run when the character is moving upwards (or jumping up) and triggers a special attack.
  • UpSpecialAttackAtlasFile - The atlas file for the animation.
  • UpSpecialAttackFrames - The array of frames for this animation.
  • UpSpecialAttackFPS  – Overrides the base frames per second.
  • UseDownSpecialAttackFrames – YES or NO to use this animation set. This set would run when the character is moving down (or crouching down) and triggers a special attack.
  • DownSpecialAttackAtlasFile - The atlas file for the animation.
  • DownSpecialAttackFrames - The array of frames for this animation.
  • DownSpecialAttackFPS – Overrides the base frames per second.
  • UseRightSpecialAttackFrames  – YES or NO to use this animation set. This set would run when the character is moving right (and also left if that frame set is excluded) and triggers a special attack.
  • RightSpecialAttackAtlasFile - The atlas file for the animation.
  • RightSpecialAttackFrames - The array of frames for this animation.
  • RightSpecialAttackFPS – Overrides the base frames per second.
  • UseLeftSpecialAttackFrames – YES or NO to use this animation set. This set would run when the character is moving left and triggers a special attack. If this set is excluded the right set is used and flipped horizontally.
  • LeftSpecialAttackAtlasFile - The atlas file for the animation.
  • LeftSpecialAttackFrames - The array of frames for this animation.
  • LeftSpecialAttackFPS – Overrides the base frames per second.
  • UseDownRestingSpecialAttackFrames -YES or NO to use this animation set. This set would run when the character is resting in the down position and triggers a special attack (intended mostly for a top down world).
  • DownRestingSpecialAttackAtlasFile - The atlas file for the animation.
  • DownRestingSpecialAttackFrames- The array of frames for this animation.
  • DownRestingSpecialAttackFPS – Overrides the base frames per second.
  • UseRightRestingSpecialAttackFrames -YES or NO to use this animation set. This set would run when the character is resting in the right position and triggers a special attack (intended mostly for a top down world). This set also runs if the left set is excluded (but flipped horizontally).
  • RightRestingSpecialAttackAtlasFile - The atlas file for the animation.
  • RightRestingSpecialAttackFrames - The array of frames for this animation.
  • RightRestingSpecialAttackFPS – Overrides the base frames per second.
  • UseUpRestingSpecialAttackFrames -YES or NO to use this animation set. This set would run when the character is resting in the up position and triggers a special attack (intended mostly for a top down world).
  • UpRestingSpecialAttackAtlasFile - The atlas file for the animation.
  • UpRestingSpecialAttackFrames - The array of frames for this animation.
  • UpRestingSpecialAttackFPS – Overrides the base frames per second.
  • UseLeftRestingSpecialAttackFrames -YES or NO to use this animation set. This set would run when the character is resting in the left position and triggers a special attack (intended mostly for a top down world). If this set is excluded the right set is used and flipped horizontally.
  • LeftRestingSpecialAttackAtlasFile - The atlas file for the animation.
  • LeftRestingSpecialAttackFrames - The array of frames for this animation.
  • LeftRestingSpecialAttackFPS – Overrides the base frames per second.

 

Special Weapons Properties For Buttons

  • The DoesWhat property can now have a value of UseSpecialWeapon, which will make the character use their special weapon only. The character will not animate.
  • The DoesWhat property can now have a value of UseSpecialWeaponAndAttack, which will make the character use their special weapon and animate (using the animation sequences for special attacks).

 

Special Weapons Properties For Objects

  • EquipThisSpecialWeaponOnBreak  – The name of the special weapon to equip when the object has been broken / defeated. This is the name of the item in the Weapons dictionary.

 

Special Weapons Properties For CollectiblesForThisLevel

  • EquipThisSpecialWeaponOnCollect – The name of the special weapon to equip when the object has been collected. This is the name of the item in the Weapons dictionary.

 

Special Weapons Properties For Collectibles dictionary (items in the inventory menu)

  • EquipsSpecialWeaponNamed – The name of the item in the Weapons dictionary to equip.

 

Special Weapons Properties For the Level dictionaries or GameSettings dictionary

  • UseTwoFingerTapForSpecialAttack – Either the GameSettings dictionary or an individual Levels dictionary can set this value to YES or NO, and make tapping with two fingers trigger a special attack. Keep in mind, levels without any gestures work best when using the virtual joystick or button controls. So it is recommended you only set this value to YES on levels that are already using gestures as the primary means of control.  Also if this value is YES it will override the same gesture controls for switching leaders with two fingers.

 

The character in the side scroller level of the demo project for the kit has a special weapon (grenades) to toss around. Enjoy!

 

Calling All Requests for the Fantastic Worlds iOS Starter Kit

If anyone has a custom request for the Fantastic Worlds Kit, let me know. I’ll be back in high-performance programming mode soon (infused with quad espressos), so I’ll try to take care of as many things as I can at once.

 
Features on my to-do list, mostly involve adding secondary weapon options to the characters and objects/enemies. So for example, a character could fire a weapon with one button, and toss a grenade with another  (gosh can you tell I’m a 10 year old boy at heart).  And the same will be true for enemies. Which will make for some harder “boss” enemies to defeat.
 
I hope everyone is doing well out there with their projects. Speaking of, I got to look at one in-progress. Shane needed some help debugging something so he sent over his kit for me to poke around with. Its looking fantastic, and playing great. I’ll attach a couple screenshots (which he said was okay).  So anyway, we got some great work happening out there!
 
Keep me posted!
Fantastic Worlds iOS Starter Kit Preview Fantastic Worlds iOS Starter Kit Preview Fantastic Worlds iOS Starter Kit Preview

All the New Properties in Build 1.0.9 of my iOS Starter Kit

Sorry should have posted this last week. Might be old news for some of ya. But I did just post up a daily build for 1.1 that tweaks a small issue with objects going idle and restarting movements. Anyway, here goes the late-breaking news…

There’s tons of new features this build for the Fantastic Worlds iOS Starter Kit and plenty of reasons to add either an AnimationIdle orAnimationFire dictionary to your enemy objects. A lot of these new properties add features to an object in an idle state. For example, you might have a Little Shop of Horrors type plant, sleeping in an idle state until the character comes within a certain radius, then the plant “awakes” and begins approaching the main character (playing their normal Animation dictionary). That example would make use of the new ApproachCharacterWhenNotIdle property. Also new, you can restore the health of an idle object, make an idle object un-damageable, or strip away their physics body entirely.

And if that wasn’t enough fun to consider, you can now revive objects from the dead using theReviveFromDeathAfterHowLong property.  So after (seemingly) destroying an object, it will reawaken and begin functioning as before.

Our final new feature is… drum roll… Using the CreatesObjectNamed property your Objects can now generate other items in the Objects or CollectiblesForThisLevel dictionary. Yes folks, armies of objects can be created from a single object. For example, you could have a pipe (like that in the original non-Super version of Mario Bros) which churns out Turtles at a regular interval. The Turtles are themselves, their own object, so they can walk out and do whatever. You can even randomize the objects that get spawned using a CreatesObjectsNamed array instead of the CreatesObjectNamed.Locations for spawned objects can be randomized (and there’s a few other properties as well).

So here goes the full list…

 

For Objects

  • AnimationFire – An animation dictionary specifically for firing a weapon. If you include this dictionary, you do NOT need the AnimationFiresWeapon property set to YES, but you should include the UsesWeaponHowOften property with a time set to fire the weapon.
  • IdlingStopsMovement – A YES or NO value to stop the object’s X or Y movements when it goes idle.
  • ImmuneWhenIdle –  A YES or NO value to make the object immune from attack when idle.
  • HasPhysicsBodyWhenIdle  –  A YES or NO value to remove the physics body of the object when idle (this would also make it immune from attack since there’s no physics body).
  • RestoreHealthWhenIdle –  A YES or NO value to restore health to the object when idle.
  • BeginWithIdleAnimation – A YES or NO value to make the object start onscreen with their idle animation running.
  • ReviveFromDeathAfterHowLong  – A value in seconds to revive the object after being killed / broken. This completely restores the object. All health, the physics body, etc.
  • ApproachCharacterWhenNotIdle  A YES or NO value to approach the character when not idle.
  • ApproachSpeedX  – A decimal value for the rate of approach on the x axis.
  • ApproachSpeedY  – A decimal value for the rate of approach on the y axis.
  • CreatesObjectNamed  – The key name in the Objects or CollectiblesForThisLevel dictionary of the item that will get spawned from the object.
  • CreatesObjectsNamed –  This can be an array which will randomize the item to generate / spawn from the object. So for example,  you could have multiple types of Shredder wheels  get created.
  • CreatesObjectHowOften – A decimal value for how often the object creates more objects.
  • CreatesObjectWithOffset – The initial offset value of where the new objects will appear from. Their base starting point will be the object’s position that spawns them. So a value like {-100, 50}  would base the spawned objects at -100 points on the x axis from the spawn object and 50 points above the spawn object on the y axis.
  • CreatesObjectRandomizingXBy – You can also at some randomization to each axis with this integer value. So the offset value on the x will get a randomized value from this property. For example, if this value was 50, then the offset value on the x will get a variance anywhere from 0 to 50.
  • CreatesObjectRandomizingYBy – Like the x axis property above but on the y axis.
  • CreatesObjectsWhenOutOfView – A YES or NO value to create new objects even if this object is out of view.
  • CreatesObjectsWhenIdle – A YES or NO value to create objects even if this object is idle.

 

For Characters

  • DisableDownMovement – A YES or NO value to disable all movement controls for this direction.
  • DisableUpMovement – A YES or NO value to disable all movement controls for this direction.
  • DisableLeftMovement – A YES or NO value to disable all movement controls for this direction
  • DisableRightMovement – A YES or NO value to disable all movement controls for this direction.

 

For the Levels dictionary

  • ShowLeaderHealth – A YES or NO value to show the leader’s health as part of the main interface. If this is YES, you’ll probably want to disable showing the health in the Characters dictionary.
  • HealthLocation – the location of the health meter in {x, y} format.
  • HealthBarBackingImage- the health meter backing image (a file named healthMeterBackingAsGUIhas been added to the Images.xcassets catalog).
  • HealthBarMeterImage- the health meter (a file named healthMeterAsGUI has been added to the Images.xcassets catalog).

To update your kit from 1.0.8 (or any past version), make a back up copy of your version of the kit (as a precaution of course), and copy and overwrite all the class files in the folder labeled Changed_Files_for_Latest_Build.

New Dedicated Site for the Fantastic Worlds iOS Starter Kit and New Pricing Plan

What a weekend-into-Monday can do for ya. On Friday, I found an incredible WordPress theme by SwiftIdeas.net (Cardinal), and couldn’t resist using it to make a dedicated site for my iOS Starter Kit. The previous sales page was just getting too darn big for it’s britches, and let’s face it, the entire CartoonSmart site could use a polished ultra-responsive makeover. One thing at a time though. 

We’ve also got a more affordable plan for those Cash-Poor / Idea Rich customers. Details are in the Pricing tab. And if you’re already building an app with the kit, you can be featured on the site. Check out the “Demo App” tab for details. 

Alrighty, back to work on it! 1.0.9 promises to add some awesome new features. 

iOS Starter Kit Webpage

Ladders in Build 1.0.8 of the Fantastic Worlds iOS Starter Kit

The latest build of the Fantastic Worlds iOS Starter Kit now has Ladders! Yes, yes, I know, thats a staple of every good platformer, and it probably shouldn’t have taking me 8 builds (but really only like 8 weeks) to add those, but they are in there now. I can justify their delay though. Some one once told me, Master Level Designers do not relay on ladders to build good levels…they use moving platforms and ramps! Thats a quote from No One Ever.

Anyway, here’s a video…

Those ladders are already included in the demo level you get with Build 1.0.8 which has still has one more feature before its official release, but buyers of the kit can download it now if they want to.

Enjoy.

 

Checking in with Build 1.0.8 of the Fantastic Worlds iOS Starter Kit

Hey howdy ho, kit-builderinos. Just wanted to check in with some news for those of you following my Fantastic Worlds iOS Starter Kit. As some of you past buyers are well aware, your download links give you access to the latest “official” build of the kit, and also the next build as it’s progressing, which is 1.0.8. Today I added (and uploaded) a lot of new animation possibilities for characters in the kit. Previously if you were building a top-down character (as opposed to side-scroller character) you had just one set of animated frames for a resting animation. If the character stopped and “rested”, that animation could run. You can now include 4 sets of different resting animations for directions facing up, down, left or right. And with that in mind, you can also include attack animation sequences from the character’s resting state in each of those four directions as well. Previously you could include attack animation sequences for up, down, left and right, the difference now is that these new attack sequences give you the option to differentiate between an attack that was initiated from a still / resting position and those that were initiated while the character is moving / running / walking etc.  All of these new animation sequences are optional. 

Also new, you can offset the world’s center. Previously, you had two options: you could center the world on the character, which would put the character dead-center of the screen, or you could disable centering, and the world would stay in a static location. With the new offset option, you could displace where the world is around the character. 

We’ve also got new movements for Objects / Enemies, a Space Invaders type increment, that will jut the object forward an amount for x number of steps, then optionally move the character down as well. 

Also I’ve patched up a wee-bit of a memory leak that would creep up over time. 

Enjoy!

New Features in Build 1.0.7 of the Fantastic Worlds iOS Starter Kit

Build 1.0.7 of the Fantastic Worlds iOS Starter Kit has a lot of new utilitarian properties, with one big feature: A Boosters dictionary to eventually store properties that will “boost” the character in some way. For now, your only option is an immunity booster, but of course you can expect more to come. The immunity properties will make your character, you guessed it, immune from damage. And to add to the fun of being immune you can also include a particle effect in back of or in front of the character, as well as an image. In terms of using this immunity booster, this can be done either by equipping it from the inventory, or it can be automatically applied to the character when an item is collected or when an object / enemy is broken / defeated. Also immunity can be applied to the character dictionaries by default. So for example, your character might begin a level immune from attack for the first 5 seconds.

immunity booster in ios starter kit

 

 

 

 

Let’s talk about the biggest “utilitarian” feature, so I can use that word twice this decade (possibly ever). Dictionaries that setup the CSObject, CSWeapon and CSCharacter classes all have dozens of possible properties which can be an eyesore to look at after a while. For example, below is a small screen shot of how properties inside of a typical character dictionary could look….

prop

 

 

 

 

All those properties were previously thrown together into one place. Well now you can organize your properties in ANY way you want (with a few exceptions which I’ll mention in a moment). Take a look at the screenshot below for an example…

iOS Starter Kit Property List example

 

 

 

 

So you can retrofit your existing dictionaries with names of your choosing. Want all physics-related properties in a “Physics” folder. Simply create a dictionary called “Physics”, paste in your existing properties and you’re done. The dictionary names are essentially ignored at build time, and the properties contained inside get used like they would if they were just thrown together like before.

This works for any Objects dictionary, Portals dictionary, CollectiblesForThisLevel dictionary, Weapons dictionary, or Characters dictionary. The only time you can’t choose your own dictionary name is for the animation-related dictionaries for Objects or Weapons (since those have some property names in common like FPS, WillLoop, AtlasFile etc), you’ll need to leave those in their specifically named dictionaries.

This custom grouping of properties also makes it possible to copy and paste multiple properties at once (hooray!).

Without further ado, let’s get into the new properties…

 

In the GameSettings dictionary

DisableAdsPad – If YES, the app will not show iAds on the iPad. Other devices might show ads.

DisableAdsPhone – If YES, the app will not show iAds on the iPhone 3.5 inch. Other devices might show ads.

DisableAdsPhoneWide – If YES, the app will not show iAds on the iPhone 4 inch. Other devices might show ads.

LiftUpOnControlPadCausesJumpStop – A YES value is the default (if excluded), which will make the player stop jumping if the user lifts up the control pad.

TreatControlPadUpAsJump – A YES value sets the control pad (joystick) to treat an upward movement as a jump (for any characters that jump when going up). If you prefer to use a virtual button instead for jumping, set this value to NO. If you exclude this property, control pads will default to YES, so you have to explicitly disable that with this property.

 

For Level dictionaries

PauseOutOfViewObjects – Set this to YES to pause out of view objects. Pausing out of view objects can be done on a per-level basis, and by default this will be NO. For larger levels, you’ll probably want this to be YES. And keep in mind, objects can override being paused.

DisableCenteringPhone - A YES or NO value to disable (or enable) centering on just the iPhone. So you could have the same level be centered around the character on the iPhone (by setting this to NO), but the level would not be centered on the iPad (if the DisableCentering property was set to YES).

OnDeathGoToLevel – This value overrides the normal settings which specify what to do on death. This will force the scene to load a specific level instead of go back to the main menu, last save point, current level or game over menu.

OnDeathGoToPortal – This value accompanies the previous one to set the portal to enter after death.

 

For the Characters dictionaries

HasImmunity - A YES or NO value to initially or semi-permanently give the character immunity from damage. By default this is NO.

ImmunityTime - How long the character will be immune from damage. Set this to a really high number (like 1,000 seconds) if this shouldn’t wear off.

ImmunityParticleFile - The particle file name (minus .sks) to use when the character is immune.

ImmunityParticleOffset – The offset location of the particles from the center of the character. A value of {0, -30} would place the particles at 30 points below the character’s center point.

ImmunityParticleDepth – A positive or negative integer value for the depth of the particles. Any number less than 0 would place the particles behind the character artwork, and any number higher would place the particles visually above the character.

ImmunityImage – The key name in the image assets catalog of an “immunity image” to use. This could be an icon above the character indicating they are immune or something larger like a glowing bubble around the character. This has no effect on the physics of the character.

ImmunityImageDepth – The offset location of the immunity image from the center of the character. A value of {0, 50} would place the image at 50 points above the character’s center point.

ImmunityImageOffset – A positive or negative integer value for the depth of the immunity image. Any number less than 0 would place the image behind the character artwork, and any number higher would place the image visually above the character.

 

The Boosters dictionary in the Root

This Boosters dictionary will be a new one for the Root of the property list. Inside the Boosters dictionary, you can create another dictionary with a name of your choosing. Then set the following properties to create an immunity booster. This could be equipped via inventory, when collected in the scene, or after destroying an object. These property names are identical to those in the Characters dictionary.

ImmunityTime - How long the character will be immune from damage. Set this to a really high number (like 1,000 seconds) if this shouldn’t wear off.

ImmunityParticleFile - The particle file name (minus .sks) to use when the character is immune.

ImmunityParticleOffsetThe offset location of the particles from the center of the character. A value of {0, -30} would place the particles at 30 points below the character’s center point.

ImmunityParticleDepth - A positive or negative integer value for the depth of the particles. Any number less than 0 would place the particles behind the character artwork, and any number higher would place the particles visually above the character.

ImmunityImageThe key name in the image assets catalog of an “immunity image” to use. This could be an icon above the character indicating they are immune or something larger like a glowing bubble around the character. This has no effect on the physics of the character.

ImmunityImageDepthThe offset location of the immunity image from the center of the character. A value of {0, 50} would place the image at 50 points above the character’s center point.

ImmunityImageOffsetA positive or negative integer value for the depth of the immunity image. Any number less than 0 would place the image behind the character artwork, and any number higher would place the image visually above the character.

 

For the Collectibles dictionaries in the root

UseBoosterWithKey - Items in inventory can now equip/use a booster. Simply set this value to the matching dictionary key name of an item in the Boosters dictionary in the Root. The kit will then add a button below the collectible in inventory to use when the player needs it.

 

For CollectiblesForThisLevel dictionary

AwardedAlreadyKey – This value can equal anything you want, but it should be somewhat unique, for example, “Level1_Free_Coin“. The kit will allow this object to be collected ONE time only. After that, the kit will check with the defaults to see if a bool for key of name “Level1_Free_Coin” is set to YES, and won’t add this object to the scene again. This is a good way to give users a “freebie” of an item to test out, or simply limit the quantities of a collectible. If the game is ever started fresh again (either by deletion and reinstall, or buy using a button with the DoesWhat property set to StartGameFresh), then objects with an AwardedAlreadyKey will return.

AddBoosterOnCollect – Enter the value of a matching dictionary key name of an item in the Boosters dictionary in the Root. This will immediately equip the lead character with this booster.

 

For the InAppPurchasing dictionary 

Product1RemovesAds – Will remove iAds if the product is purchased and this is YES. If the primary function of the product is to remove ads, then your In-App Purchase should be set to Non-Consumable. This property can still be YES even if the product is Consumable. For example, you could advertise “Buy 10,000 coins and Remove Ads”. In which case, ads will be removed as long as the app isn’t deleted. If the user deleted the app, then iAds will show again because Consumable products are not restored.

Product2RemovesAds – Will remove iAds if the product is purchased and this is YES. See notes on Product1.

Product3RemovesAds – Will remove iAds if the product is purchased and this is YES. See notes on Product1.

 

For Objects

Movements > MovementStopPausesAnimation – Setting this to YES will pause object animations when movement stops.

FiresOutOfScreenRange – Setting this to YES will allow the object to fire even if it is off screen. For example, if you wanted Donkey Kong to throw barrels even if he is 10 ramps higher than what can be seen onscreen.

AddBoosterOnBreak - Enter the value of a matching dictionary key name of an item in the Boosters dictionary in the Root. This will immediately equip the lead character with this booster.

 

For Weapons

DoNotRemoveWhenOutOfView – Set to YES and the kit will not remove the weapon by default when it moves out of view.

 

Notable Code Tweaks

Previously movements in objects had a two second delay before being initiated. This is no longer the case.

When buttons started the game fresh (via their DoesWhat property equaling StartGameFresh), the code previously cleared out all NSUserDefaults. In hindsight, this obviously removes In-Game Currency as well, which the user could have bought via an In-App purchase, so the code know removes most defaults, with the exception of In-Game Currency.

For past buyers, to update your kit from 1.0.6 (or any past version), make a back up copy of your version of the kit (as a precaution of course), and open the zip labeled Changed_Files_for_Latest_Build which was just emailed to you, along with new copies of the demo projects.

As always you will need to manually change the Build number in the Project Settings from 1.0.6 to 1.0.7