mirror of
https://github.com/Aviortheking/games.git
synced 2025-07-04 07:09:18 +00:00
@ -9,7 +9,7 @@ interface Params {
|
||||
stroke?: string
|
||||
}
|
||||
|
||||
export default class RectRenderer extends Renderer implements Partial<Params> {
|
||||
export default class RectRenderer extends Renderer implements Params {
|
||||
|
||||
public material?: string | Asset
|
||||
public stroke?: string
|
||||
|
41
src/GameEngine/Renderer/TextRenderer.ts
Normal file
41
src/GameEngine/Renderer/TextRenderer.ts
Normal file
@ -0,0 +1,41 @@
|
||||
import { objectLoop } from '@dzeio/object-util'
|
||||
import GameEngine from 'GameEngine'
|
||||
import Component2D from 'GameEngine/Component2D'
|
||||
import Renderer from '.'
|
||||
|
||||
interface Params {
|
||||
text?: string
|
||||
}
|
||||
|
||||
export default class TextRenderer extends Renderer {
|
||||
|
||||
public text?: string
|
||||
public size?: number
|
||||
|
||||
public constructor(component: Component2D, params?: Params) {
|
||||
super(component)
|
||||
objectLoop(params ?? {}, (v, k) => {this[k as 'text'] = v})
|
||||
}
|
||||
|
||||
public async render(ge: GameEngine, ctx: CanvasRenderingContext2D) {
|
||||
const position = this.getPosition()
|
||||
const item: [number, number] = [
|
||||
// source x
|
||||
// 0 - 1.5 - -1.5
|
||||
position.x * (ge.caseSize.x),
|
||||
// source y
|
||||
position.y * (ge.caseSize.y)
|
||||
]
|
||||
|
||||
const size = this.component.scale.y * ge.caseSize.y
|
||||
|
||||
// console.log
|
||||
if (this.text) {
|
||||
ctx.fillStyle = 'black'
|
||||
ctx.textBaseline = 'top'
|
||||
|
||||
ctx.font = `${size}px sans-serif`
|
||||
ctx.fillText(this.text, ...item)
|
||||
}
|
||||
}
|
||||
}
|
@ -10,7 +10,7 @@ export default abstract class Renderer {
|
||||
|
||||
protected getPosition(): Vector2D {
|
||||
const ge = GameEngine.getGameEngine()
|
||||
const realPosition = ge.currentScene.camera.topLeft.sum(this.component.position)
|
||||
const realPosition = ge.currentScene!.camera.topLeft.sum(this.component.position)
|
||||
return new Vector2D(
|
||||
realPosition.x - this.component.scale.x / 2 - this.component.origin.x,
|
||||
realPosition.y - this.component.scale.y / 2 - this.component.origin.y
|
||||
|
Reference in New Issue
Block a user