update tiled sprite draw
This commit is contained in:
parent
e5b1498955
commit
b43b67ecac
@ -1,5 +1,6 @@
|
|||||||
**/.git
|
**/.git
|
||||||
**/node_modules
|
**/node_modules
|
||||||
|
**/dist
|
||||||
|
|
||||||
*.html
|
*.html
|
||||||
*.css
|
*.css
|
||||||
|
@ -104,26 +104,62 @@ export class TiledSprite extends Sprite {
|
|||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// draw single image
|
||||||
context.drawImage(this.image(), this.x, this.y);
|
context.drawImage(this.image(), this.x, this.y);
|
||||||
|
|
||||||
let copyUpByY = Math.ceil(this.y / this.image().height);
|
let copyUpByY = Math.ceil(this.y / this.image().height);
|
||||||
|
let copyUpByX = Math.ceil(this.y / this.image().width);
|
||||||
let copyDownByY = Math.ceil(
|
let copyDownByY = Math.ceil(
|
||||||
(context.canvas.height - this.y - this.image().height) / this.image().height
|
(context.canvas.height - this.y - this.image().height) / this.image().height
|
||||||
);
|
);
|
||||||
|
let copyDownByX = Math.ceil(
|
||||||
|
(context.canvas.width - this.y - this.image().width) / this.image().width
|
||||||
|
);
|
||||||
|
|
||||||
for (let i = 0; i <= copyUpByY; i++) {
|
for (let iy = 0; iy <= copyUpByY; iy++) {
|
||||||
if (copyUpByY === Infinity) {
|
if (copyUpByY === Infinity) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
context.drawImage(this.image(), this.x, this.y - this.image().height * i);
|
for (let ix = 0; ix <= copyUpByX + 1; ix++) {
|
||||||
|
if (copyUpByX === Infinity) {
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
for (let i = 0; i <= copyDownByY; i++) {
|
context.drawImage(
|
||||||
|
this.image(),
|
||||||
|
this.x - this.image().width * ix,
|
||||||
|
this.y - this.image().height * iy
|
||||||
|
);
|
||||||
|
context.drawImage(
|
||||||
|
this.image(),
|
||||||
|
this.x + this.image().width * ix,
|
||||||
|
this.y - this.image().height * iy
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
for (let iy = 0; iy <= copyDownByY; iy++) {
|
||||||
if (copyDownByY === Infinity) {
|
if (copyDownByY === Infinity) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
context.drawImage(this.image(), this.x, this.y + this.image().height * i);
|
for (let ix = 0; ix <= copyUpByX + 1; ix++) {
|
||||||
|
if (copyUpByX === Infinity) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
context.drawImage(
|
||||||
|
this.image(),
|
||||||
|
this.x - this.image().width * ix,
|
||||||
|
this.y + this.image().height * iy
|
||||||
|
);
|
||||||
|
context.drawImage(
|
||||||
|
this.image(),
|
||||||
|
this.x + this.image().width * ix,
|
||||||
|
this.y + this.image().height * iy
|
||||||
|
);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user