Giter Site home page Giter Site logo

py-target-shooter's People

Contributors

niaev avatar

Stargazers

 avatar

Watchers

 avatar

py-target-shooter's Issues

Pop Ups

Pop Ups are text and numbers that pop on the screen and fade out relatively fast to show the user some life on the screen.

Pop Ups should show up when the user hits a target, misses, and when a target is lost.

  • PopUp

    • Constructor that displays the given text on the given location
    • Method move -- moves the text sligthly up and fades it out
  • CHPopUp

    • Constructor that receives the points earned, if 0 the text should be miss!, else, it should be +n being n the amount of point earned by the hit
  • TPopUp

    • Constructor that decides randomly one of a bunch of default presetted text to show on the exact same location as the target

Hud font not working on Windows

The "Console" font was installed on Windows 10 but it's not working.

Find a solution for the problem and maybe find a way to use the font with no need to install on the system.

Player Hud

Top bar on the screen that shows game information, including time count, points count and more.

Should be on the top of the screen, use the font "Console" with black color.
Timer should be on the left, point counter should be on the right and the other information should be located to the center.

  • Simple Hud -- Hud

    • Develop constructor that displays timer and point counter with default values
    • Method draw_time -- (re)draws timer text on the screen
    • Method draw_score -- (re)draws point counter on the screen
    • Method draw -- call both draw_* methods
    • Method update_time -- get current time and compare with the time the hud was started to then draw the difference on the screen
    • Method update_score -- get score to sum to the total amount of points and then draw the new total on the screen
  • Three info Hud -- THud

    • Inherit from Hud
    • Develop constructor that executes parent constructor and displays center information with default initial value
    • Method draw_info -- (re)draws center information on the screen
    • Method draw -- call all draw_* methods
    • Method update_info -- get value to sum to the total amount of the info in question
  • Four info Hud -- FHud

    • Inherit from Hud
    • Develop constructor that executes parent constructor and displays center information with default initial value
    • Method draw_info_left -- (re)draws center left information on the screen
    • Method draw_info_right -- (re)draws center right information on the screen
    • Method draw -- call all draw_* methods
    • Method update_info_left -- get value to sum to the total amount of the info in question
    • Method update_info_right -- get value to sum to the total amount of the info in question

Menu

The game menu should have some important basic entities, like labels and buttons.

  • Button

    • Inherit from GroupedDrawings
    • Constructor that receives border color, background color, text, size and position
    • Method hover -- changes color when crosshair collides
    • Method click -- do something when crosshair collides and clicks
  • ReturnButton

    • Inherit from Button
    • Constructor that builds it with a text < return on the top left of the screen
    • Method click -- do something when crosshair collides and clicks
  • Label

    • Constructor that receives text, color, size and position
  • Menu

    • xxxxxxxxxx
    • yyyyyyyyyy
    • zzzzzzzzzz

This should be the parent class for all the other menu classes, considering it will handle which content it would contain, functions to handle navigation and other stuff.

  • MainMenu

    • xxxxxxxxxx
    • yyyyyyyyyy
    • zzzzzzzzzz

It should have the game logo and some buttons like:

- Play
- Achievements
- Options
- Credits
  • PlayMenu

    • xxxxxxxxxx
    • yyyyyyyyyy
    • zzzzzzzzzz

It should have two buttons:

- Normal Mode
- Hardcode Mode

Each one should show a different text on the bottom explaining each game mode.

Also, a "return" button on the top left.

  • PauseMenu

    • xxxxxxxxxx
    • yyyyyyyyyy
    • zzzzzzzzzz

It should have x buttons:

- Resume
- Achievements
- Options
- Main Menu

Also, should stop all time counting related stuff from the game

  • LostMenu

    • xxxxxxxxxx
    • yyyyyyyyyy
    • zzzzzzzzzz

Should show a text saying You lose and two buttons:

- Restart
- Main Menu
  • AchievementMenu

    • xxxxxxxxxx
    • yyyyyyyyyy
    • zzzzzzzzzz

It should show all achievements.

Also, a "return" button on the top left.

  • OptionMenu

    • xxxxxxxxxx
    • yyyyyyyyyy
    • zzzzzzzzzz

It should show options

Also, a "return" button on the top left.

  • CreditsMenu

    • xxxxxxxxxx
    • yyyyyyyyyy
    • zzzzzzzzzz

It should show credits.

Also, a "return" button on the top left.

Tests - For learning and gameplay testing

Test scripts are great in the way I'm doing them because they serve as a demonstration of something I'm learning and also as a unitary or integrated test validation.

Also, they are helping me with the project roadmap, like guiding me. Maybe it is wrong, but seems ok to me.

Here the tests I already made before creating this issue are listed as done:

  • Make a custom cursor in-game
  • Make a cross hair with no image
  • Make the cross hair be the custom cursor
  • Make target drawing with no image
  • Draw targets alongside with the cross hair
  • Count points by target hits with a counter on the top with a "hud"
  • Hide targets when they are hit (while counting points)
  • Show targets in random positions and hiding them after some time or after hit (while counting points)

Those tests made me understand how to:

  • Draw things on the screen
  • Remove things from the screen
  • Move things on the screen
  • Operate with the cursor location
  • Operate with mouse entries
  • Write text on the screen

And much more.

Other tests I find very useful will be listed here througout the development. Maybe this will never end.

  • Point increase pop-ups
  • Target loss pop-ups
  • Working menu button
  • Game start menu design
  • Game start menu navigation
  • Pause menu design
  • Pause menu navigation
  • Target loss counter
  • Target miss counter
  • "You lose" message
  • "You lose" message menu
  • xxxxxxxxxx
  • yyyyyyyyy
  • zzzzzzzzzzz

It's important to make it clear that this issue is not actually discribing important game features and tracking their development, since it doesn't matter how those tests are made. Every single feature will have its own issue that will require proper development organization and more stuff.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.