实现简单的滑动效果

滑动菜单在游戏中应用广泛,选择人物、关卡。

自己写了一个最基本的滑动菜单,记录下来

头文件中定义如下变量

    EventListenerTouchOneByOne* ev;<span style="white-space:pre">				</span>//触摸代理<span style="white-space:pre">				</span>
    bool onTouchBegan(Touch* touch, Event* event);<span style="white-space:pre">		</span>//触摸函数
    void onTouchMoved(Touch* touch, Event* event);
    void onTouchEnded(Touch* touch, Event* event);
    Node* background;<span style="white-space:pre">						</span>//需要移动的NODE节点,所有要移动的组件,都添加到这个节点中
    cocos2d::Point touch1;<span style="white-space:pre">					</span>// 记录 第一个触摸点
    cocos2d::Point touch2;<span style="white-space:pre">					</span>// 记录 第二个触摸点  也可不用这个变量


在.cpp文件的 onEnter() 函数中 注册触摸代理

void ChoseNinjaScene::onEnter()
{
    Layer::onEnter();
    //设置触摸函数
    ev = EventListenerTouchOneByOne::create();
    ev->setSwallowTouches(true);
    ev->onTouchBegan = CC_CALLBACK_2(ChoseNinjaScene::onTouchBegan, this);
    ev->onTouchMoved = CC_CALLBACK_2(ChoseNinjaScene::onTouchMoved, this);
    ev->onTouchEnded = CC_CALLBACK_2(ChoseNinjaScene::onTouchEnded, this);
    _eventDispatcher->addEventListenerWithSceneGraphPriority(ev, this);
}


onExit()函数中 在界面关闭后移除 触摸代理

void ChoseNinjaScene::onExit()
{
    Layer::onExit();
    _eventDispatcher->removeEventListener(ev);
}

接着对于触摸函数进行具体设置

void ChoseNinjaScene::onTouchEnded(Touch* touch, Event* event)
{
    touch2 = touch->getLocation();
    float x = touch1.x - touch2.x;

        if (x <= -30)
        {                                           //往右移
            if (background->getPositionX() != 0)
            {
                if (background->getPositionX() + 524 <= 0)//  +移动距离
                {
                    background->runAction(MoveBy::create(0.5, Vec2(524, 0)));
                }
                
            }
            
        }
        else if(x >= 30)
        {
                if (background->getPositionX() - 524 >= -4192  )        //移动距离 * 需要移动的次数(8);  往左移
                {
                    log("zuo : 2");
                    background->runAction(MoveBy::create(0.5, Vec2(-524, 0)));
                }
        }
}


将所有的组件添加到 background就可以简单的移动了 = = 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
实现ARM6818开发板屏幕的滑动效果,需要编写相应的代码来实现。下面是一个简单实现方法: 1. 首先,需要确定屏幕滑动的方向和距离。可以使用触摸屏幕或者按键来控制滑动方向和距离。 2. 然后,需要在程序中记录屏幕当前的位置和滑动后的位置。可以使用一个变量来记录屏幕的当前位置和滑动后的位置。 3. 接下来,需要使用LCD屏幕的刷新函数来刷新屏幕。可以在每次滑动之后,重新绘制屏幕上的图形,并更新屏幕的显示。 4. 最后,需要使用延时函数来控制屏幕滑动的速度。可以使用一个循环来实现延时效果。 下面是一个简单的示例代码,可以实现ARM6818开发板的屏幕滑动效果: ```c int main(void) { int current_position = 0; int new_position = 0; int direction = 0; // 0表示向左滑动,1表示向右滑动 // 初始化LCD屏幕 lcd_init(); // 循环运行 while(1) { // 获取滑动方向和距离 direction = get_direction(); new_position = get_distance(); // 更新屏幕位置 if(direction == 0) { current_position -= new_position; } else { current_position += new_position; } // 重新绘制屏幕 draw_screen(current_position); // 延时一段时间,控制滑动速度 delay(100); } return 0; } ``` 需要注意的是,这只是一个简单的示例代码,实际的实现方法可能会更加复杂。同时,具体的代码实现也需要根据具体的需求进行调整。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值