Code Monkey home page Code Monkey logo

endgate's People

Contributors

boriskozo avatar buildstarted avatar ntaylormullen avatar

Stargazers

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

Watchers

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

endgate's Issues

Make AudioClip disposable

AudioClip's contain asset info which should be de-referenced so it can be garbage collected, should also dispose the events.

Add touch input handler

A lot like how we have a MouseHandler and a KeyboardHandler we should also have a TouchHandler which combines all browser touch events

Grunt build to replace PS build

Hi,

I have created a small POC of the more standard Grunt builder. You can check it out (pun intended) on this branch: https://github.com/BorisKozo/EndGate/tree/grunt_build

I also added the Grunt QUnit test runner so that the tests follow the sources properly.
If you think this is the right direction I will edit the readme to include the new instructions and remove old build files.

There are couple of things I didn't understand.

  1. _references.js file - why is it needed?
  2. endgate.ts file - why is it needed?

I also don't know how to create a Nuget package but I will learn how to do it before I open a PR.

Graphic2d dispose does not dispose all children.

This isn't the biggest issue in the world since the assets still get cleaned up by the gc but if there's any objects that override the dispose and depend on it this obviously causes issues.

Add Top, Left, Bottom, Right for bounding objects.

This should be added to the Bounds2d abstraction and then implemented in the BoundingCircle and BoundingRectangle.

Each property would return a number. Example:

boundingRectangle.Left === boundingRectangle.TopLeft.X && 
boundingRectangle.Left === boundingRectangle.BotLeft.X && 
boundingRectangle.Left === boundingRectangle.Position.X - boundingRectangle.Size.HalfWidth
// This would all return true

Should also allow setting of the properties which would indirectly set the bounding objects position.

Move ImageSource to graphics namespace

Currently it resides under the Graphics Assets namespace but image sources are so frequently used it doesn't make since for them to be under "assets".

Add a color tween

This relies on #30 to be completed. Essentially allows you to tween from one color to another.

Move Abstraction classes out of the abstraction namespace

There are several abstract classes such as Graphic2d that are in an Abstractions namespace. There's no need for these classes to be in the Abstractions namespace, more often then not they're used to represent a collection of derived objects.

Make ImageSource Disposable

To follow the consistencies of making most objects disposable we should also make ImageSource disposable so we can properly dispose of the ImageSource events and images.

Make InputManager disposable

Since all the input mechanisms will be disposable we should also make InputManager disposable to dispose them when the game is disposed.

Build channels into AudioPlayers

Right now when an audio clip is built or played it requests a new audio source. This is required in order to play the same sound multiple times. However, we could implement channels so that previously existing audio sources are re-used if requested.

Add collision groups

This will further improve collision detection versatility and performance (much like #6). A collision group will represent a group of objects that can collide with each other. This can potentially be used to showcase layered collisions, an example being if you have a game were you have ground and air objects the two can't collide with eachother directly.

Make SpiteAnimation disposable

Should dispose the event handlers associated with the sprite animation but NOT the image source. The core image source may be shared.

Add Parent and AbsolutePosition members to Graphic2d

Parent will be null if the graphic has no parent, AbsolutePosition will return the absolute position of the graphic on the map (should be a property).

When a child graphic is disposed it should be removed from its parent element.

Create obstacle collidable

An obstacle collidable will be an object which cannot be passed through by any other collidable. Collided functions are still triggered on the obstacle object, the difference is obstacles utilize collision resolution to ensure the two never pass through eachother.

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.