Side-Scrolling Shooter

William Dugger
CPE471 Final Project
Fall 2010

Project Description

This project is a side-scrolling shooter. The player controls a blue ship with the goal of killing enemy red ships and not dying. My project's features include:

  • Collision detection between different entities: bullets, ships, and the ground.
  • Smooth controls, with smooth changes in the pitch of the player's ship.
  • A time-based system that prevents the player from firing more than 3 bullets per second.
  • A constantly moving backdrop that gives the feeling of movement.
  • Project Goals

    The goal of this project was to get a shooter that included the features above as well as:

  • AI: Enemies that fly in patterns and shoot.
  • Different types of guns for the player's ship, which shoot bullets in different patterns.
  • These additional goals were not implemented due to time restrictions.

    Models and Collision Detection

    The models in the game are very simple -- I could not find good free ship or mountain models, so I used very simple ones I made myself.
    However, the game is quite capable of using other, more complicated models in replacement.
    The collision detection in this game is modeled as a plane for the ground, and Axis-Aligned Bounding Boxes for the player and enemies.

    Controls

    To control the program, use the following keys:

    'w' : move blue ship upwards and pitch ship up
    's' : move blue ship downwards and pitch ship down
    'a' : move blue ship backwards
    'd' : move blue ship forwards
    space : fire a bullet
    'c' : reset game
    'q' : exits the program

    Screenshots

    The images, left to right:

  • The beginning screen that the player starts on.
  • The player moves his ship upwards.
  • The player shooting the gun. The bullets are the yellow cubes.
  • A bullet hitting an enemy. The explosion animation is the rotating red cube.
  • The player colliding with an enemy.
  • Start screen Ship moving upwards Ship shooting the gun Bullet hitting an enemy Player colliding with an enemy

    Resources

    None