コード例 #1
0
ファイル: FocusFrame.cpp プロジェクト: pierfale/Moba
	void FocusFrame::draw(sf::RenderWindow* render) {
		if(m_style == NULL) {
			log_err "No style has been applied to the component "+getComponentName() end_log_err;
			return;
		}
		if(!m_visible) {
			return;
		}
		util::CoordInt coord = getRealCoord();
		BasicStyle::State state = BasicStyle::normal;

		int borderWidth = m_style->topleft(state)->getGlobalBounds().width;
		int borderHeight = m_style->topleft(state)->getGlobalBounds().height;
		m_style->topleft(state)->setPosition(coord.x, coord.y);
		render->draw(*m_style->topleft(state));

		m_style->top(state)->setPosition(coord.x+borderWidth, coord.y);
		m_style->top(state)->setScale(m_width-borderWidth*2, 1.0);
		render->draw(*m_style->top(state));

		m_style->topright(state)->setPosition(coord.x+m_width-borderWidth, coord.y);
		render->draw(*m_style->topright(state));

		m_style->right(state)->setPosition(coord.x+m_width-borderWidth, coord.y+borderHeight);
		m_style->right(state)->setScale(1.0, m_height-borderHeight*2);
		render->draw(*m_style->right(state));

		m_style->botright(state)->setPosition(coord.x+m_width-borderWidth, coord.y+m_height-borderHeight);
		render->draw(*m_style->botright(state));

		m_style->bot(state)->setPosition(coord.x+borderWidth, coord.y+m_height-borderHeight);
		m_style->bot(state)->setScale(m_width-borderWidth*2, 1.0);
		render->draw(*m_style->bot(state));

		m_style->botleft(state)->setPosition(coord.x, coord.y+m_height-borderHeight);
		render->draw(*m_style->botleft(state));

		m_style->left(state)->setPosition(coord.x, coord.y+borderHeight);
		m_style->left(state)->setScale(1.0, m_height-borderHeight*2);
		render->draw(*m_style->left(state));

		m_style->center(state)->setPosition(coord.x+borderWidth, coord.y+borderHeight);
		m_style->center(state)->setScale(m_width-borderWidth*2, m_height-borderHeight*2);
		render->draw(*m_style->center(state));

		m_text.draw(render);
	}
コード例 #2
0
ファイル: mainwindow.cpp プロジェクト: anonymouse1/Labyrus
bool MainWindow::updateProgress() {
    if ((input->coord.x < 0 || input->coord.x > input->n || input->coord.y < 0 ||
         input->coord.y > input->n || input->coord.h < 0 || input->coord.h > input->h) && (input->allowWin)) {
            if (!finished) {
                win();
                return false;
            }
    } else if (finished)
        restart();

    gpoint c = getRealCoord();
    if (progress[c.x][c.y][c.h])
        return false;
    else {
        progress[c.x][c.y][c.h] = true;
        return true;
    }
}
コード例 #3
0
ファイル: mainwindow.cpp プロジェクト: anonymouse1/Labyrus
void MainWindow::startBot() {
    if (finished)
        input->messages->addMessage(tr("Game already finished"));
    else if (widget->botActive)
        input->messages->addMessage(tr("Bot already started"));

    widget->botLast = 0;
    input->messages->addMessage(tr("Bot started"));
    widget->botActive = true;
    stopBot = false;
    for (int i = 0; i < input->n; i++)
        for (int j = 0; j < input->n; j++)
            for (int k = 0; k < input->h; k++)
                w[i][j][k] = false;

    integerCoord = getRealCoord();
    superDfs();
    widget->botActive = false;
    stopBot = false;
    input->messages->addMessage(tr("Bot finished"));
}
コード例 #4
0
ファイル: CharacterFrame.cpp プロジェクト: pierfale/Moba
	void CharacterFrame::draw(sf::RenderWindow* render) {
		util::CoordInt coord = getRealCoord();
		if(m_select)
			m_selected = true;

		m_width -= 10;
		m_height -= 4;
		m_coord.x += 5;
		m_coord.y += 2;

		Button::draw(render);

		m_width += 10;
		m_height += 4;
		m_coord.x -= 5;
		m_coord.y -= 2;

		m_selected = false;
		sf::Text name;
		name.setString(m_player->getName());
		name.setFont(*m_style->font());
		name.setCharacterSize(18);
		name.setColor(sf::Color::White);
		sf::FloatRect textSize = name.getGlobalBounds();
		name.setPosition(coord.x+13,coord.y+5);
		render->draw(name);

		sf::Text level;
		level.setString("level "+util::Cast::intToString(m_player->getLevel()));
		level.setFont(*m_style->font());
		level.setCharacterSize(14);
		level.setColor(sf::Color::White);
		textSize = level.getGlobalBounds();
		level.setPosition(coord.x+13,coord.y+30);
		render->draw(level);

	}
コード例 #5
0
ファイル: mainwindow.cpp プロジェクト: anonymouse1/Labyrus
bool MainWindow::superDfs() {
    if (stopBot)
        return 1;

    widget->botLast += 100.0 / input->n / input->n / input->h / 2;
    integerCoord = getRealCoord();

    w[integerCoord.x][integerCoord.y][integerCoord.h] = true;

    int sp[6];
    for (int i = 0; i < 6; i++)
        sp[i] = i;
    for (int i = 1; i < 6; i++)
        swap(sp[i], sp[rand() % i]);

    for (int i = 0; i < 6; i++) {
        if (sp[i] == 0)
            if (!w[integerCoord.x - 1][integerCoord.y][integerCoord.h] && !isWallLeft(integerCoord)) {
                integerCoord.x -= 1;
                standartMove(genFPoint(integerCoord.x + 1.5, integerCoord.y + 0.5, integerCoord.h + 0.5),
                             genFPoint(integerCoord.x + 0.5, integerCoord.y + 0.5, integerCoord.h + 0.5));
                integerCoord.x += 1;
            }

        if (sp[i] == 1)
            if (!w[integerCoord.x][integerCoord.y + 1][integerCoord.h] && !isWallForward(integerCoord)) {
                integerCoord.y += 1;
                standartMove(genFPoint(integerCoord.x + 0.5, integerCoord.y - 0.5, integerCoord.h + 0.5),
                             genFPoint(integerCoord.x + 0.5, integerCoord.y + 0.5, integerCoord.h + 0.5));
                integerCoord.y -= 1;
            }

        if (sp[i] == 2)
            if (!w[integerCoord.x][integerCoord.y - 1][integerCoord.h] && !isWallBackward(integerCoord)) {
                integerCoord.y -= 1;
                standartMove(genFPoint(integerCoord.x + 0.5, integerCoord.y + 1.5, integerCoord.h + 0.5),
                             genFPoint(integerCoord.x + 0.5, integerCoord.y + 0.5, integerCoord.h + 0.5));
                integerCoord.y += 1;
            }

        if (sp[i] == 3)
            if (!w[integerCoord.x + 1][integerCoord.y][integerCoord.h] && !isWallRight(integerCoord)) {
                integerCoord.x += 1;
                standartMove(genFPoint(integerCoord.x - 0.5, integerCoord.y + 0.5, integerCoord.h + 0.5),
                             genFPoint(integerCoord.x + 0.5, integerCoord.y + 0.5, integerCoord.h + 0.5));
                integerCoord.x -= 1;
            }

        if (sp[i] == 4)
            if (!w[integerCoord.x][integerCoord.y][integerCoord.h + 1] && !isWallUp(integerCoord)) {
                integerCoord.h += 1;
                standartMove(genFPoint(integerCoord.x + 0.5, integerCoord.y + 0.5, integerCoord.h - 0.5),
                             genFPoint(integerCoord.x + 0.5, integerCoord.y + 0.5, integerCoord.h + 0.5));
                integerCoord.h -= 1;
            }
        if (sp[i] == 5)
            if (!w[integerCoord.x][integerCoord.y][integerCoord.h - 1] && !isWallDown(integerCoord)) {
                integerCoord.h -= 1;
                standartMove(genFPoint(integerCoord.x + 0.5, integerCoord.y + 0.5, integerCoord.h + 1.5),
                             genFPoint(integerCoord.x + 0.5, integerCoord.y + 0.5, integerCoord.h + 0.5));
                integerCoord.h += 1;
            }
    }

    return 0;
}