MIDlet-OCL → MIDxlet-API
MIDlet-Application-Range → MIDxlet-ScreenSize
MIDlet-Network → MIDxlet-Network
他いくつか「MIDlet-hoge → MIDxlet-hoge」なものがあるので要注意
Canvasのキーイベントで現れるkeycodeは、以前はgetGameActionを介さなくても判定できたが、3GCではkeycodeとGameActionを区別して識別すること。面倒なことを考えたくないなら、
public int getMyGameAction(int keycode){ switch( keycode){ case KEY_NUM0 : case KEY_NUM1 : case KEY_NUM2 : case KEY_NUM3 : case KEY_NUM4 : case KEY_NUM5 : case KEY_NUM6 : case KEY_NUM7 : case KEY_NUM8 : case KEY_NUM9 : case KEY_POUND : case KEY_STAR : return keycode ; default: return getGameAction(keycode) ; } }
で、keyPressed(int keycode)などのメソッドの最初で、kecode=getMyGameAction(kecode)としておけば既存の場合と同様にいける。もちろん既存の機種でも問題なく動く。
Canvasの画面などのバッファは随所で使い回されているため、Canvasのpaintの最初でfillRect( 0, 0, width, height)としておく必要がある。こうしないと、前のDisplayableのゴミが残ることがある。
drawStringなどでは、必ずGraphics.HCENTER|Graphics.TOPのように縦横とも位置指定を入れないといけない。Graphics.TOPだけだったりGraphics.HCENTERだけだったりすると、そもそも文字が表示されない。
デフォルトのTimeZoneがJSTではなくGMTになってる・・・