用cocos2d-x 3.9.0写植物大战僵尸的鼠标点击阳光移动到指定位置并且消失
时间: 2024-03-25 19:39:02 浏览: 23
好的,这是一个比较经典的游戏场景,我可以为您提供一些思路和代码示例。首先,需要在游戏场景中添加一个阳光的精灵,并监听鼠标的点击事件,在点击事件回调函数中将阳光移动到指定位置并且消失。下面是示例代码:
```c++
// 在游戏场景中添加阳光精灵
auto sunSprite = Sprite::create("sun.png");
sunSprite->setPosition(Vec2(100, 100));
this->addChild(sunSprite);
// 监听鼠标点击事件
auto listener = EventListenerMouse::create();
listener->onMouseDown = [&](Event* event){
// 获取鼠标点击位置
auto eventMouse = static_cast<EventMouse*>(event);
auto location = eventMouse->getLocation();
// 创建一个移动动作
auto moveTo = MoveTo::create(1.0f, location);
// 创建一个回调动作,在移动结束后移除阳光精灵
auto callback = CallFunc::create([&](){
sunSprite->removeFromParent();
});
// 创建一个序列动作,先移动再回调
auto sequence = Sequence::create(moveTo, callback, nullptr);
// 执行序列动作
sunSprite->runAction(sequence);
};
this->getEventDispatcher()->addEventListenerWithSceneGraphPriority(listener, this);
```
这段代码中,我们首先创建了一个阳光精灵,并将其添加到游戏场景中。然后创建一个鼠标点击事件监听器,当监听到鼠标点击事件时,获取点击位置,创建一个移动动作将阳光精灵移动到指定位置。移动结束后,创建一个回调动作,在回调动作中将阳光精灵从游戏场景中移除。最后,将移动动作和回调动作组合成一个序列动作,通过runAction函数执行。
希望这个示例代码能够帮助到您,如果您还有其他问题,请随时提出。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)