This is the sample solution!

This is my first real use of Xcode to write something. And I can say that Xcode is not as good as I would have hoped. Its code completion is pretty bad. It could be that I am using it wrongly or the fact that I am just spoiled by Eclipse. I believe that it does a non-intelligent form of code completion that just cycles alphabetically through all the classes that you have included using #include statements. While I believe that there is nothing bad about this, the way that the code completion pops up is pretty annoying. Moreover if you accidentally hit the right arrow key, the code is pasted straight into the document. Also, if you type in a function signature, it tries to guess what the function prototype is and then pastes the whole thing as TEXT. There is no way for you to tab between the previous and next arguments to the function. This is just completely retarded.

At least it saved me some time from having to go to the command line and execute the make command every time. Then again, its build is not spectacular. In fact it is very slow. And it gives all the warnings about pre-binding failing. Well enough of Xcode. Let us talk about the program.

The screenshot above is of the asteroids game that we had to write for our graphics class. The graphics was done using openGL and the asteroids and space shuttle was modeled using some primitive form of Newtonian physic; they had angular velocity, translational velocity, acceleration and mass. That also means that the asteroids have both rotational and translational momentum as they moved around. I also discovered that the author of this program could have stolen the idea from here. The link seems to have a more traditional re-creation of the asteroids game using lines instead of organic images.

Amazingly this game did not take too long to write. Other than wasting 4 hours trying to figure out what was wrong with my shuttle's maneuverability only to recall that openGL uses degress instead of radians for its angles, the project went on pretty smoothly. I did try to implement some primitive form of collision detection and it was not too hard at all. Coding it all during one Saturday afternoon was a nice experience.

So, I am pretty happy with it. Though had I started earlier, I might have had more time to implement more features. Either way, I think it was a nice excursion into openGL and once again facing the horrors of c++ programming. I am not a big fan of templates in c++ so I do not like using their parameterized data structures.

comments powered by Disqus