Giter Site home page Giter Site logo

pool's People

Contributors

alexandrebarbaruiva avatar anishsujanani avatar belchingjalapeno avatar darsh2987 avatar dhavdc avatar eclecticexistential avatar enigma9 avatar galczo5 avatar kinnerapriyap avatar kuper-adrian avatar mauzzr avatar medusalix avatar oyvindjam avatar ryanimpey avatar sagarchoudhary96 avatar shailbala avatar skolerst avatar sleddog avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

pool's Issues

Add cue stick animation based on velocity

Currently the cue stick is visible during aiming. When the shot is fired the cue ball immediately has velocity and the cue stick disappears. This ticket to add a nice animation after the shot is hit that shows the cue stick go back (based on the amount of velocity selected) then forward, imparting velocity onto the cue ball.

Make the cue ball roll properly

Currently the cue ball moves by sliding. This ticket could make the cue ball actually "roll" by positioning the red dots accurately as it rolls.

Make a snooker option

This would require some work, in conjunction with the ability to play a 9 ball game. This ticket would expose a new option to switch racks

8 Ball
Snooker

Snooker requires a bunch of new but smaller balls and changes the pocket sizes too...

Move horizontal power bar to the left side and make vertical

In an effort to make the game fit only on 1 screen (no horizontal or vertical scroll bars), this ticket could move around the power bar to the left side and make it vertical. Lets see how we can get the screen to be as simple as possible.

Add a HOWTO play the game page

There are no instructions on how to play (use the keyboard to fire the ball, select your x/y location of the cue, and the power...)

Adjust sound(s) volume based on impact energy

When the ball is potted (and soon when other sounds are added) it is set to a static value. This ticket could introduce variable sound volume based on impact energy. Faster collisions == louder

3D Ball rendering

Currently the balls are rendered on a 2D plane. We could make this much better to render in 3D. Perhaps use an existing 3D library.

Scope of this ticket could be a proof of concept new 8 ball that rolls...

Improve ball collisions

There are a few ways to cause odd collisions. This ticket will track improving the main collision detecting and resolution functions.

Make all balls stop faster - i.e. increase friction

Currently there is an annoying delay for all the balls to become stationary (which is a new feature to prevent shots until all balls stop), but this makes for some waiting.

This ticket could tweak the value of table friction to a more playable value.

Initial fast cue ball

The cue ball moves at an ultra-high speed that causes many strange collisions when the player does not aim for the first shot.

Add ability to change color of the felt

Currently the felt color is statically defined (green). This ticket could add the ability for a user to change the felt color (maybe using a defined list, or ideally some color picker).

Add README.md

Add a README.md file to describe this repo and how to develop.

Change bumper collisions to account for rubber

Currently the bumper collisions are treated as elastic collisions just like striking a mirror.

        ball = this.balls[i];
        //if potted, no collision with bumper
        if(!ball.potted) {
            if(ball.position.x > X_MAX-PREFS.bumperWidth-ball.radius || ball.position.x < 0+PREFS.bumperWidth+ball.radius) {
                    ball.velocity.x *= -1;
            }
            if(ball.position.y > Y_MAX-PREFS.bumperWidth-ball.radius || ball.position.y < 0+PREFS.bumperWidth+ball.radius) {
                    ball.velocity.y *= -1;
            }
        }
        ball.update();

Note the velocity is simply flipped. We should account for some velocity decrease after striking the rubber bumper. Also make this rubber bounce be a preference.

Add properties panel and initial settings

There are a number of constants and settings that would be nice to expose in some type of properties panel.

Felt color
bumper color
Max velocity
Friction / max constants
etc...

Add a simple dialog that allows the user to set these, and setup for future settings to be added.

Add a 9 ball rack

Currently the game defaults to 8 ball. This ticket could simply have the game load a nine ball rack as opposed to the 8 ball rack

Add a cue stick

Currently there is no cue stick. This ticket could introduce a cue stick to the UI.

Bring back the space key to fire the cue ball

We now have a cool power slider on the left side, but you have to use the mouse to fire the shot. This ticket could bring back the keyboard to "power up" the shot.

The longer you hold the keyboard, the stronger the shot will be (until it maxes out).
A quick press, will be a slow shot
A long hold and release, will be a power shot

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.