如何在CocosSharp中添加触摸事件到CCNode
本文关键字:触摸 事件 CCNode 添加 CocosSharp | 更新日期: 2023-09-27 18:02:15
我有一个图层:
public class MenuItemsLayer : CCLayer
{
protected override void AddedToScene()
{
base.AddedToScene();
var quitItem = new CCLabel("QUIT", "fonts/MarkerFelt", 22, CCLabelFormat.SpriteFont);
(...)
this.AddEventListener(this.addQuitItemTouchListener(), quitItem);
this.AddChild(quitItem);
}
private CCEventListenerTouchOneByOne addQuitItemTouchListener()
{
var touchListener = new CCEventListenerTouchOneByOne();
touchListener.OnTouchEnded = (touch, args) =>
{
System.Diagnostics.Debug.WriteLine("touched");
};
return touchListener;
}
}
请注意"quitItem"。我添加CCEventListenerTouchOneByOne到它希望,它会做一些我想要的东西。在这种情况下,如果元素被触摸,它应该在输出中写"touched"。不幸的是,什么也没有发生,断点也没有被击中。
基本问题-我想添加触摸事件到CCNode。如何?
//类变量CCLabel quitItem;
// In AddedToScene
var touchListener = new CCEventListenerTouchAllAtOnce();
touchListener.OnTouchBegan = this.OnTouchesBegan;
AddEventListener(touchListener,this);
// Handler
void OnTouchesBegan(List<CCTouch> touches, CCEvent touchEvent)
{
if ( quitItem.BoundingBoxTransformedToWorld.ContainsPoint(touches[0].Location ))
{
// print message here
}
}