Skip to content

Instantly share code, notes, and snippets.

View takumifukasawa's full-sized avatar

takumifukasawa takumifukasawa

View GitHub Profile
@takumifukasawa
takumifukasawa / FunctionWorker.js
Created December 11, 2021 15:29
【Javascript】Inline Worker
/**
* usage
*
* const worker = new FunctionWorker(() => {
* self.onmessage = (e) => {
* postMessage(e);
* }
* });
*
*/
@takumifukasawa
takumifukasawa / python-server.command
Last active August 18, 2021 13:55
Start Python Simple Server works on Python2 and Python3(for MacOS)
#!/bin/sh
set -e
PYTHON_MAJOR_VERSION=`python -c 'import sys; print(sys.version_info.major)'`
ABSPATH=$(cd "$(dirname "$0")"; pwd -P)
if [ "$PYTHON_MAJOR_VERSION" = "3" ]; then
cd $ABSPATH
python -m http.server 8000
@takumifukasawa
takumifukasawa / CustomLitShader.cs
Last active February 25, 2023 16:28
Examples of Custom URP Lit Shader and Custom Shader GUI Script: Unity2019.4.21f, URP7.8.3
using System;
using UnityEngine;
using UnityEditor;
using UnityEditor.Rendering.Universal.ShaderGUI;
class CustomLitShader : BaseShaderGUI
{
// Properties
private LitGUI.LitProperties litProperties;
@takumifukasawa
takumifukasawa / minify-images.js
Created March 5, 2021 09:17
node: minify [jpg, png] images
// ------------------------------------------------------------------------------
//
// ディレクトリ以下の画像、もしくは単一ファイルを一括圧縮するバッチスクリプト
//
// usage:
// $ node minify-images.js [src_path]
//
// ------------------------------------------------------------------------------
const fs = require("fs");
@takumifukasawa
takumifukasawa / ticker.ts
Created November 4, 2020 14:07
typescript: singleton of ticker.
type Func = (time: number, deltaTime?: number) => void;
/**
* rafを管理するクラス。実質、singletonとして使う
*
* @class Ticker
*/
class Ticker {
private funcs: Func[];
@takumifukasawa
takumifukasawa / reflow.ts
Created November 4, 2020 14:06
typescript: reflow dom
/**
* 強制的にdomのreflowを発火させる
*
* @export
* @param {HTMLElement} dom
*/
export function reflow(dom: HTMLElement) {
// eslint-disable-next-line no-void
void dom.offsetWidth;
}
@takumifukasawa
takumifukasawa / easingFunctions.ts
Created November 4, 2020 14:05
easing function modules
/* eslint-disable no-plusplus */
// ref:
// https://gist.github.com/gre/1650294#gistcomment-3141432
// no easing, no acceleration
export const linear = (t: number) => {
return t;
};
// accelerating from zero velocity
export const easeInQuad = (t: number) => {
@takumifukasawa
takumifukasawa / howlerAudioActions.ts
Last active November 4, 2020 14:05
howler: manage audio for play, load, cache...
import { Howl, HowlOptions } from "howler";
import { map } from "lodash";
const caches = new Map<string | string[], Howl>();
/**
* howlオブジェクトを生成してキャッシュする。。キャッシュの中にあったらキャッシュを返す
*
* @param {HowlOptions} options
* @returns {(Howl | null)}
@takumifukasawa
takumifukasawa / resizeImage.ts
Created November 4, 2020 14:01
typescript: resize image
/**
* 画像をリサイズする関数
*
* @export
* @param {string} imageSrc
* @param {(number | null)} [resizeWidth]
* @param {(number | null)} [resizeHeight]
* @returns {Promise<string>}
*/
export default function resizeImage(
@takumifukasawa
takumifukasawa / getImageSize.ts
Created November 4, 2020 14:00
typescript: get image rect size
/**
* srcから縦横幅を取得する
*
* @export
* @param {string} src
* @returns {Promise<{ width: number; height: number }>}
*/
export default async function getImageSize(
src: string
): Promise<{ width: number; height: number }> {