SneakyButtonSkinnedBase *SneakyInputEx::buttonSkinnedBase(CCRect btnRect, const char *upSprite, const char *downSprite)
{
	SneakyButtonSkinnedBase *buttonBase = new SneakyButtonSkinnedBase();

	if (buttonBase)
	{
		buttonBase->autorelease();
		buttonBase->init();
		buttonBase->setDefaultSprite(CCSprite::spriteWithSpriteFrameName(upSprite));
		buttonBase->setActivatedSprite(CCSprite::spriteWithSpriteFrameName(downSprite));
		buttonBase->setPressSprite(CCSprite::spriteWithSpriteFrameName(downSprite));

		SneakyButton *button = new SneakyButton();

		if (button)
		{
			button->autorelease();
			button->initWithRect(btnRect);
			button->setIsToggleable(false);
			button->setIsHoldable(true);

			buttonBase->setButton(button);

			return buttonBase;

		}

		buttonBase->release();
	
	}

	return NULL;

}
Beispiel #2
0
bool PlayLayer::init()
{
    if(!BaseLayer::init())
    {
        return false;
    }

    Size visibleSize = Director::getInstance()->getVisibleSize();

    MenuItemFont *back = MenuItemFont::create("back", CC_CALLBACK_1(PlayLayer::back, this));
    Menu *menu = Menu::create(back, NULL);
    menu->setPosition(visibleSize.width*9/10, visibleSize.height*9/10);

    this->addChild(menu);

    SpriteFrameCache* cache = SpriteFrameCache::getInstance();
    cache->addSpriteFramesWithFile("UI.plist", "UI.png");

    mJoystick = NULL;
    mJoystick = new SneakyJoystick();
    mJoystick->initWithRect(Rect::ZERO);
    mJoystick->setAutoCenter(true);
    mJoystick->setHasDeadzone(true);
    mJoystick->setDeadRadius(10);
    SneakyJoystickSkinnedBase* jstickSkin = new SneakyJoystickSkinnedBase();
    jstickSkin->autorelease();
    jstickSkin->init();
    jstickSkin->setBackgroundSprite(CCSprite::createWithSpriteFrameName("JoyStick-base.png"));
    jstickSkin->setThumbSprite(CCSprite::createWithSpriteFrameName("JoyStick-thumb.png"));
    //jstickSkin->getThumbSprite()->setScale(0.5f);
    jstickSkin->setPosition(visibleSize.width*1/10, visibleSize.width*1/10);
    jstickSkin->setJoystick(mJoystick);
    this->addChild(jstickSkin);

    mButtonA = NULL;
    mButtonA = new SneakyButton();
    mButtonA->initWithRect(Rect::ZERO);
    mButtonA->setIsToggleable(false);
    mButtonA->setIsHoldable(true);
    SneakyButtonSkinnedBase* btnASkin = new SneakyButtonSkinnedBase();
    btnASkin->autorelease();
    btnASkin->init();
    btnASkin->setPosition(visibleSize.width*9/10, visibleSize.width*1/10);
    btnASkin->setDefaultSprite(CCSprite::createWithSpriteFrameName("button-default.png"));
    btnASkin->setPressSprite(CCSprite::createWithSpriteFrameName("button-pressed.png"));
    btnASkin->setActivatedSprite(CCSprite::createWithSpriteFrameName("button-activated.png"));
    //btnASkin->setDisabledSprite(CCSprite::createWithSpriteFrameName("button-disabled.png"));
    btnASkin->setButton(mButtonA);
    this->addChild(btnASkin);

    this->schedule(schedule_selector(PlayLayer::inputUpdate));

    startPlay();

    return true;
}
Beispiel #3
0
HudLayer::HudLayer()
{
	CCMenuItemSprite* btn_pause = CCMenuItemSprite::create(
		CCSprite::createWithSpriteFrameName("CloseNormal.png"), 
		CCSprite::createWithSpriteFrameName("CloseSelected.png"), 
		this, menu_selector(HudLayer::menuPauseCallback));
	btn_pause->setPosition(CCPointZero);
	CCMenu* menu_pause = CCMenu::createWithItem(btn_pause);
	menu_pause->setPosition(ccp(PAUSE_MENU_POS_X, PAUSE_MENU_POS_Y));
	this->addChild(menu_pause);

	mJoystick = NULL;
	mJoystick = new SneakyJoystick();
	mJoystick->initWithRect(CCRectZero);
	mJoystick->setAutoCenter(true);
	mJoystick->setHasDeadzone(true);
	mJoystick->setDeadRadius(JOYSTICK_DEAD_RADIUS);
	SneakyJoystickSkinnedBase* jstickSkin = new SneakyJoystickSkinnedBase();
	jstickSkin->autorelease();
	jstickSkin->init();
	jstickSkin->setBackgroundSprite(CCSprite::createWithSpriteFrameName("JoyStick-base.png"));
	jstickSkin->setThumbSprite(CCSprite::createWithSpriteFrameName("JoyStick-thumb.png"));
	//jstickSkin->getThumbSprite()->setScale(0.5f);
	jstickSkin->setPosition(ccp(JOYSTICK_POS_X, JOYSTICK_POS_Y));
	jstickSkin->setJoystick(mJoystick);
	this->addChild(jstickSkin);

	mButtonA = NULL;
	mButtonA = new SneakyButton();
	mButtonA->initWithRect(CCRectZero);
	mButtonA->setIsToggleable(false);
	mButtonA->setIsHoldable(true);
	SneakyButtonSkinnedBase* btnASkin = new SneakyButtonSkinnedBase();
	btnASkin->autorelease();
	btnASkin->init();
	btnASkin->setPosition(ccp(BTN_A_POS_X, BTN_A_POS_Y));
	btnASkin->setDefaultSprite(CCSprite::createWithSpriteFrameName("button-default.png"));
	btnASkin->setPressSprite(CCSprite::createWithSpriteFrameName("button-pressed.png"));
	btnASkin->setActivatedSprite(CCSprite::createWithSpriteFrameName("button-activated.png"));
	//btnASkin->setDisabledSprite(CCSprite::createWithSpriteFrameName("button-disabled.png"));
	btnASkin->setButton(mButtonA);
	this->addChild(btnASkin);

	init();
}
Beispiel #4
0
HudLayer::HudLayer()
{
	CCSpriteFrameCache* cache = 
		CCSpriteFrameCache::sharedSpriteFrameCache();
	cache->addSpriteFramesWithFile("UI.plist", "UI.png");

	mJoystick = NULL;
	mJoystick = new SneakyJoystick();
	mJoystick->initWithRect(CCRectZero);
	mJoystick->setAutoCenter(true);
	mJoystick->setHasDeadzone(true);
	mJoystick->setDeadRadius(10);
	SneakyJoystickSkinnedBase* jstickSkin = new SneakyJoystickSkinnedBase();
	jstickSkin->autorelease();
	jstickSkin->init();
	jstickSkin->setBackgroundSprite(CCSprite::createWithSpriteFrameName("JoyStick-base.png"));
	jstickSkin->setThumbSprite(CCSprite::createWithSpriteFrameName("JoyStick-thumb.png"));
	//jstickSkin->getThumbSprite()->setScale(0.5f);
	jstickSkin->setPosition(ccp(50, 50));
	jstickSkin->setJoystick(mJoystick);
	this->addChild(jstickSkin);

	mButtonA = NULL;
	mButtonA = new SneakyButton();
	mButtonA->initWithRect(CCRectZero);
	mButtonA->setIsToggleable(false);
	mButtonA->setIsHoldable(true);
	SneakyButtonSkinnedBase* btnASkin = new SneakyButtonSkinnedBase();
	btnASkin->autorelease();
	btnASkin->init();
	btnASkin->setPosition(ccp(430, 50));
	btnASkin->setDefaultSprite(CCSprite::createWithSpriteFrameName("button-default.png"));
	btnASkin->setPressSprite(CCSprite::createWithSpriteFrameName("button-pressed.png"));
	btnASkin->setActivatedSprite(CCSprite::createWithSpriteFrameName("button-activated.png"));
	//btnASkin->setDisabledSprite(CCSprite::createWithSpriteFrameName("button-disabled.png"));
	btnASkin->setButton(mButtonA);
	this->addChild(btnASkin);

	init();
}
// on "init" you need to initialize your instance
bool CCGVirtualJoystick::init()
{
	//////////////////////////////
	// 1. super init first
	if (!Layer::init())
	{
		return false;
	}

	// set joystick params.
	float defaultThumbRadius = 64;
	float defaultBackgroundRadius = 100;
	float defaultDeathRadius = 10;
	Vec2  defaultJoystickPosition = Vec2(200, 200);

	_leftJoystick = static_cast<CCGJoystick*>(new SneakyJoystick());
	_leftJoystick->initWithRect(Rect::ZERO);
	_leftJoystick->setAutoCenter(true);  
	_leftJoystick->setHasDeadzone(true);
	_leftJoystick->setDeadRadius(defaultDeathRadius);

	SneakyJoystickSkinnedBase *leftJoystickSkin = new SneakyJoystickSkinnedBase();
	leftJoystickSkin->autorelease();
	leftJoystickSkin->init();

	// set background sprite
	leftJoystickSkin->setBackgroundSprite(CCSprite::create("joystick/RadialJoy_Area.png"));
	auto backgroundSpriteSize = leftJoystickSkin->getBackgroundSprite()->getContentSize();
	leftJoystickSkin->getBackgroundSprite()->setScaleX(2* defaultBackgroundRadius / backgroundSpriteSize.width);
	leftJoystickSkin->getBackgroundSprite()->setScaleY(2* defaultBackgroundRadius / backgroundSpriteSize.height);

	// set thumb sprite
	leftJoystickSkin->setThumbSprite(CCSprite::create("joystick/Button_normal.png"));
	auto thumbSpriteSize = leftJoystickSkin->getThumbSprite()->getContentSize();
	leftJoystickSkin->getThumbSprite()->setScaleX(2 * defaultThumbRadius / thumbSpriteSize.width);
	leftJoystickSkin->getThumbSprite()->setScaleY(2 * defaultThumbRadius / thumbSpriteSize.height);

	leftJoystickSkin->setPosition(defaultJoystickPosition);
	leftJoystickSkin->setJoystick(_leftJoystick.get());
	this->addChild(leftJoystickSkin);

	// create attack button
	Size visibleSize = Director::getInstance()->getVisibleSize();
	Vec2  defaultAttackButtonPosition = Vec2(visibleSize.width - 200, 200);

	_attackButton = static_cast<CCGButton*>(new SneakyButton());
	_attackButton->initWithRect(Rect::ZERO);
	_attackButton->setIsToggleable(false);
	_attackButton->setIsHoldable(false);

	SneakyButtonSkinnedBase *attackButtonSkin = new SneakyButtonSkinnedBase();
	attackButtonSkin->autorelease();
	attackButtonSkin->init();

	attackButtonSkin->setDefaultSprite(CCSprite::create("joystick/attackButton_normal.png"));
	attackButtonSkin->setPressSprite(CCSprite::create("joystick/attackButton_pressed.png"));
	attackButtonSkin->setActivatedSprite(CCSprite::create("joystick/attackButton_pressed.png"));

	attackButtonSkin->setPosition(defaultAttackButtonPosition);
	attackButtonSkin->setButton(_attackButton.get());
	this->addChild(attackButtonSkin);

	return true;
}
Beispiel #6
0
void JoystickLayer::generateJoystick()
{

	Rect joystickBaseDimensions(0, 0, 6.0f, 6.0f);
	Point joystickBasePosition(SCREEN_W * 0.21f, SCREEN_H * 0.2f);

    Sprite* bg = Sprite::createWithSpriteFrameName("background.png");
    Sprite* thumb = Sprite::createWithSpriteFrameName("thumb.png");
    bg->setScale(0.37f);
    thumb->setScale(0.45f);

	SneakyJoystickSkinnedBase* joystickBase = new SneakyJoystickSkinnedBase();
	_base = joystickBase;
	joystickBase->init();
	joystickBase->setPosition(joystickBasePosition);
	joystickBase->setBackgroundSprite(bg);
	joystickBase->setThumbSprite(thumb);

	_joystick = new SneakyJoystick();
	_joystick->initWithRect(joystickBaseDimensions);
	_joystick->autorelease();
	joystickBase->setJoystick(_joystick);
	joystickBase->setPosition(joystickBasePosition);

	Rect jumpButtonDimensions(0, 0, 64.0f, 64.0f);
	Point jumpButtonPosition;
	jumpButtonPosition = ccp(SCREEN_W * 0.8f, SCREEN_H * 0.2f);

	SneakyButtonSkinnedBase *jumpButtonBase = new SneakyButtonSkinnedBase();
	jumpButtonBase->init();
	jumpButtonBase->setPosition(jumpButtonPosition);


	Sprite* button1 = Sprite::createWithSpriteFrameName("jumpButton.png");
	button1->setScale(0.6f);
	jumpButtonBase->setDefaultSprite(button1);
	jumpButtonBase->setActivatedSprite(button1);
	jumpButtonBase->setDisabledSprite(button1);
	jumpButtonBase->setPressSprite(button1);

	_jumpButton = new SneakyButton();
	_jumpButton->initWithRect(jumpButtonDimensions);
	_jumpButton->autorelease();

	jumpButtonBase->setButton(_jumpButton);
	jumpButtonBase->setPosition(jumpButtonPosition);

	_jumpButton->retain();


	Rect attackButtonDimensions(0, 0, 64.0f, 64.0f);
	Point attackButtonPosition;
	attackButtonPosition = ccp(SCREEN_W * 0.93f, SCREEN_H * 0.3f);

	SneakyButtonSkinnedBase *attackButtonBase = new SneakyButtonSkinnedBase();
	attackButtonBase->init();
	attackButtonBase->setPosition(attackButtonPosition);

	Sprite* button2 = Sprite::createWithSpriteFrameName("attackButton.png");
	button2->setScale(0.6f);
	attackButtonBase->setDefaultSprite(button2);
	attackButtonBase->setActivatedSprite(button2);
	attackButtonBase->setDisabledSprite(button2);
	attackButtonBase->setPressSprite(button2);

	_attackButton = new SneakyButton();
	_attackButton->initWithRect(attackButtonDimensions);
	_attackButton->autorelease();

	attackButtonBase->setButton(_attackButton);
	attackButtonBase->setPosition(attackButtonPosition);

	_attackButton->retain();


	this->addChild(attackButtonBase);
	this->addChild(jumpButtonBase);
	this->addChild(joystickBase);

	scheduleUpdate();
	this->setTouchEnabled(true);

}