= Vertical Scroller =
[[ArchivePage]]
== Author ==
[https://dev.orxonox.net/wiki/MichelMueller Michel Mueller]
== Ticket Description ==
[https://dev.orxonox.net/ticket/155 here]
== Developer's Journal ==
[https://forum.orxonox.net/viewtopic.php?t=60 here]
== Goals ==
* Creation of an appropriate implementation to handle the vertical/horicontal - scroller gamemode. "Done"[[BR]]
* Implement Playership- Animations. "Done" [[BR]]
* Find well-balanced settings for camera view, movement speed and animations. "Done"[[BR]]
* Implement a nice-looking interface that prevents the player with all the information necessary. "Depends on what the user defines as 'nice-looking', but except that: Done ;-)"[[BR]]
== Achievements ==
=== Playmode ===
* to set the appropriate playmode for the spaceship (only the playmode "Horizontal" has been implemented already), just set the tag Horizontal to the !SpaceShip that is mounted by the player inside the level-xml- file. [[BR]]
* this handles basically the camera settings to begin with and also it sets up the tracknode as the center-point of the screen. [[BR]]
=== Player Movement ===
* inside this playmode the player can move only relatively to the tracknode. the final movement is an addition of the tracknode movement (through parenting) and the player movement, which is implicated through the key events up, down, left and right. [[BR]]
* the acceleration of the playermovement is currently simply fixed through the local variable "airCoeff" inside the movement- function of SpaceShip. [[BR]]
* the maxspeed of the playermovement can be influenced through the character- values: engineSpeedBase, reactorOutput and engineEnergyShare. These Values are currently just fixed values that are being initialised to a standard value. changing those requires recompiling. [[BR]]
* the borders of possible movement ("travelDistance") are restricted to the screen size that is visible in the top-down perspective. changing the resolution, camera distance or camera field of view will lead to a recalculation of this movement field. [[BR]]
* also the movements can be restricted in its width by the xml- loadable variable "actionWidthPercentage" (to be loaded as a tag of !SpaceShip). for example an actionWidthPercentage of 80 will restrict the player to 80 percent of the screen's width. the rest of the screen are used for the HUD- blendovers. tough less than 20percent space for the HUD will set the HUD- blendovers to a minimum width of 10 percent for each side of the screen, which means, that the player will be able to fly behind the HUD. [[BR]]
=== Camera Handling ===
* the distance and field of view of the camera in top-down mode can be set by the xml-tags and . they have to be attached to the !SpaceShips tough, since the camera has never been thought to be loadable by xml. [[BR]]
* during the flight, the player can switch through the camera views by the number keys 1 to 6, while 6 is the standard- top down view. the handling of the camera settings and parenting had to be overwritten by the !SpaceShip event handler, since the scroller- playmode requires a different approach, than the first-person mode for instance. [[BR]]
== HUD ==
=== History ===
'''first ideas by nicolas, according to board discussion:'''[[BR]]
[http://people.ee.ethz.ch/~nicolasc/HUD2.png] [[BR]]
'''first achievements in showing the interface vertically: '''[[BR]]
[[Image(interface1.jpg)]] [[BR]]
'''some sketch, how i imagined the assembling of the huds (sizes not representative)'''[[BR]]
[[Image(interface1_2.jpg)]][[BR]]
'''current state: '''[[BR]]
[[Image(Bildschirmphoto4.jpg)]] [[BR]]
=== Description ===
* the hud has been programmed as a blendover on left / right screen side. right side: ammunition stats, left side: radar, player stats. stat bars are growing vertically and align themselves horicontally. this leads to a better use of the given space, that is rather vertical in nature. the ammunition bars align themselves from the right border and switch to a next line when reaching the left border of the blendover. [[BR]]
* it resizes itsself according to the screen resolution and the actionWidthPercentage (see Player Movement). except some bugs the resizing works well. [[BR]]
* each gui- element has its own logo. the logos have been designed by me, so they are under the licensed of orxonox. [[BR]]
=== Interface Logos ===
* player stats: [[BR]]
||electronics||shields||health||
||[[Image(gui_electronics_icon.png, 100p)]]||[[Image(gui_shield_icon.png, 256px)]]||[[Image(gui_health_icon.png, 256.px)]]||
* human weapons: (mostly extracted from the existing textures)
||light blaster||medium blaster||heavy blaster||swarm missiles||
||[[Image(gui_light_bolt.png,2px)]]||[[Image(gui_medium_bold.png,100px)]]||[[Image(gui_heavy_bolt.png, 256px)]]||[[Image(gui_swarm_missiles.png, 256px)]]||
* noxon weapons:
||acid launcher||spike thrower||
||[[Image(gui_acid.png)]]||[[Image(gui_spikeball.png)]]||