You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
80 lines
2.4 KiB
80 lines
2.4 KiB
import { AcGameObject } from '/static/js/ac_game_object/base.js' |
|
import { Controller } from '../controller/base.js'; |
|
|
|
class GameMap extends AcGameObject { |
|
constructor(root) { |
|
super(); |
|
this.root = root; // KOF对象 |
|
this.$canvas = $('<canvas width="960" height="540" tabindex=0></canvas>'); |
|
this.ctx = this.$canvas[0].getContext('2d'); // 获取上下文,canvas对象 |
|
|
|
this.root.$kof.append(this.$canvas); // 将canvas加入$kof中,this.root.$kof是class=kof的div |
|
this.$canvas.focus(); // 聚焦 |
|
|
|
this.controller = new Controller(this.$canvas); |
|
|
|
this.root.$kof.append($(`<div class="kof-head"> |
|
<div class="kof-head-hp-0"> |
|
<div><div>100</div></div> |
|
</div> |
|
<div class="kof-head-timer">60</div> |
|
<div class="kof-head-hp-1"> |
|
<div><div>100</div></div> |
|
</div> |
|
</div>`)); |
|
|
|
this.root.$kof.append($(` |
|
<audio id="player" autoplay> |
|
<source src="./static/audios/bgm.m4a" type="audio/mpeg"> |
|
</audio>`)); |
|
|
|
this.time_left = 60000; // 剩余时间 |
|
this.$timer = this.root.$kof.find('.kof-head-timer'); |
|
this.$bgm = this.root.$kof.find('#player')[0]; |
|
this.$bgm.currentTime = 0; |
|
this.$bgm.play(); |
|
} |
|
|
|
start() { |
|
} |
|
|
|
update_timer() { // 更新时间 |
|
let [a, b] = this.root.players; |
|
if (a.status === 6 || b.status === 6) { |
|
this.$bgm.pause(); |
|
return; |
|
} |
|
|
|
this.time_left -= this.time_delta; |
|
if (this.time_left < 0) { |
|
this.time_left = 0; |
|
this.$bgm.pause(); |
|
if (a.status !== 6 && b.status !== 6) { |
|
a.status = b.status = 6; |
|
a.current_frame_cnt = b.current_frame_cnt = 0; |
|
a.vx = b.vx = 0; |
|
} |
|
} |
|
this.$timer.text(parseInt(this.time_left / 1000)); |
|
} |
|
|
|
update() { |
|
this.update_timer(); |
|
this.render(); |
|
} |
|
|
|
render() { |
|
this.ctx.clearRect(0, 0, this.ctx.canvas.width, this.ctx.canvas.height); |
|
// console.log(this.ctx.canvas.width,this.ctx.canvas.height); // 打印canvas的宽高 |
|
// console.log(this.$canvas.width()); |
|
// this.ctx.fillStyle = "#21252b"; // 画布的颜色 |
|
// // this.ctx.fillRect(0,0,this.ctx.canvas.width,this.ctx.canvas.height); // 画矩形 |
|
// this.ctx.fillRect(0,0,this.$canvas.width(),this.$canvas.height()); |
|
|
|
} |
|
} |
|
|
|
|
|
export { |
|
GameMap, |
|
} |