1.0.0 • Published 6 months ago

mio-player v1.0.0

Weekly downloads
-
License
Apache-2.0
Repository
-
Last release
6 months ago

mio-player

Player for mio files. Files are loaded using the mio-loader package.

Documentation upcoming.

Usage

Rough example of usage:

const mioData = ...;

const canvas = document.getElementById('canvas_game');
const context = canvas.getContext('2d');

document.addEventListener('mousemove', handleMouseMove, false);
canvas.addEventListener('mousedown', handleMouseDown, false);
document.addEventListener('mouseup', handleMouseUp, false);

canvas.addEventListener('touchstart', handleTouchStart, false);
document.addEventListener('touchend', handleTouchEnd, false);

function handleMouseMove(event) {
	if (typeof canvas !== 'undefined') {
		mioPlayer.setStylusPosition(event.clientX, event.clientY);
	}
}

function handleMouseDown(event) {
	if (event.button === 0) {
		mioPlayer.touchScreen();
	}
}

function handleMouseUp(event) {
	if (event.button === 0) {
		mioPlayer.withdrawTouchFromScreen();
	}
}

function handleTouchStart(event) {
	if (typeof canvas !== 'undefined') {
		let touch = event.touches[0] || event.changedTouches[0];
		mioPlayer.setStylusPosition(touch.clientX, touch.clientY);
	}
	mioPlayer.touchScreen();
}

function handleTouchEnd() {
	mioPlayer.withdrawTouchFromScreen();
}

const mioPlayer = new window.Mio.Player(canvas, document);

const loadSound = (name) => {
	let audio = new Audio('audio/' + name + '.ogg');
	audio.volume = 1;
	return audio;
};

let winSounds = [loadSound('win1'), loadSound('win2')];
let loseSounds = [loadSound('lose1'), loadSound('lose2')];

let sounds = [];
mioPlayer.soundNames.forEach(name => {
	let audio = loadSound(name);
	sounds.push(audio);
});

mioPlayer.sounds = sounds;
mioPlayer.winSounds = winSounds;
mioPlayer.loseSounds = loseSounds;

let fontBitmap = new Image();
fontBitmap.src = 'images/miofont.png';

mioPlayer.fontBitmap = fontBitmap;

function windowSize(window) {
	return [window.innerWidth, window.innerHeight];
}

function windowScale(window) {
	let [width, height] = windowSize(window);
	return Math.min(width / Mio.ORIGINAL_CANVAS_WIDTH, height / Mio.ORIGINAL_CANVAS_HEIGHT);
}

function handleWindowResize(event) {
	scale = windowScale(window);
	mioPlayer.scaleCanvas(scale);
	if (mioData == null) {
		context.drawImage(intro, 0, 0);
	}
}

window.addEventListener('resize', handleWindowResize, false)

mioPlayer.loadAndStart(mioData);
1.0.0

6 months ago

1.0.0-beta.1

6 months ago

0.6.2

8 months ago

0.4.1-beta.4

2 years ago

0.4.1-beta.3

2 years ago

0.4.1-beta.2

2 years ago

0.4.1-beta.1

2 years ago

0.4.2-beta.2

2 years ago

0.4.0-beta.2

2 years ago

0.5.0-beta.1

2 years ago

0.5.4

2 years ago

0.5.3

2 years ago

0.5.0

2 years ago

0.4.1

2 years ago

0.4.0

2 years ago

0.6.1

1 year ago

0.5.2

2 years ago

0.6.0

2 years ago

0.5.1

2 years ago

0.4.0-beta.1

2 years ago

0.3.0

2 years ago

0.3.0-beta.5

2 years ago

0.3.0-beta.4

2 years ago

0.3.0-beta.3

2 years ago

0.3.0-beta.2

2 years ago

0.3.0-beta.1

2 years ago

0.2.0

2 years ago

0.1.2

2 years ago

0.1.1

2 years ago

0.1.0

2 years ago