Is there anyway of doing it?
I can't find any tutorial related to it on google.
Libgdx doesn't enforce any particular hierarchy or folder naming conventions for keeping your assets such that Gdx.files.internal("myassets/libgdx.png") would work just fine on Desktop. However, Android projects do have a specific folder in its root named assets. The folder has to be strictly named "assets" as enforced by the Android project [1]. Therefore, it would be a better idea to lay your folder hierarchy the same way in other projects as well so that you won't have to make changes for individual platforms. A much better approach would be to just place your resources in the Android project and link them to other projects. This would allow you to update your resources in only one project and that would be reflected everywhere. This has been explained in detail here.
And as an informative note, start using AssetManager to manage assets for your Libgdx project as it would streamline asset handling to a great degree.
You really do not need to do anything. You can use any folder in the Desktop project root. For example:
texture = new Texture(Gdx.files.internal("myfolder/libgdx.png"));
Related
I have a project that uses both PHP and Python, and I would like to use JetBrains IDEs (in this case PhpStorm and PyCharm) to work with both languages.
However when I open the project using both IDEs concurrently I get a pop up whenever I switch from one to the other, as the newly focused IDE detects metadata that has been written to the project directory by the other IDE. I imagine this would be a problem between other combinations of JetBrains IDEs as well (hence the use of the generic jetbrains tag).
I have a work around (I will post in an answer for others to view), but it is somewhat awkward to set up, and I may well be working with other projects that use the same combination of languages.
Is there an easier solution?
My current workaround:
Create a new directory separate to the main project directory - using the language specific IDE for the second-most used language in the project, open the new directory as a project, and using the options in Settings > Project > Project Structure, add the main project directory as a separate content root.
Whenever needing to work on the parts of the project written in the secondary language, you can now open the new directory instead; this keeps metadata for both IDEs separate.
A workaround which allows for two IDE's to share the same directory without IDE settings conflicts.
JetBrains software allows you to store project settings as either a file based project (*.iml), or a directory based project (.idea).
To choose file or directory based projects, change the file storage type when opening a project.
Note: Directory based projects are preferred to file based projects, as they allow for versioning of shared settings. Support for file based projects is deprecated and may be removed.
This is a very basic question, but I have not been able to find the answer anywhere.
I just got Cocos 2Dx 3.3, made a new project and built the HelloWorld scene that was generated.
It generated projects for all platforms, but I am currently compiling and running the Mac project using XCode.
I can easily add new files using XCode, but of course it only adds it to my XCode Project. I would have expected a way to automatically modify all projects at once to add files or change compiler settings. I saw that there is a CMake file, probably used for command line compilation, but I cannot find a way to use that to regenerate the projects for all platforms.
Is it possible to automatically add a file to all platforms? Maybe it is possible to modify the template directory os Cocos and use the cocos new command line to recreate the project from scratch?
Or is it better to do all that manually?
Such an automation would imply parsing of a project file, finding list of relevant files and then changing all the dozen of project files. Which is hell of the work.
Even if it was implemented, how would this implementation decide which project file is a main one? (to get filelist from) And if your projects all have different lists of files? This would need merging etc. etc.
For now cocos new only copies files from one place to another. Frankly, Cocos2d-x have much more serious problems to solve, so I don't think this feature will ever be implemented.
However, you could customize project files/folders to your needs to make process of adding files more or less convenient and sometimes even automatic. Here are some clues:
It is easy to change Android and Linux Makefiles so they will pick up all the source files from a specified folder. Just use wildcards. Resource files are picked up by default.
For Visual Studio solutions (Win32, Win8, WinPhone) you could enable "Show all files" to see all files that either added or not. Unfortunately you can only see files down in the folder tree relative to project folder. To see Classes folder, make a symlink (link /j) of a Classes folder near .vcxproj file. You'd better don't copy/move project folder after it. And don't forget to add this linked folder to ignore list of your versioning system, or you will end up with duplicated files. Resource files are picked up by default for Windows projects.
I am not aware of any solution for XCode project, so you basically stuck with manual source file addition. Which is most annoying among all platforms. However it can pick up resource folders with all files.
Anyway, I would be glad if someone would proof me wrong and would write some kind of script to solve this problem (and also to change project name, company id, automatic versioning, etc.). I believe it could be done more or less reliably with, let's say Python and some regex magic. At least until project file formats will change.
I have a Windows Store App that has many, many images in it. Further, these images need to be access in multiple projects on multiple plaftorms.
I had created a class library specifically targetting WinRT. This worked well and I was able to access the images using the Uri: "ms-appx:///MyImageClassLibrary/PathToImage/ImageName.png".
The beautiful part of this was that I could have my images sorted by scale similar to how I would in the local assets themselves, via a folder structure such as
/Images
/scale-100
Image1.png
/scale-140
Image1.png
/scale-180
Image1.png
/scale-80
Image1.png
Unfortunately, when I retargeted the library to a PCL (targeting Profile 259), This functionality broke. I now have to manually refer to the same image as "ms-appx:///MyImageClassLibrary/PathToImage/scale-100/ImageName.png".
Is there a way to fix this? Must I target the library to specifically WinRT? If I do target the library to WinRT, can that include Windows Phone 8.1? Will Windows Phone 8.1 be able to process the differently-scaled images?
Based on my intuition, I think I'll likely have to make a different image library for each platform. If this is the case, is there a way to auto-generate or link a subsequent class library targeted at another platform (such as Xamarin.iOS/Xamarin.Android) that copies all files in a given folder of the base project (such as all of them in scale-100). I know that I can link files manually, but can I link folders so that any updates to the canonical project are reflected in platform-specific projects?
I will be experimenting more with this process, and will update here with any information I find.
Thanks.
Updates:
The scaling and direct reference work just fine with both Windows 8.1 and Windows Phone 8.1 targetted.
It appears you've figured this out, but for a PCL to support AppX resources, it needs to exclusively target platforms which support AppX resources. Right now that means Windows 8.1 and Windows Phone 8.1.
Plead/Preparing for standard SO backlash
This is a generic question I apologize as I'm not an SO "noob" and I realize this doesn't fit the format exactly, if you can suggest a better place for this query I'm all ears. If you choose to down vote or close please suggest an alternative.
Question
Is anyone aware of projects that already generate a PSD file from within AS3?
Background (everything below here you may not care about if you just want to answer a question, but if interested I could use a hand)
I've found an AS3 PSD parser here.
For some basic tests this has worked fine (after some tweaking to avoid errors). However, now the task is to reverse this process to write a PSD file.
Current plan (and overall goal)
I also found a file format specification document.
My plan at this point is to just start from the top and work my way through the document building each of the parts of the file (and helper value objects) as I go along. Since this will be a very time consuming process, I'm wondering if there's any other previous work I could build off of.
Ultimately my goal is to integrate this code into a mobile drawing project I've been working on for some time. Since it's a mobile project I have to deal with the possibility that the OS kills my app to reclaim memory, in that case I need to be able to save/load the existing state of the app (currently has layers of BitmapData similar to photoshop, plus would be cool to be able to open PSD files and open my files from the device in photoshop with layers preserved).
Links to live version and code
The app can be downloaded here (is free will remain free, no ads, app is funded by love and the desire to create something cool everyone can have/use):
Google Play
Amazon App Store
Still working on an iOS release (process is more involved than the other two stores)
The code can be found here on github (Flash Builder project files in the FlashBuilderProject/FingerPainting folder).
Legal
Essentially the code contained in that repository is all MIT or Apache Licensed (will be going back to double each of the authors sites to get the original licenses to copy in now, just in case). I'm not a lawyer, but I believe I legitimately obtained everything in the project currently and am simply obligated to include the licenses and make my extensions of the source code available in some cases. (fonts came from google web fonts and downloaded Roboto from Google directly http://developer.android.com/design/style/typography.html). Any code in the com.shaunhusain package I wrote and you can assume is GPL for now. If anyone more legally savvy wants to tell me I'm breaking the law, and how, I would appreciate it.
The portions included and used from other sites include
Actuate MIT License
PNGEncoder2 License included in source from Adobe permits usage.
ShareANE I don't have a license for this one (he didn't include one) the author is chinese, as such I'm having some difficulty figuring out how to contact him, but am assuming I'm safe to use his code.
A couple of pieces of code are in the repository but currently not used including a GIF parser/encoder from bytearray.org and a ColorMatrix class from Grant Skinner.
Update
After trying this for a while I ended up deciding to just use the ORA format since it is open and far far simpler and works fine with GIMP and Krita (open source editors).
I'm not sure about the intended use, but if you are compiling the file in Flash, you might be able to use JSFL to export the fla to a PSD. Then tie the JSFL functionality to a button in a SWF that you load as a panel in the IDE. JSFL is pretty powerful, however it only works within the IDE/locally.
(my apologies for the non-specific wording of the question title, and for liberal use of öpen source" when I actually mean "project setup at SourceForge")
We have recently open sourced a 3D modeler we'd been selling for a couple of years, with the main goal of keeping the application alive. We setup shop at SourceForge.net, and are now working towards a process resulting in a steady flow of binary releases. So far, everything is swell.
However, besides the main application, we had also developed a couple of plugins (mainly for different import/export formats). Currently, these are still closed source, but we would like to open those up as well (3rd party plugin developers can take care of their own or donate and open the source). The question really is, should our plugins be hosted as a project on their own or not?
The options I see are:
Add the plugin sources into a subfolder of the SVN sources
Create a separate project for the set of plugins
Create a seperate project for each individual plugin
Which setup is the most practical and/or common, and how should I deal with the binaries?
When the application was still closed and commercial, it was kinda important that the plugin binaries could be updated seperately fom the main application, but now that everything is open and updated frequently, that's not so much of a big deal anymore. Also I'm not sure I want to bother contributing developers with a whole bunch of plugin sources they care nothing about as part of the main project.
Add the plugin sources into a subfolder of the SVN sources
I think that is a good idea if you don't have too many plugins. You could create a folder structure as shown at the end of my answer in order to manage plugins independently. But in this case you won't have fine control over SVN access.
The advantage is that you only have to maintain one project website (if you create one at all).
Create a separate project for the set of plugins
That's what Notepad++ does, for example. Their plugins are hosted on a separate SourceForge project. Having one download page full of plugins and another download page full of binary releases of your software improves readability. But don't forget to mention on the project web page that there's a separate plugin project.
It also has the advantage that you can manage the project web sites independently. For instance, you could put other users in charge of caring about the plugin site (if you find somebody who wants to maintain them).
Create a seperate project for each individual plugin
Not a good idea, maintenance will be harder this way, as you'll have multiple projects, repositories and project websites.
But it has an advantage though: You can be more fine-grained in granting people access to developing the plugins. For example, users A and B are allowed to work on plugin X, but not on plugin Y. With separate SF projects, this is easy to achieve. Same applies to the project web sites, of course.
So, as a conclusion, I would say that the more you care about SVN access rights and the more plugins you have, the more it makes sense to create one or more separate projects for your plugins.
Example SVN structure from #1:
/modeler
/trunk
/branches
/tags
/modeler-plugins
/plugin-x
/trunk
/branches
/tags
/plugin-y
/trunk
/branches
/tags