I’m looking over some sample code in a cocos2d project. I had previous built a project using Core Graphics (Quartz) where coordinate (0,0) is the upper left corner of the screen. In this project, if I use CGPointMake(0,0) it is in the lower left corner. I understand that the coordinate systems are different, but where exactly would a program specify which coordinate system to use? What is the setting or method that actually makes this switch?
Share
There is no switch. If you want to work with Cocos2D, get used to its coordinate system origin being at the lower left corner of the screen.
I’ve seen users make all kinds of attempts to “fix” this, either by hacking around in the Cocos2D source code, or by overriding the setPosition property of all nodes only to find out that this isn’t enough. I bet all of them have been running into lots of issues, including the fact that whenever you need to re-use someone else’s code, you’re faced with making the necessary coordinate system fixes to that code as well. It’s a never-ending struggle that is really not worth spending any amount of time in.
Instead, rather than changing the code, change your perception. Get used to a different coordinate system and thinking in it. Way easier and much less trouble for the future. After all, all you really need to change in your head is that the sign of the Y coordinate has changed.