On Jun 16, 2008, at 23:47, Josh de Lioncourt wrote:

To that end, we're redeveloping many old titles, primarily in C++ for the bulk of the coding to make porting between Mac and Windows simpler. The games have no graphical interface to speak of, only an audio one.

First off, Cocoa programs have to be written in Objective C. However, when using the file extension .mm instead of .m, you can mix Objective C and C++ in the same file (you can't subclass across programming languages, though).

I need the app to be able to capture keyboard input when the application window has focus, take action based on that input, or, if the input is not valid to the game, let it pass through to the OS. My experience is mostly in Windows development, and I have no idea even where to start looking to accomplish this for the Mac OS X platform. Can you point me in the right direction?

Generally, you have to hook into the responder chain of the application somewhere and implement the following NSResponder methods:
- (void)keyDown:(NSEvent *)theEvent;
- (void)keyUp:(NSEvent *)theEvent;
- (void)flagsChanged:(NSEvent *)theEvent;

I can think of three options:
* Subclass NSApplication and declare it as the principal class for the application
* Subclass NSWindow and use that class for your single window
* Subclass NSControl (or maybe NSImageView), and pass an instance of it to -setContentView: of the window you're creating.

Next, I need to be able to keep track of real-time during the game. In Windows, we'd use something like GetTickCount to accomplish this. Is there an equivalent on the Mac side? Again, pointing me in the right direction would be tremendously appreciated.

[NSDate date] (for an NSDate object) or [NSDate timeIntervalSinceReferenceDate] (for a double value) should do the trick.

And, any other advice regarding development of C++ that can be ported and maintained easily between both OS's would be very welcome.

Try to keep the OS-specific parts in separate files and keep the interface between them to a minimum.

HTH

andy

_______________________________________________

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to [EMAIL PROTECTED]

Reply via email to