|
Java has an extensive set of image and graphics manipulation functions built-in, which makes it quite straightforward what to use (just quite, because there are many extensions that shade the picture a bit). Anyway, very good documentation and tutorials are available, so I would recommend it. For C++ there are many libraries, so you can probably find one that suits your needs, however documentation quality is very fluctuating. However if portability and platform independence is a goal, Java it is easier to implement in Java - not impossible with C++ either, but a little bit more work. C# is an interesting option, but I think it's somewhere inbetween, but I've never used it for such purposes, so I can't talk about my experiences here.
Finally, you've asked about 2D, but it can still indicate that you need hardware acceleration to look nice. OpenGL is clearly a way to go for platform agnostic things, and it can be used in any of the languages mentioned above. DirectX (afaik) is not available in Java, and if it would be it wouldn't make any sense, because it would run on windows only. It is a bit harder maybe to learn, and it wouldn't have much advantage in 2D anyway. For sounds and music OpenAL is also a platform independent solution, and it is available for each of these languages.
|