Skip to content
Snippets Groups Projects
Commit a879c3ea authored by Richard Torenvliet's avatar Richard Torenvliet
Browse files

Add docker support and assets

parent 41799888
Branches docker
No related tags found
No related merge requests found
Showing
with 172 additions and 23 deletions
{
"directory": "vendor",
"json": "bower.json",
"interactive": false
}
FROM node:latest FROM ubuntu:14.10
RUN \ RUN apt-get update && apt-get install -y nginx git supervisor nodejs npm firefox
apt-get update && \ RUN ln -s /usr/bin/nodejs /usr/bin/node
apt-get install -y ruby ruby-dev supervisor nginx && \ RUN npm -g install grunt-cli karma bower less
rm -rf /var/lib/apt/lists/*
RUN npm update -g npm
RUN npm -g install grunt-cli karma bower
WORKDIR /app WORKDIR /app
ADD . /app
VOLUME ./src:/app/src/
ADD package.json /app/package.json
RUN npm install RUN npm install
ADD bower.json /app/bower.json
ADD .bowerrc /app/.bowerrc
RUN bower install --config.interactive=false --allow-root RUN bower install --config.interactive=false --allow-root
ADD . /app
CMD etc/bootstrap.sh CMD etc/bootstrap.sh
...@@ -474,7 +474,8 @@ module.exports = function ( grunt ) { ...@@ -474,7 +474,8 @@ module.exports = function ( grunt ) {
* plugin should auto-detect. * plugin should auto-detect.
*/ */
options: { options: {
livereload: true livereload: true,
interval: 1000
}, },
/** /**
...@@ -497,7 +498,7 @@ module.exports = function ( grunt ) { ...@@ -497,7 +498,7 @@ module.exports = function ( grunt ) {
files: [ files: [
'<%= app_files.js %>' '<%= app_files.js %>'
], ],
tasks: [ 'jshint:src', 'karma:unit:run', 'copy:build_appjs' ] tasks: [ 'jshint:src', 'copy:build_appjs' ]
}, },
/** /**
...@@ -508,7 +509,7 @@ module.exports = function ( grunt ) { ...@@ -508,7 +509,7 @@ module.exports = function ( grunt ) {
files: [ files: [
'<%= app_files.coffee %>' '<%= app_files.coffee %>'
], ],
tasks: [ 'coffeelint:src', 'coffee:source', 'karma:unit:run', 'copy:build_appjs' ] tasks: [ 'coffeelint:src', 'coffee:source', 'copy:build_appjs' ]
}, },
/** /**
...@@ -557,7 +558,7 @@ module.exports = function ( grunt ) { ...@@ -557,7 +558,7 @@ module.exports = function ( grunt ) {
files: [ files: [
'<%= app_files.jsunit %>' '<%= app_files.jsunit %>'
], ],
tasks: [ 'jshint:test', 'karma:unit:run' ], tasks: [ 'jshint:test' ],
options: { options: {
livereload: false livereload: false
} }
...@@ -571,7 +572,7 @@ module.exports = function ( grunt ) { ...@@ -571,7 +572,7 @@ module.exports = function ( grunt ) {
files: [ files: [
'<%= app_files.coffeeunit %>' '<%= app_files.coffeeunit %>'
], ],
tasks: [ 'coffeelint:test', 'karma:unit:run' ], tasks: [ 'coffeelint:test' ],
options: { options: {
livereload: false livereload: false
} }
...@@ -589,7 +590,7 @@ module.exports = function ( grunt ) { ...@@ -589,7 +590,7 @@ module.exports = function ( grunt ) {
* before watching for changes. * before watching for changes.
*/ */
grunt.renameTask( 'watch', 'delta' ); grunt.renameTask( 'watch', 'delta' );
grunt.registerTask( 'watch', [ 'build', 'karma:unit', 'delta' ] ); grunt.registerTask( 'watch', [ 'build', 'delta' ] );
/** /**
* The default task is to build and compile. * The default task is to build and compile.
...@@ -602,9 +603,7 @@ module.exports = function ( grunt ) { ...@@ -602,9 +603,7 @@ module.exports = function ( grunt ) {
grunt.registerTask( 'build', [ grunt.registerTask( 'build', [
'clean', 'html2js', 'jshint', 'coffeelint', 'coffee', 'less:build', 'clean', 'html2js', 'jshint', 'coffeelint', 'coffee', 'less:build',
'concat:build_css', 'copy:build_app_assets', 'copy:build_vendor_assets', 'concat:build_css', 'copy:build_app_assets', 'copy:build_vendor_assets',
'copy:build_appjs', 'copy:build_vendorjs', 'copy:build_vendorcss', 'index:build', 'karmaconfig', 'copy:build_appjs', 'copy:build_vendorjs', 'copy:build_vendorcss', 'index:build' ]);
'karma:continuous'
]);
/** /**
* The `compile` task gets your app ready for deployment by concatenating and * The `compile` task gets your app ready for deployment by concatenating and
......
...@@ -8,3 +8,11 @@ redirect_stderr=true ...@@ -8,3 +8,11 @@ redirect_stderr=true
stdout_logfile=/dev/stdout stdout_logfile=/dev/stdout
stdout_logfile_maxbytes=0 stdout_logfile_maxbytes=0
command=/usr/sbin/nginx command=/usr/sbin/nginx
[program:watch]
autostart=true
autorestart=true
stdout_logfile=/dev/stdout
stdout_logfile_maxbytes=0
directory=/app/
command=grunt watch
.PHONY: build
ARGUMENTS=
ARGUMENTS+= -v ./etc/:/app/etc/
DIR=$(shell pwd)
build: build:
docker build -t pixi-game . docker build -t pixi-game .
run: run:
docker run --rm -ti -p 8282:80 pixi-game docker run --rm -ti -p 8282:80 -v $(DIR)/src/:/app/src/ pixi-game
# inside docker # inside docker
install: install:
......
...@@ -6,7 +6,7 @@ angular.module( 'Interactive', [ ...@@ -6,7 +6,7 @@ angular.module( 'Interactive', [
'ui.router' 'ui.router'
]) ])
.config( function ( $stateProvider, $urlRouterProvider ) { .config(function ($stateProvider, $urlRouterProvider) {
$urlRouterProvider.otherwise( '/index' ); $urlRouterProvider.otherwise( '/index' );
}) })
......
<h1>Game</h1> <h1>Game</h1>
<canvas pixi="stage" pixi-render="pixiRender" <canvas pixi="stage" pixi-render="pixiRender" pixi-transparent="false" width="900" height="400">
pixi-transparent="false" width="900" height="400">
</canvas> </canvas>
angular.module('Interactive.pixi', [
])
.directive('pixi', function($parse) {
return {
restrict: 'A',
scope: true,
controller: function($scope, $element, $attrs, $document) {
// init the first element
$element = $element[0];
var width = $element.width || 800;
var height = $element.height || 400;
// TODO: set color from options
var stage = new PIXI.Stage();
var renderer = PIXI.autoDetectRenderer(width, height,
{view: $element});
renderer.view.style.height = window.innerHeight;
renderer.view.style.width = window.innerWidth;
renderer.view.style.display = 'block';
var bg_texture = PIXI.Texture.fromImage('/assets/images/mario_bg.png');
var bg = new PIXI.TilingSprite(bg_texture, width, height - 20);
bg.position.x = 0;
bg.position.y = 0;
bg.tilePosition.x = 0;
bg.tilePosition.y = 0;
//, TODO calculate scaling
stage.addChild(bg);
requestAnimFrame(animate);
function animate() {
bg.tilePosition.x -= 0.5;
requestAnimFrame(animate);
renderer.render(stage);
}
}
};
})
;
//var init = function(rendererType, transparent, antialias, element) {
// if (!stage) {
// // create a new instance of a pixi stage
// stage = new PIXI.Stage(0x66FF99);
// stageAttr.assign($scope, stage);
// }
// switch(rendererType) {
// case 'canvas':
// renderer = new PIXI.CanvasRenderer(width, height, $element, transparent);
// break;
// case 'webgl':
// try {
// renderer = new PIXI.WebGLRenderer(width, height, $element, transparent, antialias);
// } catch (e) {
// $scope.$emit('pixi.webgl.init.exception', e);
// return;
// }
// break;
// default:
// renderer = new PIXI.autoDetectRenderer(width, height, {view: $element}, transparent, antialias);
// }
// return renderer;
//};
//init(renderType, transparent, antialias, $element);
//this.render = function render(force) {
// var doRender = true;
// if (renderFunc) {
// doRender = renderFunc(stage, this.renderer);
// }
// // render the stage
// if (force || doRender !== false) {
// this.renderer.render(stage);
// }
//};
//// create a texture from an image path
//var texture = PIXI.Texture.fromImage("/assets/bunny.png");
//// create a new Sprite using the texture
//var bunny = new PIXI.Sprite(texture);
//// center the sprites anchor point
//bunny.anchor.x = 0.5;
//bunny.anchor.y = 0.5;
//// move the sprite t the center of the screen
//bunny.position.x = width / 2;
//bunny.position.y = height / 2;
//function renderLoop() {
// self.render();
// bunny.rotation += 0.1;
// requestAnimFrame( renderLoop );
//}
//// add the renderer view element to the DOM
////document.body.appendChild(renderer.view);
//this.getStage = function() {
// return stage;
//};
//this.getRenderer = function() {
// return this.renderer;
//};
//this.getContext = function() {
// return this.renderer.gl ? this.renderer.gl : this.renderer.context;
//};
//this.getStage().addChild(bunny);
//requestAnimFrame( renderLoop );
////($window).resize(function() {
//// renderer.resize(element.width(), element.height());
////});
//}
//};
File added
File added
File added
src/assets/__MACOSX/TapDance_game_illu/Backgrounds - JPG/._Background_tapdance01.jpg

120 B

src/assets/__MACOSX/TapDance_game_illu/Backgrounds - JPG/._Background_tapdance02.jpg

120 B

src/assets/__MACOSX/TapDance_game_illu/Backgrounds - JPG/._Background_tapdance03.jpg

120 B

src/assets/__MACOSX/TapDance_game_illu/Backgrounds - JPG/._Background_tapdance04.jpg

120 B

src/assets/__MACOSX/TapDance_game_illu/Backgrounds - JPG/._Background_tapdance05.jpg

120 B

src/assets/__MACOSX/TapDance_game_illu/Backgrounds - JPG/._Background_tapdance06.jpg

120 B

src/assets/__MACOSX/TapDance_game_illu/Backgrounds - JPG/._Background_tapdance07.jpg

120 B

src/assets/__MACOSX/TapDance_game_illu/Backgrounds - JPG/._Background_tapdance08.jpg

120 B

src/assets/__MACOSX/TapDance_game_illu/Backgrounds - JPG/._Background_tapdance09.jpg

120 B

0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment