Example #1
0
void HelloWorld::onMouseDown(Event* event)
{
#ifdef MOUSE_DOUBLE_LISTEN_FUDGE
    mouseDownFudge = !mouseDownFudge;
    if(!mouseDownFudge)
        return;
#endif
    EventMouse* e = (EventMouse*)event;
    isMouseDown[e->getMouseButton()] = true;
    std::stringstream ss;
    ss << "Mouse Down ";
    ss << e->getMouseButton();

    if(e->getMouseButton() == 1)
    {
        if(!getChildByName("animtest"))
        {
            auto s = new O3Sprite("", true);
            addSprite(s);
            s->addAnimation("idle", "animtest", 9, 12);
            s->setAnimation("idle");
            s->playAnimation();
            s->setName("animtest");
        }
        else
        {
            removeChildByName("animtest");
        }
    }
}
Example #2
0
void LCBattleScene::onMouseUp(Event *event)
{
    EventMouse* e = (EventMouse*)event;
    //world->setGravity(Point(0 ,-98));
    //world->setSpeed(1);
//    Vect vct = world->getGravity();
//    float speed = world->getSpeed();
    // right clicked move hero
    if(e->getMouseButton() == 1) {
        // retain screen double length
        //Point pos = CCDirector::getInstance()->convertToGL(Point(e->getCursorX(), e->getCursorY()));//glLocation, origin(0,0)
        //pos.y = CCDirector::getInstance()->getWinSize().height - pos.y / 2;
        //CCLOG("%f %f", pos.x, pos.y);

        //Point origin = hero->getrootObj()->getPosition();

        //CCLOG("%f %f", origin.x, origin.y);

        //Point convertedToNodeLocation = backGround->convertToNodeSpace(pos);

        //Point p = getPointInMap();
        hero->actionWalk(this, backGround->convertToNodeSpace(Point(e->getCursorX(), e->getCursorY())));
    } else if(e->getMouseButton() == 0) {
        hero->actionAttack();
    }
}
Example #3
0
void BaseScene::onMouseDown(Event* event){
	cocos2d::log("down");	
	EventMouse * e = (EventMouse*)event;
	if(e->getMouseButton() == 0) cocos2d::log("left mouse");
	else if(e->getMouseButton() == 1) cocos2d::log("right mouse");
	else if(e->getMouseButton() == 2) cocos2d::log("middle mouse");

	/* 都是获取当前点坐标,但e->getDelta()左上角是原点,y轴向下;
	/* e->getCursorX(), e->getCursorY()左上角是原点,y轴向上  */
}
Example #4
0
void HelloWorld::onMouseUp(Event* event)
{
#ifdef MOUSE_DOUBLE_LISTEN_FUDGE
    mouseUpFudge = !mouseUpFudge;
    if(!mouseUpFudge)
        return;
#endif
    EventMouse* e = (EventMouse*)event;
    isMouseDown[e->getMouseButton()] = false;
    timeSinceLastMouseUp = 0;
    std::stringstream ss;
    ss << "Mouse Up detected, Key: ";
    ss << e->getMouseButton();
}
Example #5
0
void MouseTest::onMouseUp(Event *event)
{
    EventMouse* e = (EventMouse*)event;
    std::string str = "Mouse Up detected, Key: ";
    str += tostr(e->getMouseButton());
    _labelAction->setString(str.c_str());
}
bool MouseScene::init()
{
	if (!Layer::init())
	{
		return false;
	}

	auto listener = EventListenerMouse::create();
	listener->onMouseDown = [](cocos2d::Event* event)
	{
		try
		{
			EventMouse* mouseEvent = dynamic_cast<EventMouse*>(event);
			mouseEvent->getMouseButton();
			std::stringstream message;
			message << "Mouse event: Button: " << mouseEvent->getMouseButton() << "pressed at point (" << mouseEvent->getLocation().x << ", " << mouseEvent->getLocation().y << ")";
			MessageBox(message.str().c_str(), "Mouse Event Details");
		}
		catch (std::bad_cast& e)
		{
			//not sure what kind of event you passed us cocos, but it was a wrong one
			return;
		}
	};
	listener->onMouseMove = [](cocos2d::Event* event){
		// Cast Event to EventMouse for position details like above
		cocos2d::log("Mouse moved event");
	};

	listener->onMouseScroll = [](cocos2d::Event* event){
		cocos2d::log("Mouse wheel scrolled");
	};

	listener->onMouseUp = [](cocos2d::Event* event){
		cocos2d::log("Mouse button released");
	};

	_eventDispatcher->addEventListenerWithFixedPriority(listener, 1);

	return true;
}
void WorldScene::mouseClick(cocos2d::Event* event, Player* player) {
	CCLOG("mouse");
	CCLOG("Category %x", player->getPhysicsBody()->getCategoryBitmask());
	CCLOG("Collision %x", player->getPhysicsBody()->getCollisionBitmask());
	if (player->getArrow() > 0) {
		Vec2 loc = player->getPosition();
		CCLOG("%d", player->getArrow());
		EventMouse* mouseEvent = dynamic_cast<EventMouse*>(event);
		mouseEvent->getMouseButton();
		//auto pro = Sprite::create("CloseNormal.png");
		auto pro = Projectile::create();
		pro->setPosition(loc);

		this->addChild(pro, 1);
		//pro->setPosition(mouseEvent->getLocation().x, this->getContentSize().height-mouseEvent->getLocation().y);
		if (player->getMode() == 'a') {
			pro->setMode('a');
			Vec2 offset = mouseEvent->getLocation();
			offset.y = this->getContentSize().height - offset.y;
			offset -= player->getPosition();
			offset.normalize();

			auto deg = atan(offset.x / offset.y) * 180 /3.14;
			if (offset.y<0) {
				deg += 180;
			}
			CCLOG("%f", deg);

			auto target = offset*1000 + player->getPosition();
			auto rotate = RotateBy::create(0, deg);
			auto shoot = MoveTo::create(2.0f, target);
			auto remove = RemoveSelf::create();
			pro->runAction(Sequence::create(rotate, shoot, remove, nullptr));
			player->setArrow(player->getArrow() - 1);
		}
		else {
			pro->setMode('b');
			auto shoot = MoveBy::create(2.0f, Vec2(0, 500));
			auto remove = RemoveSelf::create();
			pro->runAction(Sequence::create(shoot, remove, nullptr));
			player->setArrow(player->getArrow() - 4);
		}
		
		
		setArrow(player->getArrow());
	}
}
Example #8
0
bool EditorScene::init()
{
    if (!Scene::init()) {
        return false;
    }

    auto size = Director::getInstance()->getVisibleSize();
    // 3d
    _3dLayer = Layer::create();
    this->addChild(_3dLayer, 1);
    auto bg = BillBoard::create("images/logo_only.png");
    bg->setPosition3D({0,0,0});
//    _3dLayer->addChild(bg);
    bg->setScale(0.5f);


    // cubepack
    CubeCenter::get()->initWithTest();
    for (int i = 0; i < CubeCenter::get()->cubePack.cubes.size(); i++) {
        Cube cube =CubeCenter::get()->cubePack.cubes[i];
        auto sp3d = Sprite3D::create("3d/jingbix.c3b");
        float length_scale = 10.f;
        sp3d->setPosition3D(Vec3{static_cast<float>(cube.x), static_cast<float>(cube.y), static_cast<float>(cube.z)}*length_scale);
        sp3d->setScale(4.f);
        _3dLayer->addChild(sp3d);
    }

    // cube sprite
    auto cubeSprite = CubeSprite::create(Vec3(0,0,0), 0);
    cubeSprite->setPosition3D({0,0,20});
    cubeSprite->setScale(2.f);
    _3dLayer->addChild(cubeSprite);

    // camera
    _camera = Camera::createPerspective(60, size.width/size.height, 1, 1000);
    _camera->setPosition3D({0, 0, 200});
    _camera->lookAt({0,0,0});
    _camera->setCameraFlag(CameraFlag::USER1);
    _3dLayer->addChild(_camera);
    _3dLayer->setCameraMask((unsigned short)CameraFlag::USER1);

    // UI layer
    _uiLayer = EditorUILayer::create();
    this->addChild(_uiLayer, 2);

    // state label
    _stateLabel = Label::createWithTTF("state string", "fonts/consola.ttf", 14);
    _stateLabel->setPosition(Vec2{size.width*0.1f,size.height*0.9f});
    _uiLayer->addChild(_stateLabel, 0);

    // keyboard
    _keyboardListener = EventListenerKeyboard::create();
    _keyboardListener->onKeyPressed = [&](EventKeyboard::KeyCode code, Event* event) {
        switch (code) {
        case EventKeyboard::KeyCode::KEY_SPACE:
            CCLOG("key space, shot");
            //TODO
            break;

        case EventKeyboard::KeyCode::KEY_W:
        case EventKeyboard::KeyCode::KEY_CAPITAL_W:
            CCLOG("key W down");
            _zoomIn = true;
            break;

        case EventKeyboard::KeyCode::KEY_S:
        case EventKeyboard::KeyCode::KEY_CAPITAL_S:
            CCLOG("key S down");
            _zoomOut = true;
            break;

        case EventKeyboard::KeyCode::KEY_A:
        case EventKeyboard::KeyCode::KEY_CAPITAL_A:
            CCLOG("key A down");
            _left = true;
            break;

        case EventKeyboard::KeyCode::KEY_D:
        case EventKeyboard::KeyCode::KEY_CAPITAL_D:
            CCLOG("key D down");
            _right = true;
            break;

        case EventKeyboard::KeyCode::KEY_Q:
        case EventKeyboard::KeyCode::KEY_CAPITAL_Q:
            CCLOG("key Q down");
            _up = true;
            break;

        case EventKeyboard::KeyCode::KEY_E:
        case EventKeyboard::KeyCode::KEY_CAPITAL_E:
            CCLOG("key E down");
            _down = true;
            break;

        case EventKeyboard::KeyCode::KEY_UP_ARROW:
            up();
            break;
        case EventKeyboard::KeyCode::KEY_DOWN_ARROW:
            down();
            break;
        case EventKeyboard::KeyCode::KEY_LEFT_ARROW:
            left();
            break;
        case EventKeyboard::KeyCode::KEY_RIGHT_ARROW:
            right();
            break;

        default:
            break;
        }
    };
    _keyboardListener->onKeyReleased = [&](EventKeyboard::KeyCode code, Event* event) {
        switch (code) {
        case EventKeyboard::KeyCode::KEY_SPACE:
            CCLOG("key space, shot");
            //TODO
            break;

        case EventKeyboard::KeyCode::KEY_W:
        case EventKeyboard::KeyCode::KEY_CAPITAL_W:
            CCLOG("key W up");
            _zoomIn = false;
            break;

        case EventKeyboard::KeyCode::KEY_S:
        case EventKeyboard::KeyCode::KEY_CAPITAL_S:
            CCLOG("key S up");
            _zoomOut = false;
            break;

        case EventKeyboard::KeyCode::KEY_A:
        case EventKeyboard::KeyCode::KEY_CAPITAL_A:
            CCLOG("key A up");
            _left = false;
            break;

        case EventKeyboard::KeyCode::KEY_D:
        case EventKeyboard::KeyCode::KEY_CAPITAL_D:
            CCLOG("key D up");
            _right = false;
            break;
        case EventKeyboard::KeyCode::KEY_Q:
        case EventKeyboard::KeyCode::KEY_CAPITAL_Q:
            CCLOG("key Q up");
            _up = false;
            break;

        case EventKeyboard::KeyCode::KEY_E:
        case EventKeyboard::KeyCode::KEY_CAPITAL_E:
            CCLOG("key E up");
            _down = false;
            break;

//            case EventKeyboard::KeyCode::KEY_UP_ARROW:
//                up();
//                break;
//            case EventKeyboard::KeyCode::KEY_DOWN_ARROW:
//                down();
//                break;
//            case EventKeyboard::KeyCode::KEY_LEFT_ARROW:
//                left();
//                break;
//            case EventKeyboard::KeyCode::KEY_RIGHT_ARROW:
//                right();
//                break;

        default:
            break;
        }

    };
    _eventDispatcher->addEventListenerWithSceneGraphPriority(_keyboardListener, this);

    // mouse
    _mouseListener = EventListenerMouse::create();

    _mouseListener->onMouseMove = [&](Event *event) {
        if (!_isFPS) return;

        EventMouse* e = (EventMouse*)event;
        auto now = e->getLocation();
        Vec2 diff = now - _fpsAnchor;
        _fpsAnchor = now;
        _rotateY -= ROTATE_SCALE*diff.x;
        _rotateX -= ROTATE_SCALE*diff.y;
        if (_rotateX > UP_DOWN_MAX*0.5f*PI) _rotateX = UP_DOWN_MAX*0.5f*PI;
        if (_rotateX < -UP_DOWN_MAX*0.5f*PI) _rotateX = -UP_DOWN_MAX*0.5f*PI;

    };
    _mouseListener->onMouseUp = [&](Event *event) {
        EventMouse* e = (EventMouse*)event;
        switch(e->getMouseButton()) {
        case MOUSE_BUTTON_LEFT:
            break;

        case MOUSE_BUTTON_RIGHT:
            _isFPS = false;
            break;

        default:
            break;
        }
    };
    _mouseListener->onMouseDown = [&](Event *event) {
        EventMouse* e = (EventMouse*)event;
        switch(e->getMouseButton()) {
        case MOUSE_BUTTON_LEFT:
            break;

        case MOUSE_BUTTON_RIGHT:
        {
            _isFPS = true;
            _fpsAnchor = e->getLocation();
            auto ro = _camera->getRotation3D();
            CCLOG("%f,%f,%f", ro.x, ro.y, ro.z);
            break;
        }
        default:
            break;
        }
    };
    _mouseListener->onMouseScroll = [&](Event *event) {
        EventMouse* e = (EventMouse*)event;
        CCLOG("%f, %f", e->getScrollX(), e->getScrollY());
        float diff = e->getScrollY();
        Vec3 dir = _camera->getRotationQuat() * Vec3{0.f, 0.f, -1.f};
        dir.normalize();
        _camera->setPosition3D(_camera->getPosition3D() + SCALL_MOVE_SCALE * -diff * dir);
    };
    _eventDispatcher->addEventListenerWithSceneGraphPriority(_mouseListener, this);

    scheduleUpdate();
    return true;
}