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.

Advertisements

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