Exemplo n.º 1
0
void Window_Tips::init(void *data){
    m_tips = GUIReader::getInstance()->widgetFromJsonFile("ccs/Window_Tips.json");
    
    WindowTipsParam* param = static_cast<WindowTipsParam*>(data);
    if (param) {
        Node* bg = m_tips->getChildByName("bg");
        Label* m_label = Label::createWithSystemFont(loc(param->key), "", 27);
        m_label->setWidth(320);
        m_label->setAnchorPoint(Point::ANCHOR_TOP_LEFT);
        m_label->setPosition(Point(40,410));
        m_label->setTextColor(Color4B(200,200,200,255));
        bg->addChild(m_label);
    }
    
    CC_SAFE_DELETE(param);

    
    m_btns.push_back(ui::Helper::seekWidgetByName(m_tips, "btn_ok"));
    m_btns.push_back(ui::Helper::seekWidgetByName(m_tips, "btn_close"));
    
    int tag = 0;
    for (auto btn :m_btns) {
        btn->setTag(tag++);
        btn->setTouchEnabled(true);
        btn->addTouchEventListener(CC_CALLBACK_2(Window_Tips::onBtnEvent, this));
    }
    m_autoCenter = false;
    setAnimType(WINDOW_ANIM_RIGHT);
}
Exemplo n.º 2
0
/**
 * Create guardian.
 *
 * @param gX X-coordinate
 * @param gY Y-coordinate
 */
Guardian::Guardian(unsigned char gX, unsigned char gY) : JJ1Event(gX, gY) {

	setAnimType(E_LEFTANIM);

	stage = 0;

	return;

}
Exemplo n.º 3
0
void BaoGet::init(void *data){
    m_tips = CCUIHELPER->createWidgetFromJsonFile("BaoGet.json");
    BaoInfoParam* param = (BaoInfoParam*)data;
    int id = 0;
    if (param) {
        id = param->id;
    }
    CC_SAFE_DELETE(param);
    initInfo(id);
    setAnimType(WINDOW_ANIM_RIGHT);
}
Exemplo n.º 4
0
void Window_Shop::init(void *data){
    
    m_tips = GUIReader::getInstance()->widgetFromJsonFile("ccs/Window_Shop.json");
    
    
    
    m_btns.push_back(ui::Helper::seekWidgetByName(m_tips, "btn_close"));
    
    int tag = 0;
    for (auto btn :m_btns) {
        btn->setTag(tag++);
        btn->setTouchEnabled(true);
        btn->addTouchEventListener(CC_CALLBACK_2(Window_Shop::onBtnEvent, this));
    }
    m_autoCenter = false;
    setAnimType(WINDOW_ANIM_RIGHT);
}
Exemplo n.º 5
0
/**
 * Create bridge.
 *
 * @param gX X-coordinate
 * @param gY Y-coordinate
 */
JJ1Bridge::JJ1Bridge (unsigned char gX, unsigned char gY) : JJ1Event(gX, gY) {

	y = TTOF(gY) + ITOF(set->multiB);

	setAnimType(E_LEFTANIM);

	// Bridges should ignore the default yOffsets
	noAnimOffset = true;

	// leftDipX and rightDipX used to store leftmost and rightmost player on bridge
	// Start with minimum values
	leftDipX = set->multiA * set->pieceSize * F4;
	rightDipX = 0;

	return;

}
Exemplo n.º 6
0
void Window_Ability::init(void *data){
    
    m_tips = GUIReader::getInstance()->widgetFromJsonFile("ccs/Window_Ability.json");
    
    m_info_bg = ui::Helper::seekWidgetByName(m_tips, "stage_info_bg");
    m_info_bg->setOpacity(0);
    m_info_bg->setPosition(Point(-334,-58));
    
    m_black_block_1 = dynamic_cast<ImageView*>(ui::Helper::seekWidgetByName(m_tips,"black_block_1"));
    m_black_block_1->setScaleX(0.1f);
    m_black_block_2 = dynamic_cast<ImageView*>(ui::Helper::seekWidgetByName(m_tips,"black_block_2"));
    m_black_block_2->setScaleX(0.1f);
    
    Widget* stage_bg = ui::Helper::seekWidgetByName(m_tips, "stage_bg");
    ScrollView* m_scroll_view = dynamic_cast<ScrollView*>(ui::Helper::seekWidgetByName(stage_bg, "stage_list_container"));
    HScrollViewBar* bar = HScrollViewBar::create();
    stage_bg->addChild(bar);
    bar->setLocalZOrder(1);
    bar->setBackgroundImage("ccs/common/scroll_view_bar_bg.png", 460);
    bar->setForegroundImage("ccs/common/scroll_view_bar_fore.png");
    bar->attach(m_scroll_view, HSCROLLBAR_VERTICAL);
    bar->setRotation(-90);
    bar->setPosition(Point(508,10));
    
    
    m_btns.push_back(ui::Helper::seekWidgetByName(m_tips, "btn_close"));
    
    int tag = 0;
    for (auto btn :m_btns) {
        btn->setTag(tag++);
        btn->setTouchEnabled(true);
        btn->addTouchEventListener(CC_CALLBACK_2(Window_Ability::onBtnEvent, this));
    }
    m_autoCenter = false;
    setAnimType(WINDOW_ANIM_RIGHT);
    
    for (int i=0; i<7; i++) {
        char item_name[30];
        sprintf(item_name,"stage_%d_bg",i);
        Widget* item = ui::Helper::seekWidgetByName(m_tips, item_name);
        item->addTouchEventListener(CC_CALLBACK_2(Window_Ability::onItemClick, this));
        item->setTouchEnabled(true);
        item->setTag(i);
    }
}
Exemplo n.º 7
0
void Window_Weapon::init(void *data){
    
    m_tips = GUIReader::getInstance()->widgetFromJsonFile("ccs/Window_Weapon.json");
    
    m_info_bg = ui::Helper::seekWidgetByName(m_tips, "weapon_bg");
    m_info_bg->setOpacity(0);
    m_info_bg->setPosition(Point(300,18));
    ScrollView* m_weapon_scrollview = dynamic_cast<ScrollView*>(ui::Helper::seekWidgetByName(m_info_bg, "weapon_container"));
    HScrollViewBar* weapon_bar = HScrollViewBar::create();
    m_info_bg->addChild(weapon_bar);
    weapon_bar->setLocalZOrder(1);
    weapon_bar->setBackgroundImage("ccs/common/scroll_view_bar_bg.png", 510);
    weapon_bar->setForegroundImage("ccs/common/scroll_view_bar_fore.png");
    weapon_bar->attach(m_weapon_scrollview, HSCROLLBAR_VERTICAL);
    weapon_bar->setRotation(-90);
    weapon_bar->setPosition(Point(605,10));
    
    m_black_block_1 = dynamic_cast<ImageView*>(ui::Helper::seekWidgetByName(m_tips,"black_block_1"));
    m_black_block_1->setScaleX(0.1f);
    m_black_block_2 = dynamic_cast<ImageView*>(ui::Helper::seekWidgetByName(m_tips,"black_block_2"));
    m_black_block_2->setScaleX(0.1f);
    
    Widget* stage_bg = ui::Helper::seekWidgetByName(m_tips, "weapon_type_bg");
    ScrollView* m_scroll_view = dynamic_cast<ScrollView*>(ui::Helper::seekWidgetByName(stage_bg, "weapon_type_container"));
    HScrollViewBar* bar = HScrollViewBar::create();
    stage_bg->addChild(bar);
    bar->setLocalZOrder(1);
    bar->setBackgroundImage("ccs/common/scroll_view_bar_bg.png", 490);
    bar->setForegroundImage("ccs/common/scroll_view_bar_fore.png");
    bar->attach(m_scroll_view, HSCROLLBAR_VERTICAL);
    bar->setRotation(-90);
    bar->setPosition(Point(310,10));
    
    for (int i=0; i<8; i++) {
        char item_name[30];
        sprintf(item_name,"type_bg_%d",i);
        Widget* item = ui::Helper::seekWidgetByName(m_tips, item_name);
        item->addTouchEventListener(CC_CALLBACK_2(Window_Weapon::onItemClick, this));
        item->setTouchEnabled(true);
        item->setTag(i);
    }
    
    m_right_bottom = ui::Helper::seekWidgetByName(m_tips, "right_bottom");
    
    
    num_coin = dynamic_cast<TextAtlas*>(ui::Helper::seekWidgetByName(m_tips, "num_coin"));
    num_money = dynamic_cast<TextAtlas*>(ui::Helper::seekWidgetByName(m_tips, "num_money"));
    num_coin->setString(to_string(G::getCoin()));
    num_money->setString(to_string(G::getMoney()));
    
    m_btns.push_back(ui::Helper::seekWidgetByName(m_tips, "btn_close"));
    m_btns.push_back(ui::Helper::seekWidgetByName(m_tips, "btn_coin_add"));
    m_btns.push_back(ui::Helper::seekWidgetByName(m_tips, "btn_money_add"));
    
    int tag = 0;
    for (auto btn :m_btns) {
        btn->setTag(tag++);
        btn->setTouchEnabled(true);
        btn->addTouchEventListener(CC_CALLBACK_2(Window_Weapon::onBtnEvent, this));
    }
    m_autoCenter = false;
    setAnimType(WINDOW_ANIM_RIGHT);
}
Exemplo n.º 8
0
/**
 * Episode 1 guardian iteration.
 *
 * @param ticks Time
 *
 * @return Remaining event
 */
JJ1Event* MedGuardian::step(unsigned int ticks) {

	fixed sin = fSin(ticks / 2);
	fixed cos = fCos(ticks / 2);

	set = prepareStep(ticks);

	if (!set) return remove(false);


	if (level->getEventHits(gridX, gridY) >= set->strength / 2)
 		stage = 1;
	if (level->getEventHits(gridX, gridY) >= set->strength)
		stage = 2;

	// Stage 0: Move in an eight shape and fire the occasional shot

	if (stage == 0) {

		if (direction == 1) {

			// Lower right part of the eight
			setAnimType(E_LEFTANIM);

			dx = TTOF(gridX) + (sin * 96) - x + ITOF(96);
			dy = TTOF(gridY) - (cos * 64) - y;

			if (cos > 0) direction = 2;

		}

		if (direction == 2) {

			// Upper left part of the eight
			setAnimType(E_LEFTANIM);

			dx = TTOF(gridX) - (sin * 96) - x - ITOF(96);
			dy = TTOF(gridY) - (cos * 64) - y;

			if (cos < 0) direction = 3;

		}

		if (direction == 3) {

			// Lower left part of the eight
			setAnimType(E_RIGHTANIM);

			dx = TTOF(gridX) - (sin * 96) - x - ITOF(96);
			dy = TTOF(gridY) - (cos * 64) - y;

			if (cos > 0) direction = 4;

		}

		if (direction == 4) {

			// Upper right part of the eight
			setAnimType(E_RIGHTANIM);

			dx = TTOF(gridX) + (sin * 96) - x + ITOF(96);
			dy = TTOF(gridY) - (cos * 64) - y;

			if (cos < 0) direction = 1;

		}

		// Decide if there should be a shot
		if ((ticks % (set->bulletPeriod * 25) >
				(unsigned int)(set->bulletPeriod * 25) - 300)) {

			level->setEventTime(gridX, gridY, ticks + 300);
			shoot = true;

		}

		// Shoot if there is a shot
		if (level->getEventTime(gridX, gridY) &&
				(ticks > level->getEventTime(gridX, gridY)) &&
				shoot) {

			if (set->bullet < 32)
				level->createBullet(NULL,
					gridX,
					gridY,
					x + anim->getAccessoryShootX(),
					y + anim->getAccessoryShootY(),
					set->bullet,
					(animType != E_LEFTANIM),
					ticks);

			shoot = false;

		}

	}

	// Stage 1: Hop back and forth destroying the bottom row of tiles

	if (stage == 1) {

		fixed startPos = TTOF(gridY) + ITOF(40);

		if (direction < 5) {

			// Move up or down towards the starting position for hopping
			direction = (y > startPos) ? 5 : 6;

		}

		// Move up to the correct height
		if (direction == 5) {

			if (y > startPos) {

				dx = 0;
				dy = ITOF(-2);

			}
			else direction = 7;

		}

		// Move down to the correct height
		if (direction == 6) {

			if (y < startPos) {

				dx = 0;
				dy = ITOF(2);

			} else direction = 7;

		}

		// Cosinus should be near zero before we start hopping.
		if (direction == 7) {

			dx = 0;
			dy = 0;

			if (cos > -100 && cos < 100) direction = 8;

		}

		// Start hopping
		if (direction == 8) {

			if (level->checkMaskUp(x, y) ||
					level->checkMaskUp(x + width, y))
				setAnimType((animType == E_LEFTANIM) ? E_RIGHTANIM : E_LEFTANIM);

			dy = startPos - abs(cos * 96) - y;
			dx = abs(cos * 6);

			if (animType == E_LEFTANIM)
				dx *= -1;

			if (cos < 0 &&
					level->checkMaskDown(x + ITOF(anim->getWidth() / 2), y + TTOF(1)))
				direction = 9;

		}

		// Destroy the block underneath
		if (direction == 9) {

			// Shake a bit
			dx = (FTOI(x) % 2) ? ITOF(1) : ITOF(-1);
			dy = 0;

			// Remove the tile
			if (cos > 0 && cos < 100) {

				level->setTile(
						FTOT(x + ITOF((anim->getWidth() / 2))),
						FTOT(y) + 1,
						set->magnitude);

				direction = 8;

			}

		}

	}

	// Stage 2: End of behavior

	if (stage == 2) {

		dx = 0;
		dy = ITOF(4);

	}

	x += dx;
	y += dy;
	dx = dx << 6;
	dy = dy << 6;

	return this;

}