Assignment 5 Solution

$35.00 $30.80


In this assignment you will be creating a Level Editor, using either Assignment

3 or Assignment 4 as the basis for your code. This level editor must have the

following features:


– The user should be able to mouse click on an entity in the level to select it

and then move the mouse and left click somewhere else to reposition it. This

should function in a similar way to the example shown in class.

– A new component ‘CDraggable’ should be created, and a new system ‘sDrag’

should be created. Any Entity which contains a CDraggable component should

be click/draggable by the user as described above.

– The user should be able to insert a new Entity, or delete an existing Entity.

Deleting an Entity should be done by pressing the Delete key while an Entity

is currently selected. Inserting a new Entity should be done by pressing the

Insert key, which places the new Entity on the mouse cursor.

– The user should be able to change the animation of an Entity while that

Entity is currently selected. Any animation defined in the assets file

should be selectable by the user, and should be displayed to the user in some

graphical way. For example, you could use the – or + key or mousewheel to

cycle through possible animations, or a menu which allows you to select from

available animations.

– The user should be able to enable a ‘snap to grid’ functionality which when

enabled only allows the user to place Entities into the middle of a cell in

a 64 x 64 pixel grid (similar to TilePos in Assignment 4). This snap to grid

functionality should be able to be toggled by pressing the ‘G’ key, and the

grid itself should be drawn on the screen when in snap mode.

– The user should be able to save the current level to a filename that is

input by the user in some way inside the user interface, as well as be

able to load a level from a filename specified by the user. You may get

user to specify the filename via the console, but this will result in -5%

– You must implement 3 different shaders in some way into this assignment,

one of which must be written by your group from scratch. The others can be

copied from online, but cited with sources.



– Up to 10% bonus marks can be obtained by doing some/all of the following:

– Implement a visual menu system for selecting new entity type

– More interesting level editor functionality

– Implement new gameplay mechanics / assets / levels


Marking Scheme:


– Existing entities Draggable:             25%

– CDraggable component / sDrag system:     10%

– New Entity creation / Entity deltion:    20%

– Entity animation selection from assets:  10%

– Snap to Grid:                            10%

– File Save / Load:                        15%

– 3 Shaders Used:                          10%