Ejemplo n.º 1
0
void EditorScene::prevFrame()
{
    switchAllDots(false);
    _frameIndex = std::max(0, _frameIndex-1);
    refreshLines();
    refreshTriangles();
    refreshFrameNum();
    switchAllDots(true);
}
Ejemplo n.º 2
0
void EditorScene::nextFrame()
{
    switchAllDots(false);
    _frameIndex = std::min(NUM_FRAME-1, _frameIndex+1);
    refreshLines();
    refreshTriangles();
    refreshFrameNum();
    switchAllDots(true);
}
Ejemplo n.º 3
0
bool EditorScene::init()
{
    assert(TRBaseScene::init());

    _layer = Layer::create();
    this->addChild(_layer);

    _presentingLayer = Layer::create();
    _presentingLayer->setPosition({512,256+512});
    this->addChild(_presentingLayer);
    
    _pointLayer = Layer::create();
    _pointLayer->setPosition({512,256+512});
    this->addChild(_pointLayer);


    _diggColorPanel = Sprite::create("images/dfdg.png");
    _diggColorPanel->setPosition({512,256/2});
    _layer->addChild(_diggColorPanel);

    _diggColorLabel = Label::createWithTTF("color", "fonts/fz.ttf", 25);
    _diggColorLabel->setPosition({512, 256*0.77});
    _layer->addChild(_diggColorLabel);

    initLinesThings();
    initTrianglesThings();

    _rulerBg = Sprite::create("images/ruler.png");
    _rulerBg->setOpacity(128);
    _presentingLayer->addChild(_rulerBg);

    initKeyboardMouse();
    addTestLights();

    _lbFrameNum = Label::createWithTTF("0", "fonts/fz.ttf", 30);
    _lbFrameNum->setPosition(genPos({0.1,0.95}));
    _layer->addChild(_lbFrameNum);

    addCommonBtn({0.9,0.95}, "save", [this](){
        save();
    });
    addCommonBtn({0.7,0.95}, "back", [this](){
        save();
        Director::getInstance()->popScene();
    });

    addCommonLabel({0.5,0.95}, EditState::s()->_moduleName);

    load();
    refreshLines();
    refreshTriangles();
    refreshDiggColor();

    return true;
}
Ejemplo n.º 4
0
void EditorScene::addPoint(const cocos2d::Vec2 &rawpos)
{
    clearSelection();

    auto pos = help_touchPoint2editPosition(rawpos);
    auto point = std::make_shared<EEPoint>();
    point->position = help_editPosition2relativePosition(pos);
    point->height = findNearestHeight(point->position);
    point->sprite = Sprite::create("images/point_normal.png");
    point->sprite->setPosition(help_relativePosition2editPosition(point->position));
    point->sprite->setZOrder(Z_POINTS);
    point->sprite->setScale(DOT_SCALE);
    _pointLayer->addChild(point->sprite);
    point->pid = nextPid();
    _points[_frameIndex][point->pid] = point;
    delaunay();
    refreshLines();
    refreshTriangles();
}
Ejemplo n.º 5
0
void EditorScene::deletePoint(const cocos2d::Vec2 &rawpos)
{
    clearSelection();

    auto pos = help_touchPoint2editPosition(rawpos);

    for (auto & pair : _points[_frameIndex]) {
        auto distance = pair.second->sprite->getPosition().distance(pos);
        if (distance < pair.second->sprite->getContentSize().width * pair.second->sprite->getScale() /2){
            CCLOG("delete point");
            _pointLayer->removeChild(pair.second->sprite);
            _points[_frameIndex].erase(pair.first);
            _selectedPoints.remove(pair.second);

            delaunay();
            refreshLines();
            refreshTriangles();

            return;
        }
    }
}
Ejemplo n.º 6
0
void EditorScene::plastFrame()
{
    if (_copySrcIndex == _frameIndex) {
        return;
    }

    // clear current
    for ( auto pair :_points[_frameIndex] ){
        _pointLayer->removeChild(pair.second->sprite);
    }
    _points[_frameIndex].clear();
    _triangleColorMap[_frameIndex].clear();
    _triangles[_frameIndex].clear();

    // copy
    _pidIndex[_frameIndex] = _pidIndex[_copySrcIndex];
    for (auto pair : _points[_copySrcIndex]) {
        auto point = std::make_shared<EEPoint>();
        point->pid = pair.second->pid;
        point->height = pair.second->height;
        point->position = pair.second->position;
        point->sprite = Sprite::create("images/point_normal.png");
        point->sprite->setPosition(help_relativePosition2editPosition(point->position));
        point->sprite->setZOrder(Z_POINTS);
        point->sprite->setScale(DOT_SCALE);
        _pointLayer->addChild(point->sprite);
        _points[_frameIndex][point->pid] = point;
    }

    for (auto pair : _triangleColorMap[_copySrcIndex]) {
        _triangleColorMap[_frameIndex][pair.first] = pair.second;
    }

    this->delaunay();
    refreshLines();
    refreshTriangles();
}
Ejemplo n.º 7
0
void Game::refresh(){
	refreshLines();
	refreshSpeed();
}