Support quickAppend 3*4

This commit is contained in:
ckcz123 2021-07-22 13:09:25 +08:00
parent 30f48b0b68
commit a67fa11259

View File

@ -1013,24 +1013,39 @@ editor_datapanel_wrapper = function (editor) {
return printe("只有长宽都是32的倍数的道具图才可以快速导入");
}
} else {
if (sw != 128 || sh != 4 * ysize) {
return printe("只有 4*4 的素材图片才可以快速导入!");
if ((sw != 128 && sw != 96) || sh != 4 * ysize) {
return printe("只有 3*4 或 4*4 的素材图片才可以快速导入!");
}
}
sw = sw / 32;
sh = sh / ysize;
var dt = editor.dom.appendSpriteCtx.getImageData(0, 0, editor.dom.appendSprite.width, editor.dom.appendSprite.height);
var appendSize = value == 'items' ? (4 * sw - 1) : 3;
var appendSize = value == 'items' ? (sw * sh - 1) : 3;
editor.dom.appendSprite.style.height = (editor.dom.appendSprite.height = (editor.dom.appendSprite.height + appendSize * ysize)) + "px";
editor.dom.appendSpriteCtx.putImageData(dt, 0, 0);
if (editor.dom.appendSprite.width == 32) { // 1帧道具
for (var i = 0; i < 4 * sw; ++i) {
editor.dom.appendSpriteCtx.drawImage(editor.dom.appendSourceCtx.canvas, 32 * (i % sw), 32 * parseInt(i / sw), 32, 32, 0, editor.dom.appendSprite.height - (sw * 4 - i) * ysize, 32, 32);
for (var i = 0; i < sw * sh; ++i) {
editor.dom.appendSpriteCtx.drawImage(editor.dom.appendSourceCtx.canvas, 32 * (i % sw), 32 * parseInt(i / sw), 32, 32, 0, editor.dom.appendSprite.height - (sw * sh - i) * ysize, 32, 32);
}
} else if (editor.dom.appendSprite.width == 64) { // 两帧
editor.dom.appendSpriteCtx.drawImage(editor.dom.appendSourceCtx.canvas, 32, 0, 64, 4 * ysize, 0, editor.dom.appendSprite.height - 4 * ysize, 64, 4 * ysize);
if (sw == 3) {
// 3*4的规格使用13帧
editor.dom.appendSpriteCtx.drawImage(editor.dom.appendSourceCtx.canvas, 0, 0, 32, 4 * ysize, 0, editor.dom.appendSprite.height - 4 * ysize, 32, 4 * ysize);
editor.dom.appendSpriteCtx.drawImage(editor.dom.appendSourceCtx.canvas, 64, 0, 32, 4 * ysize, 32, editor.dom.appendSprite.height - 4 * ysize, 32, 4 * ysize);
} else {
// 4*4的规格使用23帧
editor.dom.appendSpriteCtx.drawImage(editor.dom.appendSourceCtx.canvas, 32, 0, 64, 4 * ysize, 0, editor.dom.appendSprite.height - 4 * ysize, 64, 4 * ysize);
}
} else { // 四帧
editor.dom.appendSpriteCtx.drawImage(editor.dom.appendSourceCtx.canvas, 0, 0, 128, 4 * ysize, 0, editor.dom.appendSprite.height - 4 * ysize, 128, 4 * ysize);
if (sw == 3) {
// 3*4的规格使用2123帧
editor.dom.appendSpriteCtx.drawImage(editor.dom.appendSourceCtx.canvas, 32, 0, 32, 4 * ysize, 0, editor.dom.appendSprite.height - 4 * ysize, 32, 4 * ysize);
editor.dom.appendSpriteCtx.drawImage(editor.dom.appendSourceCtx.canvas, 0, 0, 96, 4 * ysize, 32, editor.dom.appendSprite.height - 4 * ysize, 96, 4 * ysize);
} else {
// 4*4的规格使用1234帧
editor.dom.appendSpriteCtx.drawImage(editor.dom.appendSourceCtx.canvas, 0, 0, 128, 4 * ysize, 0, editor.dom.appendSprite.height - 4 * ysize, 128, 4 * ysize);
}
}
dt = editor.dom.appendSpriteCtx.getImageData(0, 0, editor.dom.appendSprite.width, editor.dom.appendSprite.height);