Coder Social home page Coder Social logo

beatwave's People

Contributors

fornever avatar minoru avatar newlifer avatar rexim avatar unclechu avatar voldyman avatar

Stargazers

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

Watchers

 avatar  avatar  avatar

beatwave's Issues

Color traps design

Areas that you can go to only if you have a certain color. The player can change his/her own color after a certain action.

It will give us more possibilities for describing musical puzzles.

cc @Minoru

Animated group

Use case:

AnimatedGroup<float, sf::Vector2f, sf::Color>
circle(10.0f, sf::Vector2f(100.0f, 100.0f), sf::Color::Red);

circle.get<0>().animate(from(10.0f).to(20.0f).during(1000));
circle.get<2>().animate(from(sf::Color::Red).to(sf::Color::Blue).during(1000));

circle.tick(100); // ticks for all of the values in the group

It will allow the following things:

class Circle: public AnimatedGroup<float, sf::Vector2f, sf::Color>
{
public:
    enum Property
    {
        Radius = 0,
        Position,
        Color
    };

    void render(sf::RenderTarget *renderTarget)
    {
        auto radius = get<Radius>();

        sf::CircleShape circle(radius);
        circle.setFillColor(get<Color>());
        circle.setPosition(get<Position>() - sf::Vector2f(radius, radius));
        renderTarget->draw(circle)
    }
};

Circle circle(10.0f, sf::Vector2f(100.0f, 100.0f), sf::Color::Red);
circle.get<Circle::Radius>().animate(from(10.0f).to(20.0f).during(1000));
circle.render(renderTarget);

Death

The player should die on hitting the wall

Strict argument order for LinearTransitionBuilder

It should be always be either

from(a).to(b).during(t)

or

from(a).by(da).during(t)

The current implementation allow to change to order of the arguments. We need to make it strict by separating them into different classes. We need at least two new classes: ToBy<T> and During<T>.

from(a: T): ToBy<T>
ToBy<T>::to(a: T): During<T>
ToBy<T>::by(da: T): During<T>
During<T>::during(t: int32_t): AnimationPtr<T>

Linear transition for colors

Pieces

  • #108 Implement LinearTransition specialization for colors that performs gamma correction
  • #116 Implement gamma correction for Player color transition via map animation combinator

Level file format

Split in #138

Pieces

  • #139 Define level file schema
  • #140 Refactor Game class
  • #141 Implement Level class
  • #151 Investigate Sigmentation Fault on using PathCorrectors by value
  • #153 Implement XML constructor for Tunnel
  • #152 Implement XML constructor for Player
  • #150 Implement XML constructor for path corrector swarm
  • #142 Extract the event loop into a separate entity

Single tunnel level

Description

Design a level with a simple drum sequence using only tunnel turns. Adjust all the transition times as needed.

Generalize tuple iteration process

Right now it can only invoke Animated<T>::tick(). Make it take an std::function and allow it to do what it wants with the animated object.

Relative animations

Pieces

  • #79 Add State argument to reset method
  • #80 Introduce open linear transition

x.animate(begin(from(0).to(10).during(100))
          .then(to(20).during(500)) // <- don't specify the `from`
          .end())

Reorganize source code

  • Move sources to src/ folder
  • Make src/ a include root
  • Extract core to be reused among the executables

Reset hitting wall problem

Steps to reproduce

  • Start the game
  • Play the game and make a couple of turns in tunnel
  • Hit the wall to die
  • Reset by pressing G

Observed

Player is moved to the beginning of the level hits the wall again and dies again

Expected

The player state should be reset without dying in the middle of the process

Continous integration

There should be an automatic build (and, in future, test) process. Travis, for example.

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.