﻿id	summary	reporter	owner	description	type	status	priority	milestone	component	version	resolution	keywords	cc	i_links	o_links
155	Vertical/Horizontal Scroller Controls	patrick	muellmic	"= Intro =
The space ship control is used for direct in-game interaction with the avatar of the player. The player needs to feel comfortable with the control, the perspective and the ships reaction to input. We want different scroller perspectives:

http://upload.wikimedia.org/wikipedia/en/9/90/Raiden_%28game%29.png
http://upload.wikimedia.org/wikipedia/en/9/93/Rtypeiiscreenshot.png [[br]]
vertical scroller (left), horizontal scroller (right) [[br]]
[[br]]
After the design and implementation, this project needs lots of testing to get the optimal control. You will need play some other similar games to let yourself be inspired.


= Goals =
 * define a well playable vertical scroller mode (extend the current version)
 * define a well playable horizontal scroller mode (new)
 * switching between these modes should be very easy (interface function) and scripteable



= Information Gathering =
You will need to:
 * look out for the most popular vertical/horizontal scroller games (make sure to check out this [http://en.wikipedia.org/wiki/Scrolling_shooter wikipedia] page)
 * be sure to download some demos from such games and play them until you get a feeling of how the controls work
 * there is already a vertical scroller implementation available, be sure to check it out: you will find it in [https://dev.orxonox.net/browser/trunk/src/world_entities/playable.cc#L324 playable.cc] function:  {{{setPlaymode(...)}}} be sure to look at the [https://dev.orxonox.net/browser/trunk/src/world_entities/playable.h playable.h] header file too (line 113 you find the most important function: {{{enterPlaymode(Playmode& mode)}}}.
 * '''most important''' look at [https://dev.orxonox.net/browser/trunk/src/world_entities/space_ships/spacecraft_2d.cc spacecraft_2d.cc] and [https://dev.orxonox.net/browser/trunk/src/world_entities/space_ships/spacecraft_2d.h spacecraft_2d.h] you will mostly work with those two classes
 * scripting howto (ScriptingHowTo) for play mode changes


= Implementation =
 * each space ship ([https://dev.orxonox.net/browser/trunk/src/world_entities/space_ships directory]) defines its own {{{enterPlaymode(Playmode& mode)}}} function. This is where the code is written that describes how the switching between the gamemodes should look like.
 * how the spaceship moves is described in the function {{{void Spacecraft2D::movement (float dt)}}}. For each playmode, there is a {{{case}}} describing the input reactions.
 * there is already an interface for switching player mode, find it and make sure it can be accessed by scripts



"	task	reopened	major	Old Orxonox tickets orx-v0	GeneralFramework						
