本文整理汇总了TypeScript中athenajs.AudioManager类的典型用法代码示例。如果您正苦于以下问题:TypeScript AudioManager类的具体用法?TypeScript AudioManager怎么用?TypeScript AudioManager使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了AudioManager类的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的TypeScript代码示例。
示例1: increaseScore
/**
* Updates the player's score using line number & current level
*
*/
increaseScore(lines: number) {
this.score +=
this.scoreTable[lines - 1] + this.level * this.scoreTable[lines - 1];
this.lines += lines;
this.linesString.setText("Lines: " + this.lines);
this.scoreString.setText("Score: " + this.score);
if (lines === 4) {
AM.play("lines_tetris");
} else {
AM.play("lines");
}
}
示例2: snapTile
/**
* Move the shape on the map by a certain number of tiles, optionnaly sending an event
* of a collision is detected
*
*/
snapTile(horizontal = 0, vertical = 0, notify = true, noSound = false): boolean {
const map = this.currentMap;
const buffer = this.getMatrix();
const tilePos = map.getTileIndexFromPixel(this.x, this.y);
const newX = tilePos.x + horizontal;
const newY = tilePos.y + vertical;
// first check there is no collision with walls
if (!map.checkMatrixForCollision(buffer, this.shape.width, newX, newY, Tile.TYPE.WALL)) {
this.x += horizontal * map.tileWidth;
this.y += vertical * map.tileHeight;
return true;
} else {
// if a collision was detected and vertical == 1 it means the shape reached
// the ground: in this case we send a notification for the grid
// and make the shape stop responding to user input or timer
if (vertical === 1) {
this.movable = false;
if (notify) {
AM.play('ground');
this.notify('ground', {
startLine: tilePos.y,
numRows: this.shape.height / map.tileHeight
});
}
}
return false;
}
}
示例3: updateLevel
/**
* Updates level + level object's text
*/
updateLevel() {
const oldLevel = this.level;
this.level = Math.floor(this.lines / 10);
this.levelString.setText("Level: " + this.level);
this.timing = START_TIMING - this.level * LEVEL_TIMING;
this.shape.data['speed'] = this.timing;
oldLevel !== this.level && AM.play("level");
}
示例4: nextRotation
/**
* Switches to the next shape's rotation, if no collision found onto the map
*/
nextRotation(): void {
let matrix: number[];
let newRotation = this.rotation + 1;
const map = this.currentMap;
const tilePos = map.getTileIndexFromPixel(this.x, this.y);
// cycles if last position reached
if (newRotation > 3) {
newRotation = 0;
}
// get current shape + position matrix
matrix = this.getMatrix(newRotation);
if (!map.checkMatrixForCollision(matrix, this.shape.width, tilePos.x, tilePos.y, Tile.TYPE.WALL)) {
// change shape rotation if no collision detected
this.setShape(this.shapeName, newRotation);
AM.play('rotate');
} else {
console.log('rotation not possible');
}
}
示例5: pause
pause(isRunning: boolean) {
this.pauseString.visible = !isRunning;
AM.play("pause");
}
示例6: gameover
/**
* Called on game over, simply displays the score in an alert box and restarts the game
*/
gameover() {
AM.play("gameover");
alert("game over!" + this.score);
this.reset();
}
示例7: checkKeyDelay
checkKeyDelay(key: number, timestamp: number, x: number, y: number): void {
const sprite = this.sprite as Shape;
if (this.ready(key, timestamp)) {
sprite.snapTile(x, y) && AM.play('move');
}
}