Starting from:
$35

$29

Assignment 5 Solution


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.
  
Bonus:
- 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%

More products