GithubHelp home page GithubHelp logo

cocoshop's People

Contributors

andrew0 avatar psineur avatar unitedworx avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

cocoshop's Issues

z-order shortcuts

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.

Use CCArray instead of NSMutableDictionary to store CSSprites

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.

Link, Hide & reorder in Sprite list

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.

Undo/Redo Support

Probably the best way of implementing this will be integrate stages to the CSModel.

Refactor CSSprite to CSNode

This is needed for issue #9 & #34 and other furhter nodes support.

P.S.
Solving this issue will make :octocat: โค๏ธ u!
๐Ÿฐ

0.1 Release

  1. Close all issues for 0.1 Milestone
  2. Create release-0.1 branch - only fixes here and preparation for the release. So 'develop' can go further, while someone is working on preparing release.
  3. Documentation - README & Example app at least.
  4. Upload compiled binary to repo downloads section

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.

Keyboard controls

Good keyboard shortucts and controls can speed up work very well.

Here's my ideas about keyboard controls:

Sprite

  • Move sprite with Arrows.
  • Move faster with SHIFT + Arrows
  • Move AnchorPoint with ALT + Arrows
  • Move AnchorPoint faster with SHIFT + ALT + Arrows
  • Delete sprite with Backspace

Windows & Tools

  • CMD + L - Sprites List (focus on window)
  • CMD + I - Info/Inspector Window
  • CMD + M - Main Window

Background Size Property

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.

Icon

Cocoshop needs icon. We can use Coconade icon, if it's suitable for 'cocoshop' name

CSD File Format Change

@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.

CCBigImage Support

Need to make some changes in CCBigImage for this before.

  1. Implement all CCNode behaviour (scale, rotate, color maybe)
  2. Implement setCustomLookRect: (CGRect) to avoid lags in Editor

Consistent naming

Some of the methods are inconsistent in their names (i.e. doThisSafely vs safeDoThis).

Toolbar

Remove Generate, add Open, Save & Document Properties buttons

Sidebar is pinned to the bottom

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.

"Real" saving

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.

Selecting background doesn't set Info right

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.

Selecting different sprites resets their Color

  1. Add two sprites
  2. Change color of one of them
  3. Selected another
  4. Select the one with changed color - color will be reseted.

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.

Retina mode view

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

CCBox2D Support

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.

Change behavior of screen resize

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.

Generate actual code

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.

Implement a lock feature

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.

XCF Import

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.

Sprites & Info Windows

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.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.