コード例 #1
0
ファイル: ActorView.cpp プロジェクト: Avnerus/ichigo
 // Config the view using Json data
 void ActorView::deserialize(Json::Value &configData)
 {
     View::deserialize(configData);
     
     setRadius   (DataManager::getFloat  (configData, "radius",      getRadius()));
     setZOrder   (DataManager::getInt    (configData, "zOrder",      getZOrder()));
 }
コード例 #2
0
void UIWidget::copyProperties(UIWidget *widget)
{
    setEnabled(widget->isEnabled());
    setVisible(widget->isVisible());
    setBright(widget->isBright());
    setTouchEnabled(widget->isTouchEnabled());
    m_bTouchPassedEnabled = false;
    setZOrder(widget->getZOrder());
    setUpdateEnabled(widget->isUpdateEnabled());
    setTag(widget->getTag());
    setName(widget->getName());
    setActionTag(widget->getActionTag());
    m_bIgnoreSize = widget->m_bIgnoreSize;
    m_tSize = widget->m_tSize;
    m_tCustomSize = widget->m_tCustomSize;
    copySpecialProperties(widget);
    m_eSizeType = widget->getSizeType();
    m_tSizePercent = widget->m_tSizePercent;
    m_ePositionType = widget->m_ePositionType;
    m_tPositionPercent = widget->m_tPositionPercent;
    setPosition(widget->getPosition());
    setAnchorPoint(widget->getAnchorPoint());
    setScaleX(widget->getScaleX());
    setScaleY(widget->getScaleY());
    setRotation(widget->getRotation());
    setRotationX(widget->getRotationX());
    setRotationY(widget->getRotationY());
    setFlipX(widget->isFlipX());
    setFlipY(widget->isFlipY());
    setColor(widget->getColor());
    setOpacity(widget->getOpacity());
    setCascadeOpacityEnabled(widget->isCascadeOpacityEnabled());
    setCascadeColorEnabled(widget->isCascadeColorEnabled());
    onSizeChanged();
}
コード例 #3
0
ファイル: GamePlay.cpp プロジェクト: reddevil138/NineGaps
void GamePlay::gameHelp() {
	if (onSound)
		CocosDenshion::SimpleAudioEngine::sharedEngine()->playEffect(
				"sound/button.mp3");
	boardMenuPause->setVisible(false);

	boardMenuHelp = Sprite::create("board.png");
	boardMenuHelp->setPosition(
			Vec2(visibleSize.width / 2, visibleSize.height / 2));
	boardMenuHelp->setZOrder(30);
	this->addChild(boardMenuHelp);

	float haflHeight = boardMenuHelp->getContentSize().height / 2;
	float haflWidth = boardMenuHelp->getContentSize().width / 2;

	Sprite* text = Sprite::create("howtoplaytext.png");
	text->setPosition(Vec2(haflWidth + PADDING / 2, haflHeight));
	text->setZOrder(40);
	boardMenuHelp->addChild(text);

	MenuItemImage* closeBtn = MenuItemImage::create("menu_closeBtn.png",
			"menu_closeBtn.png", CC_CALLBACK_0(GamePlay::gameCloseMenu, this));
	auto menuClose = Menu::create(closeBtn, nullptr);
	menuClose->setZOrder(40);
	menuClose->setPosition(
			Vec2(haflWidth * 2 - closeBtn->getContentSize().width - PADDING,
					haflHeight * 2 - closeBtn->getContentSize().height
							- PADDING));
	boardMenuHelp->addChild(menuClose);
}
コード例 #4
0
ファイル: TestTouch.cpp プロジェクト: Alencai/cocostest
bool TestTouch::onMyTouchBegan(Touch* touch, Event* event)
{
	auto target = static_cast<Sprite*>(event->getCurrentTarget());

	// 获取当前触控点相对与按钮的位置
	Point locationInNode = target->convertToNodeSpace(touch->getLocation());
	Size s = target->getContentSize();
	Rect rect = Rect(0, 0, s.width, s.height);

	// 检测点击区域
	if (rect.containsPoint(locationInNode))
	{
		log("TestTouch::onMyTouchBegan... x = %f, y = %f", locationInNode.x, locationInNode.y);
		target->setOpacity(180);
		return true; 
		std::pair<int, int> s;
		s.first = 3;
		s.second = 4;
	}
	
	//重新设置 zOrder,改变现实顺序

	target->setZOrder(0);
	if (target == sp1)
	{
		sp2->setZOrder(1);
	}
	else
	{
		sp1->setZOrder(1);
	}
	this->sortAllChildren();
	return false;
}
コード例 #5
0
ファイル: Bigmap-message.cpp プロジェクト: dgkae/triplequest
void Bigmap::initMessageThings()
{
    float fontSize = 25 * DDConfig::fontSizeRadio();
    auto bigmapRect = DDConfig::bigmapAreaRect();
    float px = bigmapRect.origin.x + 0.5f * bigmapRect.size.width;
    float py_now = bigmapRect.origin.y + fontSize;
    _messageYStart = py_now;
    float y_step = (bigmapRect.size.height - fontSize*2)/NUM_MESSAGE_LABEL;
    _messageYStep = y_step;
    auto size = DDConfig::getWinSize();

    cocos2d::Vec2 shadowOffset = Vec2{0,2}*DDConfig::fontSizeRadio();
    for (int i = 0; i < NUM_MESSAGE_LABEL; i++) {
        auto lbAbove = Label::createWithTTF("test message", TRLocale::s().font(), fontSize);
        lbAbove->setPosition({px, py_now});
        lbAbove->setZOrder(GameScene::Z_BIGMAP_MESSAGE_ABOVE);
        lbAbove->setTextColor(Color4B::WHITE);

        _lbMessages[i] = lbAbove; 
        _uiLayer->addChild(lbAbove);

        auto lbShadow = Label::createWithTTF("test message", TRLocale::s().font(), fontSize);
        lbShadow->setPosition(Vec2{px, py_now} + shadowOffset);
        lbShadow->setZOrder(GameScene::Z_BIGMAP_MESSAGE_SHADOW);
        lbShadow->setTextColor(Color4B::GRAY);

        _lbMessagesShadow[i] = lbShadow;
        _uiLayer->addChild(lbShadow);

        // 设置属性
        lbAbove->setWidth(size.width*0.95);
        lbAbove->setAlignment(TextHAlignment::LEFT);
        lbAbove->setVisible(false);

        lbShadow->setWidth(size.width*0.95);
        lbShadow->setAlignment(TextHAlignment::LEFT);
        lbShadow->setVisible(false);

        py_now += y_step;
    }
    _messageHeadIndex = NUM_MESSAGE_LABEL-1;

    _rectEffectNode = DDRectEffectNode::create();
    _rectEffectNode->setPosition({0,0});
    _rectEffectNode->setZOrder(Z_RECT_EFFECT);
    _bigmapLayer->addChild(_rectEffectNode);
}
コード例 #6
0
ファイル: LayerSetup.cpp プロジェクト: dalechngame/mygame
bool LayerSetup::init()
{
	CCLayer::init();

	CCLayerColor* layerTrans = CCLayerColor::create(ccc4(192, 192, 192, 128));
	addChild(layerTrans);

	CCLayerColor* layerBG = CCLayerColor::create(ccc4(192, 192, 192, 255), winSize.width / 2, winSize.height / 2);
	addChild(layerBG);
	layerBG->setPosition(ccp(winSize.width / 4, winSize.height / 4));

	// 创建两个slider
	MyCCControlSlider* volumeBG = MyCCControlSlider::create("sliderTrack.png", "sliderProgress.png", "sliderThumb.png");
	MyCCControlSlider* volumeEffect = MyCCControlSlider::create("sliderTrack.png", "sliderProgress.png", "sliderThumb.png");
	addChild(volumeBG);
	addChild(volumeEffect);
	_volumeBG = volumeBG;
	_volumeEffect = volumeEffect;

	volumeBG->setMinimumValue(0.0f);
	volumeBG->setMaximumValue(1.0f);

	volumeEffect->setMinimumValue(0.0f);
	volumeEffect->setMaximumValue(1.0f);

	volumeBG->setPosition(ccp(winSize.width / 2, winSize.height / 2));
	volumeEffect->setPosition(ccp(winSize.width / 2, winSize.height / 2));

	Common::moveNodeY(volumeBG, 40);
//	Common::moveNodeY(volumeEffect, -30);

	volumeBG->addTargetWithActionForControlEvents(this, cccontrol_selector(LayerSetup::ChangeBGVolume), CCControlEventValueChanged);
	volumeEffect->addTargetWithActionForControlEvents(this, cccontrol_selector(LayerSetup::ChangeEffectVolume), CCControlEventValueChanged);

	setZOrder(Common::ZO_LAYER_SETUP);

	// 读配置文件
	float fVolumeBG = CCUserDefault::sharedUserDefault()->getFloatForKey("BGVolume", 1.0f);
	float fVolumeEffect = CCUserDefault::sharedUserDefault()->getFloatForKey("EffectVolume", 1.0f);

	volumeBG->setValue(fVolumeBG);
	volumeEffect->setValue(fVolumeEffect);

	// 创建一个确定按钮
	CCMenuItemFont* item = CCMenuItemFont::create("Close", this, menu_selector(LayerSetup::Close));
	CCMenu* menu = CCMenu::createWithItem(item);
	addChild(menu);
	Common::moveNode(item, ccp(80, -60));
	_menu = menu;

	// 暂停
	// CCDirector::sharedDirector()->pause();

	setTouchEnabled(true);
	setTouchMode(kCCTouchesOneByOne);
	setTouchPriority(-130);

	return true;
}
コード例 #7
0
void CCNodeAdornmentBase::initWithActionDuration( float aDuration )
{
	if ( super::init() ) 
	{
		_actionDuration = aDuration;
		setZOrder( kAdornmentOverZOrder );
	}
}
コード例 #8
0
ファイル: componentdock.cpp プロジェクト: MrMilad/Kite2D
void ComponentDock::zorderChanged(int Value) {
	if (eman != nullptr) {
		auto ent = eman->getEntity(currEntity);
		if (ent) {
			ent->setZOrder(Value);
			emit(entityZOrderChanged(ent));
		}
	}
}
コード例 #9
0
bool LittleSnake::init()
{
    if (!Layer::init())
    {
        return false;
    }

	srand(time(NULL));
    
    directorSize = Director::getInstance()->getVisibleSize();
    directorOrigin = Director::getInstance()->getVisibleOrigin();
    log("Director visible size: width->%d height->%d", (int)directorSize.width,(int) directorSize.height);
    log("Director origin: x->%d y->%d", (int)directorOrigin.x, (int)directorOrigin.y);

    auto background = Sprite::create("background.png");
    background->setPosition(directorOrigin.x + background->getBoundingBox().size.width/2 + 40, directorOrigin.y + directorSize.height/2);   // boundary width
    background->setLocalZOrder(-999);
    this->addChild(background);

    auto backgroundBoundary = Sprite::create("BackgroundBoundary.png");
    backgroundBoundary->setPosition(directorOrigin.x + backgroundBoundary->getBoundingBox().size.width/2, directorOrigin.y + directorSize.height/2);
    backgroundBoundary->setZOrder(-999);
    this->addChild(backgroundBoundary);

    loadSnakeFaces();
    addSnakeFacesAsChild();
    
	auto touchListener = EventListenerTouchOneByOne::create();
	touchListener->setSwallowTouches(true);

	touchListener->onTouchBegan = CC_CALLBACK_2(LittleSnake::onTouchBegan, this);
	touchListener->onTouchMoved = CC_CALLBACK_2(LittleSnake::onTouchMoved, this);
	touchListener->onTouchEnded = CC_CALLBACK_2(LittleSnake::onTouchEnded, this);
	touchListener->onTouchCancelled = CC_CALLBACK_2(LittleSnake::onTouchCancelled, this);
	
	Director::getInstance()->getEventDispatcher()->addEventListenerWithSceneGraphPriority(touchListener, this);

    auto menuItem1 = MenuItemFont::create("Go Back", CC_CALLBACK_1(LittleSnake::exitScene, this));
    auto menuItem2 = MenuItemFont::create("Play Again", CC_CALLBACK_1(LittleSnake::playAgain, this));
    menuItem1->setPosition(directorSize.width / 3 * 1, directorSize.height / 3 * 1);
    menuItem2->setPosition(directorSize.width / 3 * 2, directorSize.height / 3 * 1);
    menuItem1->setFontNameObj("fonts/Showcard Gothic.ttf");    // not refactoring right now
    menuItem2->setFontNameObj("fonts/Showcard Gothic.ttf");
    menuItem1->setFontSizeObj(100);
    menuItem2->setFontSizeObj(100);
    menuItem1->setColor(Color3B(133, 96, 168));    // same as the menu font. not refactoring now.
    menuItem2->setColor(Color3B(133, 96, 168));

    menu = Menu::create(menuItem1, menuItem2, NULL);
    menu->setPosition(0, 0);
    menu->setVisible(false);
    menu->setLocalZOrder(999);
    this->addChild(menu);
    
    return true;
}
コード例 #10
0
ファイル: RootLayer.cpp プロジェクト: hyizsg/mytest1st
HNAMESPACE_BEGIN

//HTouchEnabledLayerColor
HTouchEnabledLayerColor::HTouchEnabledLayerColor(): CCLayerColor(), m_pDelegate(NULL), m_bTipAnimation(false), m_pTipLabel(NULL), m_pTimer(NULL), m_iTouchStatus(HTOUCHSTATUS_NONE) {
    m_pBakNodeList = new CCArray(2);
    setTouchMode(kCCTouchesOneByOne);
    setTouchPriority(-256);
    setZOrder(100000);
    m_pTimer = new HTimer;
    m_pTimer->registerTimer(this, 0, 0.1f, -1);
}
コード例 #11
0
ファイル: text.cpp プロジェクト: whztt07/Magic3D-2
Magic3D::Text::Text(std::string name, float size) : Object(eOBJECT_TEXT, eRENDER_3D, name)
{
    setZOrder(true);
    Mesh* textMesh = new Mesh(new TextData("name", size, true), true, true);
    textMesh->setIlluminated(false);
    textMesh->setCastShadows(false);
    textMesh->setReceiveShadows(false);
    addMesh(textMesh);

    textMesh->addMaterial(ResourceManager::getMaterials()->get(M3D_DEFAULT_MATERIAL_FONT));
}
コード例 #12
0
ファイル: Player.cpp プロジェクト: kg1992/AlarmGameJam
void Player::initPlayer(SpriteBatchNode* spriteBatchNode_)
{
	setAnchorPoint(Point::ANCHOR_MIDDLE);
	// Create at the middle of the screen
	setPosition(Point(Director::getInstance()->getWinSize().width*0.5f,
			Director::getInstance()->getWinSize().height*0.5f));
	// for prototyping
	setTextureRect(Rect(0.0f, 0.0f, PLAYER_WIDTH, PLAYER_HEIGHT));
	setColor(Color3B(255, 255, 255));
	setZOrder(2);
	
}
コード例 #13
0
ファイル: Ally.cpp プロジェクト: noguchi999/shooting2
Ally::Ally()
:max_life(1)
{
    setLife(max_life);
    setPower(1);
    setSpeed(15.0f);
    setEffectiveArea(Director::getInstance()->getWinSize());
    setTag(kTagAlly);
    setZOrder(kZOrderMovableSprite);
    setStatus(Ally::Status::Normal);
    setSpecialEffect(BattleManager::SpecialEffect::Nothing);
}
コード例 #14
0
ファイル: GameScene.cpp プロジェクト: AIRIA/CreazyBomber
void GameScene::startGame()
{
    Util::playSound(SOUND_SCENE_BG,true);
    auto util = MapUtil::getInstance();
    /* 初始化道具的动画 */
    std::vector<PlayerItemType> items = {{"coin0.png","coin_small",0.1f,PlayerInfoParam::kTypeCoin},
        {"coin1.png","coin_big",0.1f,PlayerInfoParam::kTypeCoin},
        {"speed.png","speed",0.3f,PlayerInfoParam::kTypeShoe},
        {"power.png","power",0.2f,PlayerInfoParam::kTypePower},
        {"bomb.png","bomb",0.2f,PlayerInfoParam::kTypeBomb}};
    GameManager::getInstance()->setPlayerItems(items);
    auto it = items.begin();
    while(it!=items.end())
    {
        GameManager::getInstance()->initPlayerItemAnimations(it->frameName, it->animationName,it->perFrameDelay);
        it++;
    }
    /* 添加地图元素和UI元素到界面 */
    auto mapLayer = MapLayer::create();
    GameManager::getInstance()->setMapLayer(mapLayer);
    GameManager::getInstance()->setMonsterCount(0);
    auto baseTileLayer = util->getBaseTileLayer();
    auto tmxLayer = util->getTmxTileLayer();
    auto commonTileLayer = util->getCommonTileLayer();
    auto borderLayer = util->addTileMapBorder();
    
    
    auto mapSizeInPixle = util->getMapSizeInPixle();
    mapLayer->setContentSize(mapSizeInPixle);
    
    mapLayer->addChild(baseTileLayer);
    mapLayer->addChild(tmxLayer);
    mapLayer->addChild(borderLayer);
    mapLayer->addChild(commonTileLayer);
    GameManager::getInstance()->setMapTileLayer(commonTileLayer);
    
    mapLayer->setAnchorPoint(Point(0.0f,1.0f));
    mapLayer->setPosition(Point(-TILE_WIDTH/2*m_fScaleFactor,m_winSize.height+TILE_HEIGHT/2*m_fScaleFactor));
    //        if(mapSize.height==9)
    //        {
    //            mapLayer->setAnchorPoint(Point(0.0f,0.5f));
    //            mapLayer->setPositionY(m_winSize.height/2);
    //        }
    
    mapLayer->setScale(GameManager::getInstance()->getScaleFactor());
    mapLayer->setZOrder(-1);
    addUIComponents();
    addChild(SettingLayer::getInstance());
    addChild(ResultLayer::create());
    addChild(mapLayer);
}
コード例 #15
0
ファイル: Messages.cpp プロジェクト: qing7ling0/LQProjects
bool MessagesLayer::init()
{
	if (Layer::init())
	{
		_messages = MessagesService::getInstance()->getMessages();

		schedule(schedule_selector(MessagesLayer::doing));

		setZOrder(NodeOrder::messagebox);

		return true;
	}

	return false;
}
コード例 #16
0
// This function takes following actions:
// 1) re-check plane assignment, adjust the assignment to meet
//    display controller requirement.
// 2) after re-checking, try to attach primary a layer as much as possible.
// 3) generate a final plane z-order configure for current layer list.
// NOTE: current implementation will treat overlay Layer as higher priority.
void HwcLayerList::revisit()
{
    bool primaryAvailable = true;
    // check whether we can take over the layer by using primary
    // we can use primary plane only when:
    // 0) Be able to be accepted by primary plane which this list layer
    //    attached to.
    // 1) all the other layers have been set to OVERLAY layer.
    if ((mFBLayers.size() == 1)) {
        HwcLayer *hwcLayer = mFBLayers.itemAt(0);
        if (check(*mPrimaryPlane, *(hwcLayer->getLayer()))) {
            log.v("primary check passed for primary layer");
            // attach primary to hwc layer
            hwcLayer->attachPlane(mPrimaryPlane);
            // set the layer type to primary
            hwcLayer->setType(HwcLayer::LAYER_PRIMARY);
            // remove layer from FBLayers
            mFBLayers.remove(hwcLayer);
            // add layer to overlay layers
            mOverlayLayers.add(hwcLayer);
        }
    }

    // attach frame buffer target
    if (!mPrimaryPlane) {
        log.w("HwcLayerList::revisit: no primary plane");
        return;
    }

    if (!mFramebufferTarget) {
        log.w("HwcLayerList::revisit: no frame buffer target");
        return;
    }

    if (mFBLayers.size()) {
        log.v("analyzeFrom: using frame buffer target");
        hwc_layer_1_t *layer = mFramebufferTarget->getLayer();

        // attach primary plane
        mFramebufferTarget->attachPlane(mPrimaryPlane);
        mFramebufferTarget->setType(HwcLayer::LAYER_PRIMARY);
        // still add it to overlay list
        mOverlayLayers.add(mFramebufferTarget);
    }

    // generate z order config
    setZOrder(primaryAvailable);
}
コード例 #17
0
ファイル: Animal.cpp プロジェクト: ken4500/zoo
void Animal::fight(AbstractBattleEntity* entity)
{
    if (canAttack() == false) {
        return;
    }

    _state = AnimalState::Battle;
    _target = entity;
    _target->retain();

    Vec2 originPoint = getPosition();
    Vec2 targetPoint = ZMath::divideInternally(getPosition(), entity->getPosition(), 1, 2);
    auto size = _image->getContentSize() * getScale();
    Vec2 effectPoint = ZMath::divideInternally(getPosition(), entity->getPosition(), 1, 1) + Vec2(0, size.height / 2);

    _timeline->play("default", false);
    _stopMoveAction();
    _moveAction = runAction(RepeatForever::create(Sequence::create(
                                MoveTo::create(0.1f, targetPoint),
    CallFunc::create([this, effectPoint]() {
        // sound effect
        if (isEnemy() || isOpponent()) {
            SoundManager::getInstance()->playFight2Sound();
        } else {
            SoundManager::getInstance()->playFightSound();
        }

        // particle effect
        auto effect = ParticleSystemQuad::create("effect/hit3.plist");
        effect->setScale(getScale());
        effect->setPosition(effectPoint);
        effect->setZOrder(100000);
        effect->setAutoRemoveOnFinish(true);
        auto parent = getParent();
        if (parent) {
            parent->addChild(effect);
        }
    }),
    MoveTo::create(0.3f, originPoint),
    DelayTime::create(0.5f),
    NULL
                            )));
    _moveAction->retain();

    if (startFightCallback) {
        startFightCallback(this, _target);
    }
}
コード例 #18
0
 // Starts playing a given animation (or nothing if this animation is already playing)
 void CocosSpriteActorView::playAnimation(const std::string &name)
 {        
     if (name != _currentAnimation)
     {
         SpriteActorView::playAnimation(name);
     
         if (_currentAnimation != "")
         {
             // Sprite wasn't created yet. Create and set parameters
             if (!_ccSprite)
             {
                 _ccSprite = CCSprite::spriteWithSpriteFrame(((CocosAnimation *)_animations[_currentAnimation].get())->getFirstFrame());    
                 if (_ccSprite)
                 {
                     setPosition(getPosition());
                     setAngle(getAngle());
                     setScale(getScale());
                     setZOrder(getZOrder());
                     setVisible(isVisible());
                     setAlpha(getAlpha());
                 }
             }
             
             // The sprite was created, change texture
             if (_ccSprite)
             {
                 bool isAnimation = _animations[_currentAnimation]->getFrameCount() > 1;
                 
                 CCSpriteFrame *frame = ((CocosAnimation *)_animations[_currentAnimation].get())->getFirstFrame();
                 _ccSprite->setTexture(frame->getTexture());
                 CCRect frameRect = frame->getRectInPixels();
                 if (isAnimation)
                 {
                     frameRect.origin = frame->getOffsetInPixels();
                 }
                 _ccSprite->setTextureRect(frameRect);
                 _ccSprite->setDisplayFrame(frame);
                 
                 // If this animation contains more than one frame, play the animation
                 if (isAnimation)
                 {
                     _ccSprite->runAction(((CocosAnimation *)_animations[_currentAnimation].get())->getAnimationAction());
                 }
             }
             
         }
     }
 }
コード例 #19
0
ファイル: Agent.cpp プロジェクト: JennaMalkin/openc2e
bool Agent::beDropped() {
	AgentRef wascarriedby = carriedby;
	carriedby = AgentRef(0);
	bool wasinvehicle = invehicle;
	invehicle = AgentRef(0);

	// TODO: this doesn't reorder children or anything..
	setZOrder(zorder);

	// TODO: no idea if this is right, it tries to re-enable gravity when dropping agents
	falling = true;

	/* if our carrying agent was in a vehicle, we stay in the vehicle */
	if (wascarriedby && wascarriedby->invehicle) {
		wascarriedby->invehicle->addCarried(this);
		// TODO: how to handle not-invehicle case, where vehicle has failed to pick us up?
		if (invehicle) return true;
	}

	if (!wasinvehicle) { // ie, we're not being dropped by a vehicle
		// TODO: check for vehicles in a saner manner?
		for (std::list<boost::shared_ptr<Agent> >::iterator i = world.agents.begin(); i != world.agents.end(); i++) {
			boost::shared_ptr<Agent> a = (*i);
			if (!a) continue;
			Vehicle *v = dynamic_cast<Vehicle *>(a.get());
			if (!v) continue;

			/* check whether our *centre* lies inside the vehicle cabin */
			int xpt = x + getWidth() / 2;
			if (xpt >= v->x + v->cabinleft && xpt <= v->x + v->cabinright) {
				int ypt = y + getHeight() / 2;
				if (ypt >= v->y + v->cabintop && ypt <= v->y + v->cabinbottom) {
					v->addCarried(this);
					// TODO: how to handle not-invehicle case, where vehicle has failed to pick us up?
					if (invehicle) return true;
				}
			}
		}
	}
	
	if (engine.version > 1) {
		// TODO: maybe think about this some more - does this belong here?
		tryMoveToPlaceAround(x, y);
	}

	// TODO: return value is not used anywhere yet?
	return true;
}
コード例 #20
0
ファイル: GameScene.cpp プロジェクト: AIRIA/CreazyBomber
void GameScene::createPlayerItem(cocos2d::Ref *pSender)
{
    auto mapObj = static_cast<MapObject*>(pSender);
    auto row = mapObj->getRow(),col = mapObj->getCol();
    //mapObj->release();
    auto itemId = rand()%5;
    if(itemId<5)
    {
        auto playerItemType = GameManager::getInstance()->getPlayerItems().at(itemId);
        auto item = PlayerItem::create();
        item->setItemType(playerItemType);
        item->setZOrder(row*10);
        item->setIdx(itemId);
        item->setPosition(mapObj->convertCoordinate2Point(Point(col,row)));
        GameManager::getInstance()->getMapTileLayer()->addChild(item);
    }
}
コード例 #21
0
ファイル: HCCWindow.cpp プロジェクト: joyfish/Bejeweled
void HCCWindow::show() {
    if(m_tips) {
        //UIPanel* _panel = (UIPanel*)m_tips;
        //_panel->setBackGroundColorOpacity(0);
        m_layer->addWidget(m_tips);
        m_tips->setZOrder(HWindowsManager::S()->getTopZOrder());
        setZOrder(m_tips->getZOrder());
        UIWidget* m_bg = m_tips->getChildByName("bg");
        if (m_autoCenter) {
            m_bg->setPosition(_pCenter);
        }
        if (m_bg) {
            m_widgetHelper = new HUIWidgetHelper(m_bg);
        }
    }
    HWindowsManager::S()->pushWindow(this);
    startAnim();
}
コード例 #22
0
ファイル: EditorScene.cpp プロジェクト: wyrover/CoolRun
void EditorScene::showAlter(const string& msg)
{
    Size visibleSize = Director::getInstance()->getVisibleSize();
    Vec2 origin = Director::getInstance()->getVisibleOrigin();
    
    auto alter = EditorText::create(msg, Size(600, 100), 40);
    alter->setAnchorPoint(Vec2(0.5, 0.5));
    alter->setPosition(Vec2(origin.x + visibleSize.width/2, origin.y + visibleSize.height/2));
    alter->setZOrder(kAlterPopViewZOrder);
    this->addChild(alter);
    alter->setScale(0.5);
    
    auto scaleTo = ScaleTo::create(0.2, 1);
    auto delayTime = DelayTime::create(0.2);
    auto fadeOut = FadeOut::create(0.2);
    auto call = CallFunc::create(CC_CALLBACK_0(EditorScene::showAlterDone, this, alter));
    alter->runAction(Sequence::create(scaleTo, delayTime, fadeOut, call, NULL));
}
コード例 #23
0
void FloatingEffectManager::init(cocos2d::Layer* layer, LightNodeManager* lightManager)
{
    _layer = layer;
    _lightManager = lightManager;

    _lightningNode = DDLightningNode::create();
    _lightningNode->setPosition({0,0});
    _layer->addChild(_lightningNode);
    _lightningNode->configWidth(1.5f);
    _lightningNode->setZOrder(BattleField::Z_FLOATING_EFFECT_LIGHTNING);

    for (int i = 0; i < NUM_IMGSPS; i++) {
        auto sp = Sprite::create("images/fe_arrow.png");
        sp->setZOrder(BattleField::Z_FLOATING_EFFECT_IMGS);
        _layer->addChild(sp);
        sp->setVisible(false);
        _imgsps.push_back(sp);
    }
}
コード例 #24
0
ファイル: EditorScene.cpp プロジェクト: dgkae/NormalMapEditor
void EditorScene::addTestLights()
{
        auto sp = Sprite::create("images/test_light.png");
        sp->setScale(DDConfig::battleCubeWidth()/sp->getContentSize().width);
        sp->setPosition({0,0});
        sp->setZOrder(Z_LIGHT);
        sp->setScale(0.25);
        _presentingLayer->addChild(sp);

        _testLightIcon = sp;


    auto listener = EventListenerTouchOneByOne::create();

    listener->onTouchBegan = [this](Touch* touch, Event* event){
        bool res = false;
            auto point = touch->getLocation();
            auto size = _testLightIcon->getContentSize();
            auto pos = _testLightIcon->getParent()->getPosition()+ _testLightIcon->getPosition();
            Rect rect = {pos.x - 0.5f*size.width, pos.y - 0.5f*size.height, size.width, size.height};

            if (rect.containsPoint(point)) {
                res = true;
            }

        return res;
    };

    listener->onTouchMoved = [this](Touch* touch, Event* event){
        this->clearSelection();
        _testLightIcon->setPosition(_testLightIcon->getPosition() + touch->getDelta());
        _trianglesNode->updateLightPos(_testLightIcon->getPosition()*0.25);
    };

    listener->onTouchEnded = [this](Touch* touch, Event* event){
    };

    listener->onTouchCancelled = [this](Touch* touch, Event* event){
    };

    _pointLayer->getEventDispatcher()->addEventListenerWithSceneGraphPriority(listener, _pointLayer);
}
コード例 #25
0
ファイル: PathFinder.cpp プロジェクト: GAMTEQ/FaithHero
TETraceResult PathFinder::naviByPath(double dt) {
	// 如果目标点无效,则不走
	if(getTarget().equals(INVALID_POINT)) {
		//stopAllActions();
		setTarget(INVALID_POINT);
		return eTraceResultFailure;
	}
	// 如果下一个路径点在地图外或是墙,则不走(应该不会出现这种情况)
	CCPoint targetTilePos = _map->realPosToTilePos(getTarget());
	if(int(targetTilePos.x + targetTilePos.y) == -2 || _map->getTileType(targetTilePos) == emWall) {
		//stopAllActions();
		setTarget(INVALID_POINT);
		return eTraceResultFailure;
	}
	// 如果已经到达目标点,则寻找下一个目标点
	if(getPosition().getDistanceSq(getTarget()) < 1) {
		//CCLog("reach half way pos");
		//stopAllActions();
		if(_currPathNode == _shortestPath.size() - 1) { // 如果目标点是最后一个,则寻路结束
			//stopAllActions();
			setTarget(INVALID_POINT);
			return eTraceResultSuccess;
		}
		else { // 如果目标点后面还有,则继续
			//CCLog("go to next pos");
			++_currPathNode;
			_target = _map->getNaviGraph().getNode(_shortestPath[_currPathNode]).getCenterPos();
			CCPoint toTarget = getTarget() - getPosition();
			setDirect(_map->getClosestDirect(toTarget.normalize()));
		}
	}
	// 根据不同的方向,执行不同的动作
	TEActionState actionState = _walkAnimations->runDirect(this, getDirect(), dt);
	// 走向目标点
	CCPoint tilePos = _map->realPosToTilePos(getPosition());
	int tileZorder = tilePos.x + tilePos.y;
	setZOrder(tileZorder);
	CCPoint toTarget = getTarget() - getPosition();
	toTarget = toTarget.normalize();
	setPosition(getPosition() + toTarget * _speed * dt);
	return eTraceResultHalfway;
}
コード例 #26
0
ファイル: HWindow.cpp プロジェクト: joyfish/Shoot
void HWindow::showWindow(){
    if(m_tips){
//         Layout* _panel = (Layout*)m_tips;
//        _panel->setSize(Size(_pScreenSize.width, _pScreenSize.height));
//        _panel->setBackGroundColorOpacity(128);
        m_node->addChild(m_tips);
    
        m_tips->setZOrder(HWindowsManager::S()->getTopZOrder());
        setZOrder(m_tips->getZOrder());
        Node* m_bg = m_tips->getChildByName("bg");
        if (m_autoCenter) {
            m_bg->setPosition(Point(_pCenterX,_pCenterY));
        }
        if (m_bg) {
            m_windowsHelper = new HWindowsHelper(m_bg);
        }
    }
    HWindowsManager::S()->pushWindow(this);
    setTocuhEnable(false);
    startAnim();
}
コード例 #27
0
ファイル: AboutScene.cpp プロジェクト: full-fool/iPoker
// on "init" you need to initialize your instance
bool AboutScene::init()
{
	
    //////////////////////////////
    // 1. super init first
    if ( !Layer::init() )
    {
        return false;
    }
    
    Size visibleSize = Director::getInstance()->getVisibleSize();
    Point origin = Director::getInstance()->getVisibleOrigin();

	auto background = Sprite::create("about-content.png");
	background->setAnchorPoint(Point(0,0));
	background->setPosition(0,0);
	background->setZOrder(0);
	this->addChild(background);

	
	
	
	auto BackButton = MenuItemImage::create("back.png", "back.png", "back.png", CC_CALLBACK_1(AboutScene::Back, this));
    
	BackButton->setPosition(visibleSize.width/2, 90);

	
	//BackButton->setScale(1.0);

	auto buttons = Menu::create(BackButton, NULL);



    buttons->setPosition(0,0);
    this->addChild(buttons);

	return true;

	
}
コード例 #28
0
ファイル: GameScene.cpp プロジェクト: AIRIA/CreazyBomber
void GameScene::normalBombHandler(cocos2d::Ref *pSender)
{
    auto manager = GameManager::getInstance();
    if(manager->getBombNum()==0)
    {
        return;
    }
    auto player = manager->getPlayer();
    auto coordinate = player->getCoordinate();
    auto tile = MapUtil::getInstance()->getMapObjectFromBombVector(MapUtil::getInstance()->getBomb(), coordinate);
    if(tile&&dynamic_cast<Bomb*>(tile))
    {
        return;
    }
    auto bomb = Bomb::create(Bomb::kBombNormal);
    bomb->setZOrder(0);
    bomb->setCol(coordinate.x);
    bomb->setRow(coordinate.y);
    bomb->setAnchorPoint(Point(0.5f,0.0f));
    bomb->setPosition(player->convertCoordinate2Point(coordinate));
    GameManager::getInstance()->getMapTileLayer()->addChild(bomb);
}
コード例 #29
0
bool SpriteRepeater::initWithTexture(Texture2D* aTexture, int zValue)
{
    if( Sprite::initWithTexture(aTexture) ) 
    {
		// coordinates
		int orgX = UtilFunc::getWinSize().width / 2;
		//int orgY = 0;
		int orgY = startY;
		int destY = UtilFunc::getWinSize().height;

		// set position
		setPosition(Point(orgX, orgY));
		setZOrder(zValue);

		// set action manager
		createActionManager();

		// action
		SpriteRepeater::actionSequence(this, orgX, destY);
    }
    
    return true;
}
コード例 #30
0
ファイル: GamePlay.cpp プロジェクト: reddevil138/NineGaps
void GamePlay::gameOver(float dt) {
//	Director::getInstance()->pause();
	gameState = End;
//invisible frame ready
	if (frameReady != NULL) {
		for (int i = 0; i < SUM_NUM; i++)
			frameReady[i]->setVisible(false);
	}

	boardWin = Sprite::create("board.png");
	boardWin->setPosition(Vec2(-visibleSize.width / 4, visibleSize.height / 2));
	boardWin->setZOrder(30);
	this->addChild(boardWin);
	float haflHeight = boardWin->getContentSize().height / 2;
	float haflWidth = boardWin->getContentSize().width / 2;

	auto jumpto = JumpTo::create(0.5,
			Vec2(visibleSize.width / 2, visibleSize.height / 2 - 3 * PADDING),
			PADDING * 3, 4);
	boardWin->runAction(jumpto);

	updatehightestRecord();

	if (onSound)
		CocosDenshion::SimpleAudioEngine::sharedEngine()->playEffect(
				"sound/music_win.ogg");
//congratulation
	Sprite* congratulation = Sprite::create("congratulation.png");
	congratulation->setPosition(
			Vec2(haflWidth,
					haflHeight * 2 - 3 * PADDING
							- congratulation->getContentSize().height));
	congratulation->setZOrder(40);
	boardWin->addChild(congratulation);

//highscore
	Sprite* newhighscore = Sprite::create("newhighscore.png");
	newhighscore->setPosition(
			Vec2(haflWidth,
					congratulation->getPositionY()
							- congratulation->getContentSize().height / 2
							- newhighscore->getContentSize().height / 2
							- 2 * PADDING));
	newhighscore->setZOrder(40);
	boardWin->addChild(newhighscore);

	//TODO
	if (timeplay > 0)
		NativeUtils::submitScore(
				getLeaderBoard(GamePlay::instance()->getLevel()),
				timeplay * 1000);
	if (timeplay > highScore) {
		newhighscore->setVisible(false);
	} else {
		newhighscore->setVisible(true);
	}

//gameover text
	Sprite* gameovertext = Sprite::create("gameovertext.png");
	gameovertext->setPosition(
			Vec2(4 * PADDING + gameovertext->getContentSize().width / 2,
					newhighscore->getPositionY()
							- newhighscore->getContentSize().height / 2
							- gameovertext->getContentSize().height / 2
							- 2 * PADDING));
	gameovertext->setZOrder(40);
	boardWin->addChild(gameovertext);

	float sizewidth = gameovertext->getContentSize().width;
	float sizeheight = gameovertext->getContentSize().height;
//show score
	LabelTTF *currentscore = LabelTTF::create("00:00", "fonts/hlvgchac.ttf",
			40);
	currentscore->setZOrder(50);
	currentscore->setColor(Color3B(Color3B::BLUE));
	showTextTime(currentscore, timeplay);
	currentscore->setPositionX(
			sizewidth + PADDING + currentscore->getContentSize().width / 2);
	currentscore->setPositionY(sizeheight / 2);
	gameovertext->addChild(currentscore);

	LabelTTF *highscore = LabelTTF::create("00:00", "fonts/hlvgchac.ttf", 40);
	highscore->setZOrder(50);
	highscore->setColor(Color3B(Color3B::BLUE));
	showTextTime(highscore, highScore);
	highscore->setPositionX(
			sizewidth + PADDING + currentscore->getContentSize().width / 2);
	highscore->setPositionY(highscore->getContentSize().height / 2);
	gameovertext->addChild(highscore);

	std::string miniModeSprite = getLevelString(
			GamePlay::instance()->getLevel());
	Sprite* miniMode = Sprite::create("mini" + miniModeSprite + ".png");
	miniMode->setPosition(
			Vec2(
					haflWidth * 2 - miniMode->getContentSize().width / 2
							- 3 * PADDING,
					gameovertext->getPositionY()
							+ miniMode->getContentSize().height / 2
							+ 2 * PADDING));
	boardWin->addChild(miniMode);
//button ok
	MenuItemImage* okBtn = MenuItemImage::create("okBtn.png", "okBtn.png",
			CC_CALLBACK_0(GamePlay::gameCloseWinBoard, this));
	auto okMenu = Menu::create(okBtn, nullptr);
	okMenu->setZOrder(40);
	okMenu->setPosition(
			Vec2(haflWidth / 2 + PADDING,
					gameovertext->getPositionY()
							- gameovertext->getContentSize().height / 2
							- okBtn->getContentSize().height / 2
							- 2 * PADDING));
	boardWin->addChild(okMenu);
//button share
	MenuItemImage* shareBtn = MenuItemImage::create("shareBtn.png",
			"shareBtn.png", CC_CALLBACK_0(GamePlay::gameShareWin, this));
	auto shareMenu = Menu::create(shareBtn, nullptr);
	shareMenu->setZOrder(40);
	shareMenu->setPosition(
			Vec2(haflWidth * 3 / 2 - PADDING, okMenu->getPositionY()));
	boardWin->addChild(shareMenu);
}