Skip to content

Instantly share code, notes, and snippets.

View fernandojsg's full-sized avatar

Fernando Serrano fernandojsg

View GitHub Profile
@fernandojsg
fernandojsg / convert_pdf.py
Created October 30, 2021 08:32
Libro inglés
import img2pdf
import os
dirname = "."
imgs = []
for i in range(143):
path = os.path.join(dirname, str(i + 1) + ".jpg")
if os.path.isdir(path):
continue
imgs.append(path)
@fernandojsg
fernandojsg / index.html
Created April 4, 2021 12:19
Spikeball three.js r5
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<title>WebGL NFT</title>
<meta
name="viewport"
content="width=device-width, user-scalable=no, minimum-scale=1.0, maximum-scale=1.0"
/>
<meta property="og:image" content="spikes.gif" />
{
"ECSY System": {
"scope": "javascript",
"prefix": "sys",
"body": [
"export class ${1:SystemName} extends System {",
" execute(delta, time) {",
" const ${2:entities} = this.queries.${2:entities}.results;",
"",
" for (let i = 0; i < ${2:entities}.length; i++) {"
@fernandojsg
fernandojsg / ecsy-devtools.js
Created November 7, 2019 10:49
ECSY devtools
setInterval(() => window.dispatchEvent(new CustomEvent('refreshData', { 'detail':
{
"world": {
"enabled": true
},
"lastExecutedSystem": "RendererSystem",
"numEntities": 18,
"systems": [
{
"name": "EnvironmentSystem",
@fernandojsg
fernandojsg / components.js
Last active August 27, 2019 23:39
Ways to create a component
var entity = world.createEntity();
// 0
var component = entity.addComponent(ComponentB);
component.value = 23;
component.other = 'test',
// 1
entity.addComponent(ComponentA);
entity.addComponent(ComponentB, {value: 23, other: 'test'});
@fernandojsg
fernandojsg / custom-elements-demo.html
Last active August 12, 2019 16:53
Immersive custom elements demo
<html>
<head>
<script src="https://rawcdn.githack.com/MozillaReality/immersive-custom-elements/v0.1.0/build/immersive-custom-elements.js"></script>
</head>
<body>
<img-360 src="360-landscape.jpg" width="640" height="360"></img-360>
<video-360 src="myvideo.mp4" width="640" height="360"></video-360>
</body>
</html>
@fernandojsg
fernandojsg / datatypes.js
Created July 31, 2019 15:29
datatypes example
class Vector3 {
constructor(x, y, z) {
this.set(x,y,z);
}
copy(src) {
this.x = src.x;
this.y = src.y;
this.z = src.z;
}
@fernandojsg
fernandojsg / ecsy.code-snippets
Last active June 21, 2019 18:58
ECSY code snippets for VSCode
{
"ECSY System": {
"scope": "javascript",
"prefix": "sys",
"body": [
"export class ${1:SystemName} extends System {",
" init() {",
" return {",
" queries: {",
" ${2:entities}: { components: [${3:Component}] }",
function existsInArray(array, items) {
var all = true;
for (i = 0; i < items.length; i++) {
all &= array.indexOf(items[i]) !== -1;
}
return all;
}
if (!existsInArray(['a', 'c'], ['c'])) {
@fernandojsg
fernandojsg / timer.js
Last active April 5, 2018 15:53
Timing
//-----------------------------------------------------------------------------
// Loop measuring delta and total time with perf.now()
//-----------------------------------------------------------------------------
var prevTime = performance.now();
var total = 0;
for (var i=0;i< 1000; i++) {
var newTime = performance.now();
var delta = newTime - prevTime;
total += delta;
prevTime = newTime;