Touhou/Readme.md

2.3 KiB
Raw Permalink Blame History

Gameplay

Witches

Before the game starts, the player can choose two witches between the 8 available. The first one is used on normal mode, the second on focused mode. Each witch has unique properties and sometimes a special effect.

Modes

There are two gameplay modes:

  1. Normal
  2. Focused

The "focus" mode is triggered by pressing KEY_OPTN. The effect disapears when the key is released. Focus mode with speed divided by two, some bullets are ineffective, and usually a fire power focused on a single stream. They may have a special effect

Speeds are in px/s (play area is 270×224).

Id Name Spe Pow Special
0 Reimu Hakurei 194 130 +10% power when focused
1 Marisa Kirisame 208 130 Attract bonus when on top of the screen
2 Sariel 241 Do not attract bullets when not focused
3 Koakuma +15% chance of getting a powerup
4 Iku Nagae Start with 4 bombs instead of 3
5 Sumireko Usami Wider fire angle when not focused
6 Hina Kagiyama +10% power when not focused
7 Kurumi

Power & fire

Power can go from 1 to

A bullet_t is always launched by the player. Else it's an enemy_t (even if it's an enemy bullet)

Powerups

There are 2 kinds of powerups: small ones and big ones. Small ones increase power by 1, big ones by 5.

Code architecture

Global vars

  • uint32_t us_elapsed: μs elapsed during the last frame
  • uint32_t frame: number of frames elapsed since the beginning of the game
  • player_t *player: general information about player
  • difficulty_t difficulty: the chosen difficulty of the game
  • bullet_t *bullets: the bullets sent by player

Objects

object_t is an object linked to physic or an updater. This means that an enemy as well as a bullet can be objects.

Object updater

An object updater is a function applied to an object. Its protoype must follow this: void f(object_t*). Due to the complexity of the game, it may use frame, us_elapsed; but it could also use player, difficulty or other global variables.