CCScene* MapScene::scene(char type, std::string hostip) { CCScene * scene = NULL; do { // 'scene' is an autorelease object scene = CCScene::node(); CC_BREAK_IF(! scene); // 'layer' is an autorelease object MapScene *layer = MapScene::node(); CC_BREAK_IF(! layer); if (type == 'S') { layer->startServer(); } if (type == 'C') { layer->startClient(hostip); } if (type == 'P') { layer->startPractice(); } // add layer as a child to scene scene->addChild(layer); } while (0); CCDirector::sharedDirector()->setDeviceOrientation(CCDeviceOrientationPortrait); // return the scene return scene; }
void GameScene::RemoveSprite(SpriteFactory::TSpriteNode* sprite) { MapScene* myRender = reinterpret_cast<MapScene*>(GetRender()); if (myRender) myRender->RemoveSprite(sprite->m_sprite); }
void MapView::dropEvent(QDropEvent *event) { qdbg << "dropEvent: text=" << event->mimeData()->formats().first() << endl; if (!event->mimeData()->hasFormat(levelObjectNameMimeType)) return; event->acceptProposedAction(); QPoint dragOffset; QByteArray nameData; QByteArray encodedData = event->mimeData()->data(levelObjectNameMimeType); QDataStream dataStream(&encodedData, QIODevice::ReadOnly); dataStream >> nameData >> dragOffset; QString name = QString::fromUtf8(nameData); LevelObject *obj = LevelObjectsModel::sharedInstance()->levelObjectByName(name); if (!obj) return; QSizeF objSize = obj->size(); QPoint dragOffsetShifted(dragOffset.x() - objSize.width() / 2, dragOffset.y() - objSize.height() / 2); QPoint viewportTargetPos(event->pos() - dragOffsetShifted); LevelObject *newObject = obj->clone(); newObject->setPosition(mapToScene(viewportTargetPos)); connect(newObject, SIGNAL(modified()), mapScene(), SLOT(setModified())); MapItem *item = new MapItem(newObject); MapScene *scene = mapScene(); //scene->addItem(item); scene->setModified(true); NewItemCommand *command = new NewItemCommand(scene, item); scene->undoStack()->push(command); }
/** * @copydoc Editor::select_all */ void MapEditor::select_all() { MapScene* scene = ui.map_view->get_scene(); if (scene != nullptr) { scene->select_all(); } }
MapView* SampleLapViewer::createLapView(int refRace, int refLap) { QVector<QPointF> positions; QSqlQuery posQuery; posQuery.prepare("select longitude, latitude from POSITION where ref_lap_race = ? and ref_lap_num = ?"); posQuery.addBindValue(refRace); posQuery.addBindValue(refLap); if (posQuery.exec()) { while (posQuery.next()) { GeoCoordinate tmp; tmp.setLongitude(posQuery.value(0).toFloat()); tmp.setLatitude(posQuery.value(1).toFloat()); positions << tmp.projection(); } } MapScene* sc = new MapScene(50 * 1000, this); sc->addTrack(positions); MapView* view = new MapView(this); view->setDragMode(QGraphicsView::ScrollHandDrag); view->setScene(sc); connect(view, SIGNAL(zoomedAround(int,QPointF)), this, SLOT(zoomView(int))); return view; }
MapScene* MapScene::create() { MapScene *menu = new MapScene(); if (menu && menu->init()) { menu->autorelease(); return menu; } CC_SAFE_DELETE(menu); return nullptr; }
MapScene* defaultScene(MapDocument* document) { MapScene* scene = new MapScene(document); SceneCamera* c = new SceneCamera(scene->root()); c->setObjectName("camera"); c->setPosition(QVector3D(128, 128, 80)); c->lookAt(QVector3D(0,0,0)); return scene; }
MapScene* debugScene(MapDocument *document) { MapScene* scene = new MapScene(document); SceneCamera* c = new SceneCamera(scene->root()); c->setObjectName("camera"); c->setPosition(QVector3D(128, 128, 80)); c->lookAt(QVector3D(0,0,0)); // For the purposes of debugging, serialise our geometry data. // This is pretty damn verbose but it means we can load it back in easily. SceneObject* camModel = new SceneObject(scene->root()); camModel->setObjectName("camModel"); camModel->setGeometry(GeometryFactory::fromObjFile(":/models/editor/camera.obj", 32)); camModel->setPosition(QVector3D(0,128,0)); camModel->setShouldSerialiseGeometry(true); SceneObject* block = new SceneObject(scene->root()); block->setObjectName("block"); block->setGeometry(GeometryFactory::cube(32.0f)); block->geometry()->setTexture(0, "/textures/test"); block->setPosition(QVector3D(64,0,0)); block->setShouldSerialiseGeometry(true); SceneObject* blockChild = block->clone(); blockChild->setObjectName("blockChild"); blockChild->setParent(block); blockChild->setGeometry(GeometryFactory::cube(8.0f)); blockChild->geometry()->setTexture(0, "/textures/test"); blockChild->setPosition(QVector3D(0,0,40)); blockChild->setShouldSerialiseGeometry(true); SceneObject* block2 = block->clone(); block2->setObjectName("block2"); block2->geometry()->setTexture(0, "/textures/debug_translucent"); block2->setPosition(QVector3D(128,0,0)); block2->setRenderFlags(SceneObject::Translucent); block2->setShouldSerialiseGeometry(true); SceneObject* testBlock = new SceneObject(scene->root()); testBlock->setObjectName("testBlock"); testBlock->setGeometry(GeometryFactory::cubeSolidColor(96.0f, QColor::fromRgba(0x80ff8800))); testBlock->setPosition(QVector3D(0,-256,0)); testBlock->setRenderFlags(SceneObject::Translucent); testBlock->setShouldSerialiseGeometry(true); SceneObject* testBlock2 = testBlock->clone(); testBlock2->setObjectName("testBlock2"); testBlock2->setPosition(QVector3D(0, -512, 0)); testBlock->setShouldSerialiseGeometry(true); return scene; }
void MainWindow::on_actionAddObstacleRect_triggered(bool checked) { MapScene *scene = _mapScene; if (checked) { scene->setMode(MapScene::ModeAddObstacle); } else { scene->setMode(MapScene::ModeView); } }
void MainWindow::on_actionDeleteMapObject_triggered(bool checked) { MapScene *scene = _mapScene; if (checked) { scene->setMode(MapScene::ModeDelete); } else { scene->setMode(MapScene::ModeView); } }
bool GameScene::AddSprite(SpriteFactory::TSpriteNode* sprite) { bool isValid = false; MapScene* myRender = reinterpret_cast<MapScene*>(GetRender()); if (myRender) { myRender->AddSprite(sprite->m_sprite, sprite->m_layer); isValid = true; } return isValid; }
MapScene* MapScene::create() { MapScene * mapScene = new MapScene(); if (mapScene && mapScene->init()) { mapScene->autorelease(); return mapScene; } else { CC_SAFE_DELETE(mapScene); return NULL; } }
/** * @copydoc Editor::reload_settings */ void MapEditor::reload_settings() { Settings settings; MapScene* scene = ui.map_view->get_scene(); if (scene != nullptr) { QBrush brush(settings.get_value_color(Settings::map_background)); scene->setBackgroundBrush(brush); } get_view_settings().set_grid_style(static_cast<GridStyle>( settings.get_value_int(Settings::map_grid_style))); get_view_settings().set_grid_color( settings.get_value_color(Settings::map_grid_color)); }
void MapView::switchScenes() { //使用列表保存创建的所有场景,数据库也要设计合理! int newFloor = QInputDialog::getInt(this, tr("Enter New Floor Number"), tr("Floor:"),6); if(this->sceneMap.contains(newFloor)) { MapScene * scene = this->sceneMap.value(newFloor); this->setScene(scene); this->setCurrentScene(scene); } else { MapScene *scene = new MapScene; scene->setFloor(newFloor,false); this->addScene(newFloor,scene); this->setScene(scene); this->setCurrentScene(scene); } }
void GameScene::Update(const float elapsed) { //BaseScene::Update(elapsed); // Update of graphic scene. MapScene* myRender = reinterpret_cast<MapScene*>(GetRender()); if (myRender) { myRender->Update(elapsed); Camera& camera = myRender->GetCamera(); GetSource()->SetPosition( static_cast<float>(camera.GetX()), static_cast<float>(camera.GetY()), 0); } // Camera update. Camera& myCamera = GetRender()->GetCamera(); myCamera.SetPosition(myCamera.GetX() + MOVE_CAMERA, myCamera.GetY()); // Update of logic entities. for (unsigned int i = 0; i < m_entities.Size(); i++) m_entities[i]->Update(elapsed); }
void DocumentManager::addDocument(MapDocument *mapDocument) { Q_ASSERT(mapDocument); Q_ASSERT(!mDocuments.contains(mapDocument)); mDocuments.append(mapDocument); mUndoGroup->addStack(mapDocument->undoStack()); MapView *view = new MapView(mTabWidget); MapScene *scene = new MapScene(view); // scene is owned by the view scene->setMapDocument(mapDocument); view->setScene(scene); const int documentIndex = mDocuments.size() - 1; mTabWidget->addTab(view, mapDocument->displayName()); mTabWidget->setTabToolTip(documentIndex, mapDocument->fileName()); connect(mapDocument, SIGNAL(fileNameChanged()), SLOT(updateDocumentTab())); connect(mapDocument, SIGNAL(modifiedChanged()), SLOT(updateDocumentTab())); switchToDocument(documentIndex); centerViewOn(0, 0); }
bool GameScene::Init() { bool isValid = BaseScene::Init(); if (isValid) { rapidjson::Document* myDoc = GetDoc(); // Load map. m_map = NEW(Map, ((*myDoc)["map"].GetString())); MapScene* myRender = 0; if (m_map) { SetRender(NEW(MapScene, (m_map))); myRender = reinterpret_cast<MapScene*>(GetRender()); } // MapScene* myRender = reinterpret_cast<MapScene*>(GetRender()); if (myRender) { const char* dirImage = (*myDoc)["background"].GetString(); SpriteFactory::TSpriteNode* myImage = SpriteFactory::Instance().CreateImageNode(dirImage); myRender->SetBackgroundImage(myImage->m_image); myRender->GetCamera().SetBounds(0, 0, myRender->GetMap()->GetWidth(), myRender->GetMap()->GetHeight()); double cameraX = (*myDoc)["camera"]["x"].GetDouble(); double cameraY = (*myDoc)["camera"]["y"].GetDouble(); myRender->GetCamera().SetPosition(cameraX, cameraY); // Load entities types. const rapidjson::Value& myInfo = (*myDoc)["typesEntities"]; unsigned int numInfo = myInfo.Size(); for (unsigned int i = 0; i < numInfo; i++) EntityFactory::Instance().LoadInfo(myInfo[i]); // Load entities. const rapidjson::Value& entities = (*myDoc)["entities"]; unsigned int numEntities = entities.Size(); isValid = true; for (unsigned int i = 0; i < numEntities && isValid; i++) { BaseEntity* myEntity = EntityFactory::Instance().CreateEntity(entities[i]); if (myEntity) { myEntity->AddToScene(this); if (myEntity->GetSprite()) { Sprite* mySprite = myEntity->GetSprite()->m_sprite; mySprite->SetMap(m_map); mySprite->SetCollisionPixelData(NEW(CollisionPixelData, ("./data/sprites/dwarf_col.png"))); mySprite->SetCollision(Sprite::COLLISION_PIXEL); } m_entities.Add(myEntity); isValid = m_entities.Last()->Init(); } else isValid = false; } } } return isValid; }