User:Josh Oosterman/Design Study
Line 36: | Line 36: | ||
[[Image:Josh-uml1.png]] | [[Image:Josh-uml1.png]] | ||
− | + | === Overview === | |
− | + | ||
− | + | ||
IDrawable ''ToDo'' | IDrawable ''ToDo'' | ||
− | + | === Interfaces, Inheritance and Encapsulation === | |
IDrawable ''ToDo'' | IDrawable ''ToDo'' | ||
Line 49: | Line 47: | ||
Object Encapsulation ''ToDo'' | Object Encapsulation ''ToDo'' | ||
− | + | === Design Patterns === | |
* Strategy pattern (LimbAnimationStrategy) ''ToDo'' | * Strategy pattern (LimbAnimationStrategy) ''ToDo'' | ||
Line 56: | Line 54: | ||
* Decorator (Background) ''ToDo'' | * Decorator (Background) ''ToDo'' | ||
− | + | === Maxims Followed === | |
''ToDo'' | ''ToDo'' | ||
− | + | === Maxims Violated === | |
MVC etc ''ToDo'' | MVC etc ''ToDo'' |
Revision as of 07:58, 29 July 2010
Contents |
The Problem
I wanted to create a tool to animate scenes, and humanoid characters.
Eventually I want be able to create complex animations which can be loaded into a 2d game.
This would take too long for a 427 assessment, so I've simplified the problem to having an interactive stickmen tool. The extensibility of the design of the system is critical so I can extend it in the future.
The system was fully designed and implemented for COSC427, and was not based on previous work.
A screenshot of the current version is shown below.
System Goals
Within my 427 Project
- Customisable backgrounds
- Posable figures (Such as Stickmen)
- Props
- Extensible - so I can add the below features eventually
Outside the scope of this project, but to be added in the future:
- Interpolation between Keyframes
- Advanced Inverse Kinematics & Constraints on Joints
- Export angles & positions as animation file to be used in games
Code
The system was implemeted in C# and can be obtained here. To build and run is trivial -- Open Stickman.sln in Visual Studio and build. You'll need Windows and VS2008 or later.
System Design
The image below is a simplified UML class diagram of nearly all of the classes in the system.
Overview
IDrawable ToDo
Interfaces, Inheritance and Encapsulation
IDrawable ToDo
AnimatedObject heirachy ToDo
Object Encapsulation ToDo
Design Patterns
- Strategy pattern (LimbAnimationStrategy) ToDo
- Observer (Handle) ToDo
- Flyweight (Sprite) ToDo
- Decorator (Background) ToDo
Maxims Followed
ToDo
Maxims Violated
MVC etc ToDo