External dependencies added, and Gulp build process configured. That only cost me half a soul...
parent
82a362a54b
commit
934859d92b
@ -0,0 +1,2 @@
|
||||
/node_modules/
|
||||
/npm-debug.log
|
@ -0,0 +1,13 @@
|
||||
# TODO list
|
||||
|
||||
## Behavioural bugs
|
||||
|
||||
* Ensure that object association is not lost when a Timer is fired for an object.
|
||||
|
||||
## Visual bugs
|
||||
|
||||
* Make the first frame draw correctly, without requiring a `return true` from the onStep event.
|
||||
|
||||
## Ideas
|
||||
|
||||
None.
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -0,0 +1 @@
|
||||
(function(){$(function(){var e,i;return i=new ResourceManager("gemswap/assets"),e=new Engine(i),window.debug_engine=e,i.addImages(["images/cursor.png","images/diamond.png","images/diamond_inverted.png","images/diamond_shimmer.png","images/yellow.png","images/yellow_inverted.png","images/yellow_shimmer.png","images/blue.png","images/blue_inverted.png","images/blue_shimmer.png"]),i.prepare(),i.preload(null,function(){var i,n,t,r,a,s,m;for(e.addCanvas($("#gamecanvas")),t=e.createScene("main"),e.createSprite("cursor","images/cursor.png"),e.createSprite("diamond","images/diamond.png"),e.createSprite("diamond_inverted","images/diamond_inverted.png"),e.createSprite("diamond_shimmer","images/diamond_shimmer.png"),e.createSprite("yellow","images/yellow.png"),e.createSprite("yellow_inverted","images/yellow_inverted.png"),e.createSprite("yellow_shimmer","images/yellow_shimmer.png"),e.createSprite("blue","images/blue.png"),e.createSprite("blue_inverted","images/blue_inverted.png"),e.createSprite("blue_shimmer","images/blue_shimmer.png"),i=e.createObject("cursor"),i.sprite=e.getSprite("cursor"),n=e.createObject("diamond"),n.sprite=e.getSprite("diamond"),n.draw_sprite=!1,n.onCreate=function(){return this.fade_value=0,this.shimmer_value=this.engine.ease.circInOut(0,.8,e.random.number(200,350),null,!0,!0),this.gem_type=this.engine.random.pick("diamond","yellow","blue")},n.onStep=function(){return!0},n.onDraw=function(){return this.engine.getSprite(this.gem_type).draw(this.x,this.y),this.engine.getSprite(""+this.gem_type+"_inverted").draw(this.x,this.y,{alpha:this.fade_value}),this.engine.getSprite(""+this.gem_type+"_shimmer").draw(this.x-14,this.y-14,{alpha:this.shimmer_value})},n.onMouseOver=function(){return this.fade_value=this.engine.ease.quadInOut(0,1,10,this.engine.ease.bounceOut(1,0,35)),i=this.engine.getObject("cursor").getInstances()[0],i.x=this.engine.ease.quadInOut(i.x,this.x-9,8),i.y=this.engine.ease.quadInOut(i.y,this.y-9,8)},r=s=10;728>=s;r=s+=80)for(a=m=10;550>=m;a=m+=80)t.createInstance(n,r,a);return i.onStep=function(){return $("#debug").html("Mouse coords: "+this.scene.mouse_x+" / "+this.scene.mouse_y+"<br>Frameskip: "+this.engine.frameskip)},t.createInstance(i,0,0),e.start()})})}).call(this);
|
@ -0,0 +1,99 @@
|
||||
var gulp = require('gulp');
|
||||
var gutil = require('gulp-util');
|
||||
var concat = require('gulp-concat');
|
||||
var uglify = require('gulp-uglify');
|
||||
var rename = require('gulp-rename');
|
||||
var coffee = require('gulp-coffee');
|
||||
var addsrc = require('gulp-add-src');
|
||||
var cache = require('gulp-cached');
|
||||
var remember = require('gulp-remember');
|
||||
var header = require('gulp-header');
|
||||
var footer = require('gulp-footer');
|
||||
|
||||
/* Engine build tasks */
|
||||
engine = {
|
||||
source: "radium/*.coffee",
|
||||
external: ["external/jquery-2.1.1.js", "external/preloadjs-0.4.1.min.js", "external/soundjs-0.5.2.min.js"],
|
||||
target: {
|
||||
path: "compiled",
|
||||
name: "radium.js",
|
||||
minName: "radium.min.js"
|
||||
}
|
||||
}
|
||||
|
||||
gulp.task('dev-engine', function() {
|
||||
return gulp.src(engine.source)
|
||||
.pipe(cache("engine-coffee"))
|
||||
.pipe(coffee({bare: true}).on('error', gutil.log)).on('data', gutil.log)
|
||||
.pipe(remember("engine-coffee"))
|
||||
.pipe(concat("radium.coffee.js"))
|
||||
.pipe(header('(function () {'))
|
||||
.pipe(footer('})();'))
|
||||
.pipe(addsrc(engine.external))
|
||||
.pipe(concat("radium.concat.js"))
|
||||
.pipe(rename(engine.target.name))
|
||||
.pipe(gulp.dest(engine.target.path));
|
||||
});
|
||||
|
||||
gulp.task("prod-engine", ["dev-engine"], function(){
|
||||
return gulp.src(engine.target.path + "/" + engine.target.name)
|
||||
.pipe(uglify())
|
||||
.pipe(rename(engine.target.minName))
|
||||
.pipe(gulp.dest(engine.target.path));
|
||||
});
|
||||
|
||||
/* Sample game build tasks */
|
||||
gemswap = {
|
||||
source: "gemswap/*.coffee",
|
||||
external: "",
|
||||
target: {
|
||||
path: "gemswap",
|
||||
name: "gemswap.js",
|
||||
minName: "gemswap.min.js"
|
||||
}
|
||||
}
|
||||
|
||||
gulp.task('dev-gemswap', function() {
|
||||
return gulp.src(gemswap.source)
|
||||
.pipe(cache("gemswap-coffee"))
|
||||
.pipe(coffee({bare: true}).on('error', gutil.log)).on('data', gutil.log)
|
||||
.pipe(remember("gemswap-coffee"))
|
||||
.pipe(concat("gemswap.coffee.js"))
|
||||
.pipe(header('(function () {'))
|
||||
.pipe(footer('})();'))
|
||||
.pipe(addsrc(gemswap.external))
|
||||
.pipe(concat("gemswap.concat.js"))
|
||||
.pipe(rename(gemswap.target.name))
|
||||
.pipe(gulp.dest(gemswap.target.path));
|
||||
});
|
||||
|
||||
gulp.task("prod-gemswap", ["dev-gemswap"], function(){
|
||||
return gulp.src(gemswap.target.path + "/" + gemswap.target.name)
|
||||
.pipe(uglify())
|
||||
.pipe(rename(gemswap.target.minName))
|
||||
.pipe(gulp.dest(gemswap.target.path));
|
||||
});
|
||||
|
||||
/* Watcher */
|
||||
gulp.task('watch', function () {
|
||||
targets = {
|
||||
"gemswap": gemswap,
|
||||
"engine": engine
|
||||
}
|
||||
|
||||
for(name in targets)
|
||||
{
|
||||
var watcher = gulp.watch(targets[name].source, ['dev-' + name]);
|
||||
watcher.on('change', function (event) {
|
||||
if (event.type === 'deleted')
|
||||
{
|
||||
delete cache.caches[name + '-coffee'][event.path];
|
||||
remember.forget(name + '-coffee', event.path);
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
gulp.task("dev", ["dev-engine", "dev-gemswap"]);
|
||||
gulp.task("prod", ["prod-engine", "prod-gemswap"]);
|
||||
gulp.task("default", ["prod"]);
|
@ -0,0 +1,19 @@
|
||||
{
|
||||
"name": "radium",
|
||||
"description": "A game engine.",
|
||||
"version": "0.0.1",
|
||||
"devDependencies": {
|
||||
"gulp": "3.6.x",
|
||||
"gulp-add-src": "0.1.x",
|
||||
"gulp-coffee": "1.4",
|
||||
"gulp-concat": "2.2.x",
|
||||
"gulp-rename": "1.2.x",
|
||||
"gulp-uglify": "0.3.x",
|
||||
"gulp-util": "2.2.x",
|
||||
"gulp-cached": "0.0.x",
|
||||
"gulp-remember": "0.2.x",
|
||||
"gulp-header": "1.0.x",
|
||||
"gulp-footer": "1.0.x",
|
||||
"coffee-script": "1.7.x"
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue