Skip to content

Instantly share code, notes, and snippets.

View grifdail's full-sized avatar

Julien Berthou grifdail

View GitHub Profile
@grifdail
grifdail / Vector.js
Created October 17, 2013 15:36
Vector Manipulation in JS made easy
function Vector (x,y) {
this.x = x;
this.y = y;
}
Vector.prototype.length = function() {
return Math.sqrt(this.x*this.x + this.y*this.y);
};
Vector.prototype.add = function(vector) {
@grifdail
grifdail / Color.js
Created October 17, 2013 15:39
Colors are Object too !
function Color (red,green,blue,alpha) {
this.red = red;
this.blue = blue;
this.green = green;
this.alpha = (alpha || 1);
}
Color.prototype.toString = function() {
return "rgba("+Math.floor(this.red) +
"," + Math.floor(this.green) +
@grifdail
grifdail / Pool.js
Created October 17, 2013 15:41
Everybody love Object pool !
function Pool (size, entity, params) {
"use strict";
this.item = [];
this.dead = [];
var that = this;
this.forceIndex = 0;
for (var i = size - 1; i >= 0; i--) {
var newItem = new entity(params);
@grifdail
grifdail / An-Anonymous-Pen.markdown
Last active December 27, 2015 16:29
Color Changing PinkiePie !

Using canvas, you can change the color of an image !

@grifdail
grifdail / multiexport.js
Last active December 28, 2015 12:39
multi exportCompatibility with RequireJS, NodeJS & vanilla JS !
(function() {
"use strict";
//Mon Code
/*********************************************************\
MULTI EXPORT
\*********************************************************/
if (typeof exports === 'object') {
@grifdail
grifdail / server.js
Created November 18, 2013 16:36
micro file server for node & expressJS
var express = require('express');
var app = express();
app.use("/",express.static(__dirname + '/'));
app.listen(8080);
@grifdail
grifdail / Event.js
Created December 12, 2013 17:29
Event.js
(function() {
"use strict";
var addEventCapabilities = function (object) {
object = object || {};
object.listenersFor = {};
object.listenersCount = 0;
object.specialEmiter = {};
(function() {
"use strict";
var characters = "abcdefghijklmnopqrstuvwxyz?!.:,-<>";
var numbers = "0123456789"
var sizeChar = 128;
var kerningDefault = {
"a": 25,
"b": 25,
"c": 25,
"d": 24,
@grifdail
grifdail / callbackToPromise.js
Last active January 3, 2016 00:39
callbackToPromise
function callbackToPromise(callback) {
return function() {
var arg = arguments
return new Promise(function(succed, reject) {
arg.push(function(err, result) {
if (err) return reject(err);//Si il y a eu une erreure, on rejete la promesse.
if(arguments.length>2) { //Si il y a plus de 2 valeur retourné au callback, on renvoie un array.
result = arguments.splice(0,1);
}
succed(result);
@grifdail
grifdail / getUserMediaAsPromise.js
Created January 16, 2014 13:48
getUserMediaAsPromise.js
function getVideoStream(succes, reject) {
navigator.getMedia = (navigator.getUserMedia || navigator.webkitGetUserMedia ||
navigator.mozGetUserMedia || navigator.msGetUserMedia);
if (navigator.getMedia) {
navigator.getMedia({video: true, audio: true}, function(stream) {
var video = document.createElement("video");
video.src = window.URL.createObjectURL(stream);
video.autoplay = true;
succes(video);