andrew0 / cocoshop Goto Github PK
View Code? Open in Web Editor NEWVisual editor for cocos2d
License: Other
Visual editor for cocos2d
License: Other
i think cmd-[ and cmd cmd-] shortcuts are most known for ordering layers in design apps like Photoshop and illustrator so it will be good changing shortcuts to these since they are more obvious ones to use for ordering layers.
I think that an array would be more suited instead of dictionary. Right now, I'm using the sprite key property to store the sprite, which is just the name of the file. This works, but I only did this really because I was too lazy to actually calculate the changes in the indexes after a sprite was removed. It really should be an array instead.
Make it possible to do these things only with mouse:
I think it will be very useful to have Sprite List something like GIMP's layer list.
Linked sprites should be transformed together, when you transform one of them. No multiple selection needed - just apply delta of property from selected sprite to linked. Position & rotate should be enough.
Link flag should have free states: noLink, link, linkEndTop, linkEndBottom. Different chain icons should look good with this.
Two additional states: linkEndTop and linkEndBottom needed to prevent linking to groups into one, if they are near in sprites list.
Changing sprites order in sprites list needed to have ability to have many groups of linked sprites. Sprites that have linked flag will be linked only to sprites that are nearby and have linked flag too. Think about it like creating chains in sprite list. So it's possible to have only two additional references in CSSprite for above and below sprites.
Hide flag shouldn't make sprite invisible in CSD - only in editor.
These features will allow user to easily create menuItemSprites without supporting them directly.
Probably the best way of implementing this will be integrate stages to the CSModel.
More about good branching strategy: http://nvie.com/posts/a-successful-git-branching-model/
It's very good and common way to do branching with git, but there's one problem: topic (features) branches.
They should be used smartly - only for some large features, that cant be added after 1-2 days work on them, or if they are experimental.
Overuse of features branches can slowdown development process and make continuous integration impossible.
Good keyboard shortucts and controls can speed up work very well.
Here's my ideas about keyboard controls:
Add background size property, that will resize window (or even only cocos view (CSMacGLView))
Having info about background size can be very handy, cause background will set the contentSize of node, that we create with cocoshop.
With absolute path we're break csd just by renaming directory where png's appear, even if csd & png's are in one folder.
Relative path isn't the best solution, cause it will be better to save all assets into one file.
But it's good enough for 0.1
Use this:
https://github.com/sazameki/NSString-Relative-Path-Support
Cocoshop needs icon. We can use Coconade icon, if it's suitable for 'cocoshop' name
@andrew0, just copying your comment from #44 here, cause it is another issue.
@andrew0: "oh, and I also changed the way that the saving/loading works a bit... now it uses NSStringFromPoint(NSPointFromCGPoint(position_)) instead of separately doing posX and posY. I figured that I might as well do it now before someone probably has an actual project they're using with cocoshop."
I created a page in wiki about CSD file format, probably you should create page for file format in 0.2 (upcoming version that is currently in the develop branch)
https://github.com/andrew0/cocoshop/wiki
Also, like NSStringFromPoint, there's simillar functions for rectangles - probably you would like to use them too.
Possible to develop only after implementing #7
Need to make some changes in CCBigImage for this before.
For scale & rotate the sprite.
Thanks for providing a great open-source tool.
It will be able to call c++ libraries if the file extension changes from .m to .mm.
For example, STL
To open it right from XCode project, where they are used.
Some of the methods are inconsistent in their names (i.e. doThisSafely vs safeDoThis).
Yeah this should be a cool feature. Thanks @ricardoquesada
Gonna implement this now, BTW i recently added CMD + MouseWheel for Zoom In/Out and CMD + 0 to reset Zoom
Via CSMacGLView border in IB or via drawing rect around CSMainLayer
Remove Generate, add Open, Save & Document Properties buttons
No milestone set, cause i don't think its very needed in minimal version.
I don't know why, but even though I have set the autoresize parameters to not do this, whenever the window is resized, the sidebar doesn't stay at the top, it stays at the bottom.
Right now the saving that that cocoshop does isn't really optimal. It would be best if CSNode had a method called "dictionary" that would return its properties as an dictionary, and then when saving just get that info for each child and put it into a dictionary.
Probably it's the same threadsafe issue, like it was in crashes while adding sprites.
It's something simillar to issue #13
Nothing is reseted, but after selecting Sprite and selecting nothing (background) - color & opacity stays the same, as the was for Sprite, but not for the background.
But backround looks the same as before selecting something.
iPad, iPhone, Portrait/ Landscape (probably just change landscape button)
When you resize the window, sprites don't update their position as expected because of OpenGL's coordinate system. Here's an example:
before: http://imgur.com/zSnLQ
after: http://imgur.com/UQofi
Since cocoshop isn't using sound engine and need only basic features of cocos2d - it's possible to port it to windows with cocotron.
Cocotron successfuly runs NSOpenGLView, so it should work with cocos2d:
http://www.cocotron.org/Code/Examples/NSOpenGLView
Also iPhone4/iPhone 2G can be used to show sd/hd mode.
Possible only with smartet CSMainLayer.
Probably can be implemented only after #30
Assigned: not me ;)
It only crashes when it's from the cocos2d thread, not if it's done from the sprite list.
I like the way how Zwoptex works with it's format and exports to cocos2d spriteSheets.
@robertjpayne, if you can give as any advices about implementation of this - it will be superb!
Thanks!
Andrew, i tried to fix this, but i didn't get how to update the colorWell_ value, and how all controls are binded to "selection.SOMETHING" in controller. I never used AppKit before, so if you can explain this - it will be very helpfull for me.
Sprites should reorder, when changing Z value.
Best practice will be to work in sd, copy hd resources to the same folder and change to HD to see how it looks.
But you always can just use 960x640 workspace with -hd suffix in csd filename (i.e foo-hd.csd) and add -hd.png's to it.
CSDReader uses CCFileUtils to get paths, so they will take care about sd/hd node version.
This will give user ability to customize hd & sd versions of the same node independently
Just read a little CCBox2D Sources, looks very cool, nice job, @axcho.
It should be very easy to support CCBox2D in Cocoshop, thanks to @andrew0's core of Cocoshop.
I.E. to add support of CCBodySprite, you can just use CCBodySprite as a superclass of CSSprite and add more controls to sprite info view.
@axcho, @AndreasLoew, cocoshop can be used as editor for CCBox2D Scenes, so if you will play with it - please, comment in this issue.
Probably i will use CCBox2D as a physics engine & Cocoshop as scene & menus editor in my next game, so i will post about implementing this issues here.
This makes it impossible to update sprite if you changed it in external editor.
Solution: removeAllUnusedTextures after deleting Sprite
Right now, when the screen is resized, the whole scene is resized with it. I think that it should keep the screen size the same, but just increase the view area, i.e. you can just put things out of the visible area.
This is something that shouldn't be too difficult - and it's actual one of the main reasons why I made cocoshop instead of using CocosBuilder. I wanted it so I could hard code everything in and not have to rely on the .csd loading.
CSSprite already supports it, we just need to set it up in the sprite info panel. It will lock a sprite so it can't accidentally be dragged, resized, etc.
I've just published xcfinfo2plist - replacement for xcf2sprites.
https://github.com/psineur/xcfinfo2plist
It simply saves all info, taken from xcfinfo as a plist dictionary.
xcftools also have ability to convert xcf to png and even export individual layers from it.
If we can compile xcf2png and change it to export all layers as individual images from xcf - that will allow us import from XCF to CocoShop.
Since Gimp reads photoshop format, this conversion will be possible:
Photoshop PSD -> Gimp XCF -> Cocoshop -> Cocos2d
Most of designers uses Photoshop, it's available on Mac & Windows, so having this feature can realy make Cocos2D game development easier.
P.S.
xcftools are licensed as GPLv2, so all it modifications must be licensed under GPLv2. So probably we shouldn't include it in cocoshop, to avoid these restrictions distributed to CocoShop users. Instead of this xcftools modification can be used as standalone commandline applications, that CocoShop can use for Import from XCF.
For moving, copying/pasting, scaling, deleting, etc.
Since we use NSScrollView for handlind CSMacGLView now, it's probably possible to have Info & Sprites windows as sidebars, and not as always on top windows. It's really frustrating to having them always on top, when working on small display.
@andrew0, i will assign this to you without any milestone, if you don't mind. Because i don't know AppKit at all, and starting hating it due to NSScrollView+NSGLView love, so it will be cool if you will do this.
Without you, this issue will planed for 0.2, but i think we should give users few very polished features, and Sidebars or something like that for Sprites & Info are really needed.
After 0.1 probably...
coconade.png was changed to ../../../../coconade.png
Inspect & fix.
Crashes on
// reload the table
[spriteTableView_ reloadData];
spriteTableView_ must be set to nil, when the Sprites Window is closed.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.