Marco3jp / GameForMeProject

The repository name is a tentative name. The concept is as it is in this title.
MIT License
0 stars 0 forks source link

バーを操作できるようにする #6

Closed Marco3jp closed 2 years ago

Marco3jp commented 2 years ago
Marco3jp commented 2 years ago

onTickはサービスがコンポーネントマネージャを持てばサービスに置くことができる(サービス -> コンポーネントな関係性) でもonCollisionとか、特定のサービスに叩かれる部分はどうしてもコンポーネントに紐付ける必要があって、サービスを呼び出すにしても依存関係が コンポーネント -> サービス になってしまう

Marco3jp commented 2 years ago

コンポーネントにサービスを注入するしかないか

Marco3jp commented 2 years ago
constructor(args){
  this.onCollision = args.services.reflection.handle
}

てきとーだけどこういうこと?

Marco3jp commented 2 years ago

src/component に services.ts を定義する感じ? うーん、んでその定義をservice -> componentに参照する形

Marco3jp commented 2 years ago

ballMoving, barMovingに分けて、それぞれball, barから叩けばよさそう だけど mouseHandlerComponent.onMouseMove -> barComponent.onMouseMove -> barMovingService.onMouseMove でいいのかな、ちょっとこの流れだとマウスの位置取得のところがfatになっちゃいそう?

Marco3jp commented 2 years ago

あー、いや、CollisionCheckerみたいにマネージャを突っ込んだサービスを作って、マウスで操作可能な……

う〜〜〜〜〜〜〜ん、流石にそれはでかすぎる、マウスで操作するのそもそもバーくらいしかわからん と思ったけどマウスとまとめて表現するだけじゃなくて、カーソル座標とかクリックとかバラバラにしたほうがいいのかな

Marco3jp commented 2 years ago

というか改めて、単にカーソル座標を取ってくるためのコンポーネントであればコンポーネントである必要がない(相互作用がないので)から、単にサービス内で透明な要素をステージに配置することは許容範囲なのでは

Marco3jp commented 2 years ago

できるようになったよ〜〜〜!