Retrofit Productions http://www.retrofitproductions.com Sat, 22 Apr 2017 19:13:48 +0000 en-US hourly 1 https://wordpress.org/?v=4.7.6 40115541 Quasimodo – Hunchback Returns http://www.retrofitproductions.com/2017/02/14/quasimodo-hunchback-returns/ Tue, 14 Feb 2017 11:32:18 +0000 http://www.retrofitproductions.com/?p=7491 Created internally by Retrofit Productions, this game is why Level Director X was created, as we needed a tool to create all the levels.

The post Quasimodo – Hunchback Returns appeared first on Retrofit Productions.

]]>
Created internally by Retrofit Productions, this game is why Level Director X was created, as we needed a tool to create all the levels.

The post Quasimodo – Hunchback Returns appeared first on Retrofit Productions.

]]>
7491
9. Joints http://www.retrofitproductions.com/2016/10/19/9-joints/ Wed, 19 Oct 2016 10:57:36 +0000 http://www.retrofitproductions.com/?p=6473 Joints (work in progress) This is one of the more complex features in LDX and can be tricky to setup. For the joint tool to become available you must select two existing objects which should be joined. When you add a joint, it creates a new joint object which acts the same way as a

The post 9. Joints appeared first on Retrofit Productions.

]]>
Joints (work in progress)

joint

This is one of the more complex features in LDX and can be tricky to setup.

For the joint tool to become available you must select two existing objects which should be joined.

When you add a joint, it creates a new joint object which acts the same way as a path/polygon object in that the edit point tools are available.

The joint anchors (start and end) are initially positioned at the centre of the joining object, and depending on the type of joint, you may see additional anchor points.

For some joints it is possible to move the anchors and this can be done by, first selecting the joint, then using the ‘edit point’ tool.

There are a number of properties for Joints, but some are only applicable to certain types of joints.
pivot‘ ‘friction‘ ‘weld
AnchorA.x

AnchorA.y

distance‘ ‘rope
AnchorA.x

AnchorA.y

AnchorB.x

AnchorB.y

piston‘ ‘wheel
AnchorA.x

AnchorA.y

ParamA

ParamB

General

motorSpeed
maxMotorTorque
isMotorEnabled
isLimitEnabled

‘piston’
Limits =  Limit1, Limit2
else
RotationLimits = Limit1, Limit2

The post 9. Joints appeared first on Retrofit Productions.

]]>
6473
Thru Blu http://www.retrofitproductions.com/2016/10/05/thru-blu-luib-mobile-fun/ Wed, 05 Oct 2016 13:15:07 +0000 http://www.retrofitproductions.com/?p=6329 Congratulations to Luib Mobile Fun for publishing their first game ‘Thru Blu’, it was a pleasure helping you get to grips with Level Director X.  

The post Thru Blu appeared first on Retrofit Productions.

]]>
Congratulations to Luib Mobile Fun for publishing their first game ‘Thru Blu’, it was a pleasure helping you get to grips with Level Director X.

thrublu

 

The post Thru Blu appeared first on Retrofit Productions.

]]>
6329
Flapper Force Z http://www.retrofitproductions.com/2016/10/05/flapper-force-z-absolution-games/ Wed, 05 Oct 2016 13:06:32 +0000 http://www.retrofitproductions.com/?p=6325 With the help of Level Director to create 30 levels, Absolution Games created the excellent game ‘Flapper Force Z‘, inspired by, well you know what.  

The post Flapper Force Z appeared first on Retrofit Productions.

]]>
With the help of Level Director to create 30 levels, Absolution Games created the excellent game ‘Flapper Force Z‘, inspired by, well you know what.

Flapper Force Z

 

The post Flapper Force Z appeared first on Retrofit Productions.

]]>
6325
Asteroids Rain http://www.retrofitproductions.com/2016/10/05/asteroid-rain-div/ Wed, 05 Oct 2016 12:52:57 +0000 http://www.retrofitproductions.com/?p=6320 ‘Asteroids Rain‘, Another slick game by Div.

The post Asteroids Rain appeared first on Retrofit Productions.

]]>
Asteroids Rain‘, Another slick game by Div.

arain

The post Asteroids Rain appeared first on Retrofit Productions.

]]>
6320
Space Shooter Ultimate http://www.retrofitproductions.com/2016/10/05/space-shooter-ultimate-xxx/ Wed, 05 Oct 2016 12:04:43 +0000 http://www.retrofitproductions.com/?p=6306 Over 40,000 installs, created using Level Director and Corona SDK, this is a very polished shoot-em-up from Div, and the full source code is available on the Template Downloads. Please visit Google Play for more info.

The post Space Shooter Ultimate appeared first on Retrofit Productions.

]]>
Over 40,000 installs, created using Level Director and Corona SDK, this is a very polished shoot-em-up from Div, and the full source code is available on the Template Downloads.

Please visit Google Play for more info.

Space Shooter

The post Space Shooter Ultimate appeared first on Retrofit Productions.

]]>
6306
Super Grav Bot http://www.retrofitproductions.com/2016/10/05/super-gravity-bot/ Wed, 05 Oct 2016 11:32:43 +0000 http://www.retrofitproductions.com/?p=6296 Using Level Director X, Insert Name LCC has created this very addictive game called ‘Super Grav Bot‘      

The post Super Grav Bot appeared first on Retrofit Productions.

]]>
Using Level Director X, Insert Name LCC has created this very addictive game called ‘Super Grav Bot

Level Director X - Super Grav Bot

 

 

 

The post Super Grav Bot appeared first on Retrofit Productions.

]]>
6296
Henry The Cloud http://www.retrofitproductions.com/2016/10/05/henry-the-cloud/ Wed, 05 Oct 2016 11:17:17 +0000 http://www.retrofitproductions.com/?p=6289 Dual Cortex Gaming brings you ‘Henry The Cloud’, with the help of Level Director X to create their vast array of levels within the game. Check out their web site for more details.

The post Henry The Cloud appeared first on Retrofit Productions.

]]>
Dual Cortex Gaming brings you ‘Henry The Cloud’, with the help of Level Director X to create their vast array of levels within the game.

Check out their web site for more details.

Henry

The post Henry The Cloud appeared first on Retrofit Productions.

]]>
6289
8. Tips and Tricks (Video) http://www.retrofitproductions.com/2016/05/10/8-tips-tricks/ Tue, 10 May 2016 20:10:20 +0000 http://www.retrofitproductions.com/?p=4828 In this video we cover some of the widely asked questions and provide general tips to help improve your user experience; Preferences – What does ‘Auto select draw asset’ do? Preferences – What impact does ‘Restrict object selection to layer’ have? Preferences – Can the themes be customised? Preferences – What are the ‘Targets’ used

The post 8. Tips and Tricks (Video) appeared first on Retrofit Productions.

]]>

In this video we cover some of the widely asked questions and provide general tips to help improve your user experience;

  1. Preferences – What does ‘Auto select draw asset’ do?
  2. Preferences – What impact does ‘Restrict object selection to layer’ have?
  3. Preferences – Can the themes be customised?
  4. Preferences – What are the ‘Targets’ used for?
  5. Collision Editor – Difficulty drawing polygons
  6. External Assets explained
  7. Pan mode

The post 8. Tips and Tricks (Video) appeared first on Retrofit Productions.

]]>
4828
7. Corona LUA Library http://www.retrofitproductions.com/2015/10/23/7-corona-lua-library/ Fri, 23 Oct 2015 09:28:56 +0000 http://www.retrofitproductions.com/?p=3516 Level Director X ships with two library modules which act as support files for when using the Corona SDK export template; LD_LoaderX.lua (Graphics 2.0) LD_HelperX.lua (Graphics 2.0) These can be found in the ‘Lib’ folder in each of the example projects and the new project template. LD_LoaderX This helps with the loading of the levels

The post 7. Corona LUA Library appeared first on Retrofit Productions.

]]>
Level Director X ships with two library modules which act as support files for when using the Corona SDK export template;

LD_LoaderX.lua (Graphics 2.0)

LD_HelperX.lua (Graphics 2.0)

These can be found in the ‘Lib’ folder in each of the example projects and the new project template.

LD_LoaderX

This helps with the loading of the levels and exposes helper functions.

So the first step is to make sure this file exists in your project folder (or lib folder as per example below)  and then require the file;

require("lib.LD_LoaderX")

Now you can instantiate a new loader class and load your level into a local variable;

local myLevel = {}
myLevel= LD_Loader:new()
myLevel:loadLevel("Level01")

To remove the level;

myLevel:removeLevel()

Once you have finished with your all your levels (or have 1) you can use;

myLevel:cleanUP()
myLevel = nil

This will remove the level and remove the LD_Helper reference.

LD_Loader creates a reference to LD_Helper and exposes the createObject function;

myLevel:createObject(layerName, objProps)

With this you can add objects to your level simply by passing in the correct properties as a table;

 local objProps = 
 {
    name = 'myNewOrange', 
    objType = 'LDImage',
    x = 250,
    y = 287,
    xScale = 10,
    yScale = 10,
    assetName = 'orange_0',  -- asset frame name
    physics = nil -- use asset physic properties
 }
local orange = myLevel:createObject("Layer1",objProps)

In this example it assumes that you have exported an asset called ‘orange.png’ and it will add it to ‘Layer1’. The createObject function will use the asset information to help create the object. Because we did not override the physics properties it will use any physics properties specified on the asset.  The coronaTemplate export will give you more information on what properties you can use.

If you need to access a layer directly you can get a local copy like this;

local layer1 = myLevel:getLayer(layerName)  -- add .view to access the displayGroup

To show/hide a layer;

myLevel:setLayerVisible(layerName, visible) -- visible = true/false

To retrieve a local copy of an object from a level you have two choices;
1) You do not know the layer name

local obj = myLevel:getObject(objectName).view -- .view returns the displayObject

2) You know the layer name (best method)

local obj = myLevel:getLayerObject(layerName, objectName).view

If you are using class names on objects then you can get an array of objects with that class name;

local enemies = {}
enemies = myLevel:objectsWithClass(className)

If they reside in a single layer then you can use this;

local enemies = myLevel:layerObjectsWithClass(layerName, className)

To remove an object;

myLevel:removeLayerObject(layerName,objectName)

To remove objects of a certain class on a known layer;

myLevel:removeLayerObjectsWithClass(layerName,className)

To remove objects of a certain class across all layers;

myLevel:removeObjectsWithClass(className)

If you have a display object that has been manually created, you can add it to the level using the addObject;

myLevel:addObject(layer, object) -- layer is the associated displayGroup for the layer
or
myLevel:addObject(myLevel:getLayer("name").view, object)

LD_Helper

Here is where the main work is done when the level is loaded.

Although you don’t need to access LD_Helper directly you will access some functions indirectly through LD_Loader.

Parallax Scrolling

if level.ParallaxEnabled is set then two methods are added to the level object;

myLevel:move( dx, dy )

This moves the objects by a delta amount and when level.ParallaxInfinite is set will move all the objects individually and wrap them accordingly.

myLevel:moveCamera(x ,y)

Move Camera will simply move the viewport/camera so the layer positions are offset by the camera position, no wrapping is performed, but the performance is much better.

Based on the ParallaxInfinite mode, when true objects will be moved otherwise when false whole layers are moved according to the speed set on the layer.

Note that you can only perform wrapping when ParallaxInfinite mode = true.

Also be aware that due to a limitation in Box2D, physics across multiple layers will not be moved if ParallaxInfinite = false, individual objects will have to be moved.

To add bounds checking when the layers are moved call setCamerasBounds (The checking is based on the camera position which moves at a speed of 1.0) ;

myLevel:setCameraBounds(xMin, yMin, xMax, yMax)

To remove camera bounds;

myLevel:setCameraBounds(nil)

To obtain the camera position;

local cameraPos = myLevel:getCameraPos()
print (cameraPos.x, cameraPos.y)

To slide the level to a position use this;

slideCameraToPosition(x, y, time, easing method, completed handler)
e.g.
-- move to top corner 600,800
myLevel:slideCameraToPosition(600, 800, 2500, easing.inOutQuad, onScrollFinished)

To make the camera track a display object (see Scroller example);

myLevel:setCameraFocus(displayobject obj)  -- it is important for the layer the tracking object resides on to have a parallax speed of 1.0 otherwise you will get strange results.

-- Now start/stop the tracking
myLevel:trackEnabled(boolean enabled)

If you want to move the camera to a desired point without any visual movement use this;

myLevel:moveCamera(x, y)

Follow Paths

object:followPath(path, params)

If you have added paths to your level you can make any object follow that path by providing the name and the params table.

The params are as follows;

pathParams.rebound = int : 1 = rebound (switch direction) at end/start of path
pathParams.direction    = int : 1 = forward, -1 backwards
pathParams.delay        = int : bigger the number the slower it will be (0 = no delay).
pathParams.repeats      = int : -1 = forever, 0 = no repeat, n = repeat n times.
pathParams.rotate       = int : 1 = rotate according to angle between points
pathParams.xFlip        = bool : true = flip x axis at end/start of path
pathParams.yFlip        = bool : true = flip y axis at end/start of path
e.g. obj:followPath('path1', { direction=1, delay = 1.0})

To pause the path;

obj.pathParams.paused = true

To get a notification of when the path has reached the end/start two events are dispatched;

"LD_PathEnded"
"LD_PathObjectEnded"

You can then listen to these events;

local pathEnded(event)
   print (event.object.name)
end
Runtime:addEventListener("LD_PathEnded", pathEnded) -- global listener 
obj:addEventListener("LD_PathObjectEnded") -- listen to individual objects

Misc

In addition to this some helper events are also added for you;

object.EnableDrag – if you set this to true on an object a touch event will be attached to the object allowing you to drag it around.

See the example projects for more information.

The post 7. Corona LUA Library appeared first on Retrofit Productions.

]]>
3516