Compare commits

...

4 Commits

Author SHA1 Message Date
Alexander Popov f3b63e0311
add source url too welcome message 2023-12-01 16:16:20 +03:00
Alexander Popov ea321fc403
update calculating fps 2023-12-01 16:14:25 +03:00
Alexander Popov 7a91471a38
remove docsify 2023-12-01 16:13:51 +03:00
Alexander Popov 0ca82b9564
fps delta move to Settings 2023-12-01 15:55:39 +03:00
7 changed files with 198 additions and 2215 deletions

View File

@ -13,7 +13,7 @@
Запустите следующие команды, чтобы запустить процесс сборки `ujs`.
```sh
npm install
npm install --omit=dev
npm run build
```

1
TODO.md Normal file
View File

@ -0,0 +1 @@
- [ ] Неправильно отрабатывает один из Git хуков

2376
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@ -7,12 +7,11 @@
"watch": "ROLLUP_WATCH=true rollup --config rollup.config.js --watch",
"prettier-check": "prettier --check .",
"prettier-write": "prettier --write .",
"editorconfig-check": "ec -exclude 'node_modules' .",
"docs-serve": "docsify serve docs"
"editorconfig-check": "ec -exclude 'node_modules' ."
},
"devDependencies": {
"@rollup/plugin-terser": "^0.4.4",
"docsify-cli": "^4.4.4",
"prettier": "2.8.7"
"prettier": "2.8.7",
"rollup": "^4.6.1"
}
}

View File

@ -12,7 +12,7 @@ export class App {
options = {
backgroundColor: '#ffcc68',
welcome: true,
},
}
) {
this.#version = 'beeeeeeta';
@ -31,12 +31,13 @@ export class App {
}
this.scene = new Scene(this.canvas, this.context, w, h);
this.prevTime = Date.now();
Settings.prevTime = Date.now();
const logStrings = [
'ujs engine',
`version: ${this.#version}`,
'feedback: iiiypuk {dog} fastmail.fm',
'sources: https://git.a2s.su/emilecok/ujs',
];
if (this.options.welcome) {
@ -51,9 +52,11 @@ export class App {
}
run = () => {
let newTime = Date.now();
Settings.delta = (newTime - this.prevTime) / 1000;
this.prevTime = newTime;
// Calculating FPS
let fpsNewTime = Date.now();
Settings.fpsDelta = (fpsNewTime - Settings.fpsPrevTime) / 1000;
Settings.fpsPrevTime = fpsNewTime;
Settings.fps = Math.round(1 / Settings.fpsDelta);
// clear canvas
this.context.clearRect(0, 0, this.canvas.width, this.canvas.height);

View File

@ -135,10 +135,10 @@ export class TiledSprite extends Sprite {
let copyUpByY = Math.ceil(this.y / this.image().height);
let copyUpByX = Math.ceil(this.y / this.image().width);
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,
(context.canvas.width - this.y - this.image().width) / this.image().width
);
for (let iy = 0; iy <= copyUpByY; iy++) {
@ -163,12 +163,12 @@ export class TiledSprite extends Sprite {
context.drawImage(
this.image(),
this.x + this.image().width * ix,
this.y - this.image().height * iy,
this.y - this.image().height * iy
);
context.drawImage(
this.image(),
this.x - this.image().width * ix,
this.y - this.image().height * iy,
this.y - this.image().height * iy
);
break;
}
@ -197,12 +197,12 @@ export class TiledSprite extends Sprite {
context.drawImage(
this.image(),
this.x + this.image().width * ix,
this.y + this.image().height * iy,
this.y + this.image().height * iy
);
context.drawImage(
this.image(),
this.x - this.image().width * ix,
this.y + this.image().height * iy,
this.y + this.image().height * iy
);
break;
}

View File

@ -54,7 +54,7 @@ export class SceneLayer {
objects = Array(),
options = {
debug: false,
},
}
) {
// TODO: check types
this.#objects = Array();