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
95 lines
2.2 KiB
JavaScript
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
|
|
}
|
|
}; |