Git Product home page Git Product logo

chestergl's People

Contributors

coolhome avatar lharding avatar rolandoam 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

chestergl's Issues

Support fullscreen

Run a few tests...
In one of them clicked fullscreen - browser gone fullscreen and didn't go back. Had to use Esc to minimize the window. Fullscreen button no longer works and panels behave rather strange - dock and system panel autohiding when focused on browser. Dunno how to fix that. In all the options fullscreen / autohiding is disabled.

Scope problem on visit method

Visit method doesn't work when this.children changes through the execution. Please change the following lines on Block.js
From 507 to 511
//var children = this.children;
//var len = children.length;
for (var i=0; i < this.children.length; i++) {
this.children[i].visit();
}

primitives

we should be able to draw primitives. The shader is there, so probably the right way to do it would be to create a primitive block. It would be helpful for debugging (i.e. drawing the bounding boxes, etc)

add a jsfiddle example

adding a jsfiddle example (like this http://jsfiddle.net/8A7jx/13/) will mean easier way to test chesterGL and more people might play with it.
This means we also need to have a CORS-enabled server to host chesterGL.js and the shaders, as well as some textures to play and also, set a base path for resources.

time-dependent actions

time dependent actions are not working (just a stub). My idea for the actions API is the following:

// 1) moves instantly
block.moveTo([x, y, 0]);
// 2) schedules an action to be executed immediately and should take 2.0 seconds
block.moveTo([x, y, 0], 2.0);
// 3) actions should be chain-able (they should return the block object). Here they will be executed immediately
block.moveTo([x, y, 0]).rotateBy(45.0);
// 4) you can chain several actions in a sequence: this will move to x, y and *then* rotate by 90 degrees
block.moveTo([x, y, 0], 2.0).rotateBy(90.0, 2.0);
// 5) or be executed in parallel
block.spawnActions().moveTo([x, y, 0], 2.0).rotateBy(90.0, 2.0).spawnActions();

The only one that doesn't look good to me is number 6. Perhaps passing an of action names and arguments might be a better idea, something like:

// 5b) parallel execution of actions
block.spawnActions([["moveTo", [x, y, 0], 2.0], ["rotateBy", 90.0, 2.0]]);

but that doesn't seems so clean either... Perhaps I should just follow the jquery way to execute actions...

make BlockGroup work on canvas

The BlockGroup should either behave like a regular block in canvas, or be an offscreen buffer for canvas. Either approach should be reliable and work for canvas fallback support.

handle context lost

need to handle context lost and reload texture + shaders (and other needed data)

mouse events

event handler and propagator - work already being done on my local repo

Crossplatform Makefile

I propose we replace the Makefile with something cross-platform.

I wrote my own version using Python. I chose python because if you are going to compile you will already have python installed.

My python script: https://gist.github.com/coolhome/4993248
Example Usuage:

C:/Python27/python.exe compile.py -mode=release -docs -clib ./closure-library -ccompiler ./closure-library -jsdoc ./jsdoc-toolkit -python C:\python27\python.exe

It's not an exact copy of the Makefile but it has most of it.

particle effects

add the possibility to create particle systems - shouldn't be too hard using block groups

remove on BlockGroups

BlockGroup#removeChild is not implemented :)

Fixing this would allow us to have dynamic tiled maps and other interesting things.

TMX blocks should be BlockGroups

The map generated from TMX files should be a BlockGroup: we don't want to draw the whole map tile by tile, just with a single drawElements call.

add wiki doc

Add some documentation/examples on the wiki for the project

publish test files

The test files should be public, perhaps in the same gh_pages as the doc

Input Samples

Could you possibly make some samples which demonstrate IO?
Ideally a full suite would be neat, but I feel a simple up/down/left/right would really help.
Thanks,
Dean.

publish documentation

While anyone can recreate the documentation, they need a Java VM + jsdoc to build it. It would be nice to have the docs uploaded to a github page for the project.

This could also include the same examples in the html directory.

label blocks

Needed for several things, like in-game menus, etc.

First attempt on 14e51c8. At first I thought on implementing bitmap font support, and while we still need that, for labels that will not be updated too frequently, we can take advantage of the canvas font rendering mechanism and use that for the texture of a block. It turned out to be very simple.

Actually, we could use the canvas for more complex "vector"-like rendering and then use that texture in the webgl environment. Might be worth the investigation.

CORS support

textures loaded from external sites are not supported and they should: it is a very common pattern to put assets in a CDN like google storage (or s3 once they add support for CORS).

the asset loader should also detect if the path is absolute or relative, if it's relative, it should use the basePath (defaults to "") otherwise just the path, but add the CORS headers (origin) to the ajax request

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.