44 lines
1015 B
JavaScript
44 lines
1015 B
JavaScript
import { Point } from "./Point.js";
|
|
import { PongGame } from "./PongGame.js";
|
|
import { Segment } from "./Segment.js";
|
|
import { renderCube} from "../../../3D/cube.js"
|
|
|
|
export class Wall extends Segment
|
|
{
|
|
|
|
/**
|
|
* @param {PongGame} game
|
|
* @param {Point} start
|
|
* @param {Point} stop
|
|
*/
|
|
constructor(game, start, stop)
|
|
{
|
|
super(game, start, stop)
|
|
|
|
/**
|
|
* @type {PongGame}
|
|
*/
|
|
this.game = game
|
|
}
|
|
|
|
draw(ctx)
|
|
{
|
|
if(ctx instanceof CanvasRenderingContext2D)
|
|
{
|
|
ctx.moveTo(this.start.x, this.start.y);
|
|
ctx.lineTo(this.stop.x, this.stop.y);
|
|
}
|
|
else if(ctx instanceof WebGLRenderingContext)
|
|
{
|
|
const size = this.game.config.BALL_SIZE * 2;
|
|
const sizeX = this.len() / 2;
|
|
const posX = (this.start.x - this.game.config.MAP_CENTER_X);
|
|
const posY = (this.start.y - this.game.config.MAP_CENTER_Y);
|
|
renderCube(ctx, posX, 0, posY, -this.angle(), sizeX, size, size);
|
|
}
|
|
else
|
|
{
|
|
alert('Unknown rendering context type');
|
|
}
|
|
}
|
|
} |