Lucas Kent e39465ad2f Changes to be committed:
new file:   Files/flashplayer_32_sa.exe
	new file:   favicon.ico
	new file:   globe.gif
	new file:   imgs/download.png
	new file:   imgs/zuck.jpg
	new file:   index.html
	new file:   other.ico
	new file:   script.js
	new file:   site.webmanifest
	new file:   sitemap.html
	new file:   styles/backround.css
	new file:   styles/border.css
	new file:   styles/fonts/Titillium_Web/OFL.txt
	new file:   styles/fonts/Titillium_Web/TitilliumWeb-Black.ttf
	new file:   styles/fonts/Titillium_Web/TitilliumWeb-Bold.ttf
	new file:   styles/fonts/Titillium_Web/TitilliumWeb-BoldItalic.ttf
	new file:   styles/fonts/Titillium_Web/TitilliumWeb-ExtraLight.ttf
	new file:   styles/fonts/Titillium_Web/TitilliumWeb-ExtraLightItalic.ttf
	new file:   styles/fonts/Titillium_Web/TitilliumWeb-Italic.ttf
	new file:   styles/fonts/Titillium_Web/TitilliumWeb-Light.ttf
	new file:   styles/fonts/Titillium_Web/TitilliumWeb-LightItalic.ttf
	new file:   styles/fonts/Titillium_Web/TitilliumWeb-Regular.ttf
	new file:   styles/fonts/Titillium_Web/TitilliumWeb-SemiBold.ttf
	new file:   styles/fonts/Titillium_Web/TitilliumWeb-SemiBoldItalic.ttf
	new file:   styles/fonts/webfontkit-20221027-163353/generator_config.txt
	new file:   styles/fonts/webfontkit-20221027-163353/specimen_files/grid_12-825-55-15.css
	new file:   styles/fonts/webfontkit-20221027-163353/specimen_files/specimen_stylesheet.css
	new file:   styles/fonts/webfontkit-20221027-163353/stylesheet.css
	new file:   styles/fonts/webfontkit-20221027-163353/titilliumweb-extralight-demo.html
	new file:   styles/fonts/webfontkit-20221027-163353/titilliumweb-extralight-webfont.woff
	new file:   styles/fonts/webfontkit-20221027-163353/titilliumweb-extralight-webfont.woff2
	new file:   styles/fonts/webfontkit-20221027-165950/generator_config.txt
	new file:   styles/fonts/webfontkit-20221027-165950/specimen_files/grid_12-825-55-15.css
	new file:   styles/fonts/webfontkit-20221027-165950/specimen_files/specimen_stylesheet.css
	new file:   styles/fonts/webfontkit-20221027-165950/stylesheet.css
	new file:   styles/fonts/webfontkit-20221027-165950/titilliumweb-bold-demo.html
	new file:   styles/fonts/webfontkit-20221027-165950/titilliumweb-bold-webfont.woff
	new file:   styles/fonts/webfontkit-20221027-165950/titilliumweb-bold-webfont.woff2
	new file:   styles/style.css
	new file:   tools/2048/.gitignore
	new file:   tools/2048/.jshintrc
	new file:   tools/2048/CONTRIBUTING.md
	new file:   tools/2048/LICENSE.txt
	new file:   tools/2048/README.md
	new file:   tools/2048/Rakefile
	new file:   tools/2048/favicon.ico
	new file:   tools/2048/index.html
	new file:   tools/2048/js/animframe_polyfill.js
	new file:   tools/2048/js/application.js
	new file:   tools/2048/js/bind_polyfill.js
	new file:   tools/2048/js/classlist_polyfill.js
	new file:   tools/2048/js/game_manager.js
	new file:   tools/2048/js/grid.js
	new file:   tools/2048/js/html_actuator.js
	new file:   tools/2048/js/keyboard_input_manager.js
	new file:   tools/2048/js/local_storage_manager.js
	new file:   tools/2048/js/tile.js
    new file:   tools/2048/meta/apple-touch-icon.png
	new file:   tools/webretro/cores/neocd_libretro.js
	new file:   tools/webretro/cores/neocd_libretro.wasm
	new file:   tools/webretro/cores/nestopia_libretro.js
	new file:   tools/webretro/cores/nestopia_libretro.wasm
	new file:   tools/webretro/cores/o2em_libretro.js
	new file:   tools/webretro/cores/o2em_libretro.wasm
	new file:   tools/webretro/cores/opera_libretro.js
	new file:   tools/webretro/cores/opera_libretro.wasm
2022-11-02 08:40:01 -04:00

95 lines
2.2 KiB
JavaScript

$.textLine = function( opt ) {
var textLength = opt.text.length,
size = 5;
for( var i = 0; i < textLength; i++ ) {
var letter = $.definitions.letters[ ( opt.text.charAt( i ) ) ] || $.definitions.letters[ 'unknown' ];
for( var y = 0; y < size; y++ ) {
for( var x = 0; x < size; x++ ) {
if( letter[ y ][ x ] === 1 ) {
opt.ctx.rect( opt.x + ( x * opt.scale ) + ( ( size * opt.scale ) + opt.hspacing ) * i, opt.y + y * opt.scale, opt.scale, opt.scale );
}
}
}
}
};
$.text = function( opt ) {
var size = 5,
letterSize = size * opt.scale,
lines = opt.text.split('\n'),
linesCopy = lines.slice( 0 ),
lineCount = lines.length,
longestLine = linesCopy.sort( function ( a, b ) { return b.length - a.length; } )[ 0 ],
textWidth = ( longestLine.length * letterSize ) + ( ( longestLine.length - 1 ) * opt.hspacing ),
textHeight = ( lineCount * letterSize ) + ( ( lineCount - 1 ) * opt.vspacing );
var sx = opt.x,
sy = opt.y,
ex = opt.x + textWidth,
ey = opt.y + textHeight;
if( opt.halign == 'center' ) {
sx = opt.x - textWidth / 2;
ex = opt.x + textWidth / 2;
} else if( opt.halign == 'right' ) {
sx = opt.x - textWidth;
ex = opt.x;
}
if( opt.valign == 'center' ) {
sy = opt.y - textHeight / 2;
ey = opt.y + textHeight / 2;
} else if( opt.valign == 'bottom' ) {
sy = opt.y - textHeight;
ey = opt.y;
}
var cx = sx + textWidth / 2,
cy = sy + textHeight / 2;
if( opt.render ) {
for( var i = 0; i < lineCount; i++ ) {
var line = lines[ i ],
lineWidth = ( line.length * letterSize ) + ( ( line.length - 1 ) * opt.hspacing ),
x = opt.x,
y = opt.y + ( letterSize + opt.vspacing ) * i;
if( opt.halign == 'center' ) {
x = opt.x - lineWidth / 2;
} else if( opt.halign == 'right' ) {
x = opt.x - lineWidth;
}
if( opt.valign == 'center' ) {
y = y - textHeight / 2;
} else if( opt.valign == 'bottom' ) {
y = y - textHeight;
}
if( opt.snap ) {
x = Math.floor( x );
y = Math.floor( y );
}
$.textLine( {
ctx: opt.ctx,
x: x,
y: y,
text: line,
hspacing: opt.hspacing,
scale: opt.scale
} );
}
}
return {
sx: sx,
sy: sy,
cx: cx,
cy: cy,
ex: ex,
ey: ey,
width: textWidth,
height: textHeight
}
};