package org.ntlab.radishforandroidstudio.framework.RWT; import android.content.Context; import android.support.annotation.Nullable; import android.util.AttributeSet; import android.view.MotionEvent; import org.ntlab.radishforandroidstudio.cactusClient.factory.NormalBulletFactory; import org.ntlab.radishforandroidstudio.framework.event.BulletShotEvent; import org.ntlab.radishforandroidstudio.framework.listener.BulletShotListener; import org.ntlab.radishforandroidstudio.framework.listener.PadListener; import org.ntlab.radishforandroidstudio.framework.subject.BulletShotSubject; public class RWTShotButton extends RWTButton { private BulletShotSubject subject = new BulletShotSubject(); public RWTShotButton(Context context) { super(context); } public RWTShotButton(Context context, @Nullable AttributeSet attrs) { super(context, attrs); } public RWTShotButton(Context context, @Nullable AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); } @Override public boolean onTouchEvent(MotionEvent event) { // 弾の種類を取得 // 今は無し // 弾のモデルを作成 if (event.getAction() == MotionEvent.ACTION_DOWN) { NormalBulletFactory f = new NormalBulletFactory(); BulletShotEvent e = new BulletShotEvent(event, f.create(getResources())); subject.notifyListeners(e); System.out.println("shot!"); } invalidate(); return true; } /** * 弾発射ボタン操作時に発生するイベントのリスナを追加する * @param listener */ public void addListener(BulletShotListener listener) { subject.addListener(listener); } }