本文整理汇总了C++中gd::Project::GetProjectFile方法的典型用法代码示例。如果您正苦于以下问题:C++ Project::GetProjectFile方法的具体用法?C++ Project::GetProjectFile怎么用?C++ Project::GetProjectFile使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类gd::Project
的用法示例。
在下文中一共展示了Project::GetProjectFile方法的9个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: LoadResources
void TileSet::LoadResources(gd::Project &game)
{
try
{
gd::ImageResource & image = dynamic_cast<gd::ImageResource&>(game.GetResourcesManager().GetResource(textureName));
//Load the resource into a wxBitmap (IDE only) and also get its SFMLTextureWrapper
#if defined(GD_IDE_ONLY) && !defined(GD_NO_WX_GUI)
//Force to change the working directory to make it work
wxString oldWorkingDir = wxGetCwd();
wxSetWorkingDirectory(wxFileName::FileName(game.GetProjectFile()).GetPath());
#endif
m_tilesetTexture = game.GetImageManager()->GetSFMLTexture(textureName);
#if defined(GD_IDE_ONLY) && !defined(GD_NO_WX_GUI)
wxSetWorkingDirectory(oldWorkingDir);
if ( wxFileExists(image.GetAbsoluteFile(game)) )
{
m_tilesetBitmap.LoadFile(image.GetAbsoluteFile(game), wxBITMAP_TYPE_ANY);
}
#endif
//Readjust the m_collidable std::vector according to the number of tiles
m_collidable.resize(GetTilesCount(), true);
}
catch(...)
{
m_tilesetTexture = std::shared_ptr<SFMLTextureWrapper>();
}
}
示例2: dialog
gd::BaseEvent::EditEventReturnType CppCodeEvent::EditEvent(
wxWindow* parent_,
gd::Project& game_,
gd::Layout& scene_,
gd::MainFrameWrapper& mainFrameWrapper_) {
#if !defined(GD_NO_WX_GUI)
EditCppCodeEvent dialog(parent_, *this, game_, scene_);
int returned = dialog.ShowModal();
if (returned == 0)
return Cancelled;
else {
// Force recreation of the assocaited source file
wxFileName outputFile(associatedGDManagedSourceFile);
outputFile.MakeAbsolute(
wxFileName::FileName(game_.GetProjectFile()).GetPath());
if (wxFileExists(outputFile.GetFullPath()))
wxRemoveFile(outputFile.GetFullPath());
EnsureAssociatedSourceFileIsUpToDate(game_);
if (returned == 2)
return ChangesMadeButNoNeedForEventsRecompilation;
else
return ChangesMade;
}
#else
return ChangesMade;
#endif
}
示例3: LoadResources
void TileSet::LoadResources(gd::Project &game)
{
m_dirty = true;
if(game.GetResourcesManager().HasResource(textureName))
{
gd::ImageResource & image = dynamic_cast<gd::ImageResource&>(game.GetResourcesManager().GetResource(textureName));
//Load the resource into a wxBitmap (IDE only) and also get its SFMLTextureWrapper
#if defined(GD_IDE_ONLY) && !defined(GD_NO_WX_GUI)
//Force to change the working directory to make it work
wxString oldWorkingDir = wxGetCwd();
wxSetWorkingDirectory(wxFileName::FileName(game.GetProjectFile()).GetPath());
#endif
m_tilesetTexture = game.GetImageManager()->GetSFMLTexture(textureName);
#if defined(GD_IDE_ONLY) && !defined(GD_NO_WX_GUI)
wxSetWorkingDirectory(oldWorkingDir);
if ( wxFileExists(image.GetAbsoluteFile(game)) )
{
wxBitmap bmp( image.GetAbsoluteFile(game), wxBITMAP_TYPE_ANY);
m_tilesetBitmap = bmp;
}
#endif
}
else
{
m_tilesetTexture = std::shared_ptr<SFMLTextureWrapper>();
}
}
示例4: Save
bool MainFrame::Save(gd::Project & project, wxString file)
{
bool isJSON = file.EndsWith(".json");
bool success =
(!isJSON && gd::ProjectFileWriter::SaveToFile(project, file)) ||
(isJSON && gd::ProjectFileWriter::SaveToJSONFile(project, file));
SetLastUsedFile(project.GetProjectFile());
return success;
}
示例5: CreateExternalSourceFileCompilationTask
void GD_API CodeCompilationHelpers::CreateExternalSourceFileCompilationTask(gd::Project & game, SourceFile & file, gd::Layout * scene)
{
CodeCompilerTask task;
wxFileName inputFile(file.GetFileName());
inputFile.MakeAbsolute(wxFileName::FileName(game.GetProjectFile()).GetPath());
task.compilerCall.inputFile = ToString(inputFile.GetFullPath());
task.compilerCall.outputFile = string(CodeCompiler::Get()->GetOutputDirectory()+"GD"+ToString(&file)+"ObjectFile.o");
task.compilerCall.compilationForRuntime = false;
task.compilerCall.optimize = false;
task.compilerCall.eventsGeneratedCode = false;
task.compilerCall.extraHeaderDirectories.push_back(ToString(wxFileName::FileName(game.GetProjectFile()).GetPath()));
task.scene = scene;
if ( scene ) task.postWork = std::shared_ptr<CodeCompilerExtraWork>(new SourceFileCodeCompilerPostWork(scene));
task.userFriendlyName = "Compilation of file "+file.GetFileName();
CodeCompiler::Get()->AddTask(task);
}
示例6: GetAbsoluteFile
gd::String Resource::GetAbsoluteFile(const gd::Project & project) const
{
#if !defined(GD_NO_WX_GUI)
wxString projectDir = wxFileName::FileName(project.GetProjectFile()).GetPath();
wxFileName filename = wxFileName::FileName(GetFile());
filename.MakeAbsolute(projectDir);
return filename.GetFullPath();
#else
gd::LogWarning("BAD USE: Resource::GetAbsoluteFile called when compiled with no support for wxWidgets");
return GetFile();
#endif
}
示例7: ImportTileMap
bool TileMapImporter::ImportTileMap(TileSet &tileSet, TileMap &tileMap,
bool importTileMap, bool importTileSetConf, bool importTileSetImage,
bool importHitboxes, gd::Project &project)
{
//Checks the map type
if(m_map->GetOrientation() != Tmx::TMX_MO_ORTHOGONAL)
{
gd::LogError(_("Only orthogonal maps are supported !"));
return false;
}
//Get the tileset list
if(m_map->GetNumTilesets() < 1)
{
gd::LogError(_("There are no tilesets in this file !"));
return false;
}
else if(m_map->GetNumTilesets() > 1)
{
gd::LogWarning(_("Only the first tileset will be taken into account. Tiles from supplementary tilesets may be lost."));
}
//Import the tileset image if needed
if(importTileSetImage)
{
const Tmx::Image *importedImage = m_map->GetTileset(0)->GetImage();
wxFileName imageFileName(importedImage->GetSource());
imageFileName.MakeAbsolute(wxFileName(m_filePath).GetPath());
if(!imageFileName.FileExists())
{
gd::LogError(_("The image can't be found !"));
return false;
}
gd::String newResourceName = gd::NewNameGenerator::Generate(
u8"imported_" + imageFileName.GetFullName(),
[&project](const gd::String &name) -> bool { return project.GetResourcesManager().HasResource(name); }
);
gd::LogMessage(_("The image is imported as ") + "\"" + newResourceName + "\".");
imageFileName.MakeRelativeTo(wxFileName(project.GetProjectFile()).GetPath());
project.GetResourcesManager().AddResource(newResourceName, imageFileName.GetFullPath(), "image");
tileSet.textureName = newResourceName;
//Reload the texture
tileSet.LoadResources(project);
gd::LogStatus(_("Tileset image importation completed."));
}
//Import the tileset configuration if wanted
if(importTileSetConf)
{
const Tmx::Tileset *importedTileset = m_map->GetTileset(0);
if(importedTileset->GetImage()->GetWidth() != tileSet.GetWxBitmap().GetWidth() ||
importedTileset->GetImage()->GetHeight() != tileSet.GetWxBitmap().GetHeight())
{
gd::LogWarning(_("Tileset image size is not the same. Some tiles may not be rendered correctly."));
}
tileSet.tileSize.x = importedTileset->GetTileWidth();
tileSet.tileSize.y = importedTileset->GetTileHeight();
tileSet.tileSpacing.x = tileSet.tileSpacing.y = importedTileset->GetSpacing();
if(importedTileset->GetMargin() > 0)
{
gd::LogWarning(_("Tilemap objects don't handle tilesets with margins around the images. Consider cutting the picture."));
}
gd::LogStatus(_("Tileset configuration importation completed."));
}
//Import the tilemap tiles if wanted
if(importTileMap)
{
//Tilemap size
if(tileMap.GetColumnsCount() != m_map->GetWidth() || tileMap.GetRowsCount() != m_map->GetHeight())
gd::LogMessage(_("Tilemap size is different."));
tileMap.SetSize(0, 0);
tileMap.SetSize(m_map->GetWidth(), m_map->GetHeight());
if(!importTileSetConf && !importTileSetImage)
CheckTilesCount(tileSet);
//Import layers and tiles
if(m_map->GetNumTileLayers() > 3)
{
gd::LogWarning(_("There are more than 3 tiles layers. Only the 3 firsts will be imported."));
}
else if(m_map->GetNumTileLayers() < 3)
{
gd::LogMessage(_("There are less than 3 tiles layers. Upper layer(s) will be empty."));
}
for(std::size_t i = 0; i < std::min(3, m_map->GetNumTileLayers()); i++)
{
//.........这里部分代码省略.........
示例8: LaunchEditor
void ParameterEditorLauncher::LaunchEditor(wxWindow * parent, gd::Project & project, gd::Layout & layout,
const gd::ParameterMetadata & metadata, std::vector<wxTextCtrl * > & paramEdits, std::size_t paramIndex)
{
if (paramIndex >= paramEdits.size()) return;
wxTextCtrl * editCtrl = paramEdits.at(paramIndex);
if (!editCtrl) return;
if ( gd::ParameterMetadata::IsObject(metadata.GetType()) )
{
gd::ChooseObjectDialog dialog(parent, project, layout, true, metadata.GetExtraInfo());
if ( dialog.ShowModal() == 1 )
{
editCtrl->ChangeValue(dialog.GetChosenObject());
}
return;
}
else if ( metadata.GetType() == "behavior" )
{
gd::String object = paramEdits.empty() ? "" : paramEdits[0]->GetValue();
gd::ChooseBehaviorDialog dialog(parent, project, layout, object, metadata.GetExtraInfo());
if (dialog.DeduceBehavior() || dialog.ShowModal() == 1 )
editCtrl->ChangeValue(dialog.GetChosenBehavior());
return;
}
else if ( metadata.GetType() == "expression" )
{
gd::EditExpressionDialog dialog(parent, editCtrl->GetValue(), project, layout);
if ( dialog.ShowModal() == 1 )
{
editCtrl->ChangeValue(dialog.GetExpression());
}
return;
}
else if ( metadata.GetType() == "mouse" )
{
ChoixBouton dialog(parent, editCtrl->GetValue());
if ( dialog.ShowModal() == 1 )
{
editCtrl->ChangeValue(dialog.bouton);
}
return;
}
else if ( metadata.GetType() == "key" )
{
ChoixClavier dialog(parent, editCtrl->GetValue());
if ( dialog.ShowModal() == 1 )
{
editCtrl->ChangeValue(dialog.selectedKey);
}
return;
}
else if ( metadata.GetType() == "string" )
{
gd::EditStrExpressionDialog dialog(parent, editCtrl->GetValue(), project, layout);
if ( dialog.ShowModal() == 1 )
{
editCtrl->ChangeValue(dialog.GetExpression());
}
return;
}
else if ( metadata.GetType() == "relationalOperator" )
{
SigneTest dialog(parent);
int chosenOperator = dialog.ShowModal();
if ( chosenOperator == 1 )
editCtrl->ChangeValue("=");
if ( chosenOperator == 2 )
editCtrl->ChangeValue(">");
if ( chosenOperator == 3 )
editCtrl->ChangeValue("<");
if ( chosenOperator == 4 )
editCtrl->ChangeValue(">=");
if ( chosenOperator == 5 )
editCtrl->ChangeValue("<=");
if ( chosenOperator == 6 )
editCtrl->ChangeValue("!=");
return;
}
else if ( metadata.GetType() == "color" )
{
wxColour color = wxGetColourFromUser(parent, wxColour(0,0,0));
if ( color.IsOk() )
{
wxString r; r << static_cast<int>(color.Red());
wxString v; v << static_cast<int>(color.Green());
wxString b; b << static_cast<int>(color.Blue());
wxString colorStr = "\""+r+";"+v+";"+b+"\"";
editCtrl->ChangeValue(colorStr);
}
return;
}
else if ( metadata.GetType() == "police" )
{
wxString projectDirectory = wxFileName::FileName(project.GetProjectFile()).GetPath();
wxFileDialog dialog(parent, _("Choose a font ( ttf/ttc files )"), projectDirectory, "", "Polices (*.ttf, *.ttc)|*.ttf;*.ttc");
//.........这里部分代码省略.........
示例9: CopyAllResourcesTo
bool ProjectResourcesCopier::CopyAllResourcesTo(gd::Project & originalProject, AbstractFileSystem & fs,
gd::String destinationDirectory, bool updateOriginalProject, wxProgressDialog * optionalProgressDialog,
bool askAboutAbsoluteFilenames, bool preserveDirectoryStructure)
{
//Check if there are some resources with absolute filenames
gd::ResourcesAbsolutePathChecker absolutePathChecker(fs);
originalProject.ExposeResources(absolutePathChecker);
bool copyAlsoResourcesWithAbsolutePath = !askAboutAbsoluteFilenames;
std::cout << "Copying all ressources to " << destinationDirectory;
#if !defined(GD_NO_WX_GUI)
if ( !copyAlsoResourcesWithAbsolutePath )
{
copyAlsoResourcesWithAbsolutePath = absolutePathChecker.HasResourceWithAbsoluteFilenames() &&
wxMessageBox(_("Some resources are using absolute filenames.\nDo you want them to be copied in the new folder of the project? If you choose No, they won't be modified."),
_("Some resources are using absolute filenames."), wxYES_NO | wxICON_QUESTION) == wxYES;
}
#endif
//Get the resources to be copied
gd::ResourcesMergingHelper resourcesMergingHelper(fs);
resourcesMergingHelper.SetBaseDirectory(fs.DirNameFrom(originalProject.GetProjectFile()));
resourcesMergingHelper.PreserveDirectoriesStructure(preserveDirectoryStructure);
resourcesMergingHelper.PreserveAbsoluteFilenames(!copyAlsoResourcesWithAbsolutePath);
if ( updateOriginalProject )
{
originalProject.ExposeResources(resourcesMergingHelper);
}
else
{
std::shared_ptr<gd::Project> project(new gd::Project(originalProject));
project->ExposeResources(resourcesMergingHelper);
}
//Copy resources
map<gd::String, gd::String> & resourcesNewFilename = resourcesMergingHelper.GetAllResourcesOldAndNewFilename();
unsigned int i = 0;
for(map<gd::String, gd::String>::const_iterator it = resourcesNewFilename.begin(); it != resourcesNewFilename.end(); ++it)
{
if ( !it->first.empty() )
{
#if !defined(GD_NO_WX_GUI)
if ( optionalProgressDialog )
{
if ( !optionalProgressDialog->Update(i/static_cast<float>(resourcesNewFilename.size())*100.0f, _("Exporting ")+it->second) )
return false; //User choose to abort.
}
#endif
//Create the destination filename
gd::String destinationFile(destinationDirectory + "/" + it->second);
fs.MakeAbsolute(destinationFile, destinationDirectory);
if ( destinationFile != it->first )
{
//Be sure the directory exists
gd::String dir = fs.DirNameFrom(destinationFile);
if ( !fs.DirExists(dir) ) fs.MkDir(dir);
//We can now copy the file
if ( !fs.CopyFile(it->first, destinationFile) )
{
gd::LogWarning( _( "Unable to copy \"")+it->first+_("\" to \"")+destinationFile+_("\"."));
}
}
}
++i;
}
return true;
}