2014-01-18 17 views
0

我在Eclipse上開發遊戲。我使用Java語言。遊戲需要加載.tmx文件。我不知道我的代碼是否正確。Cocos2d-android如何加載TMX tiledmap

CCSprite bgtitle; 
    CGSize winSize = CCDirector.sharedDirector().displaySize(); 
    protected CCTMXTiledMap tmap; 
    protected CCTMXLayer bbackground; 

protected MenuLayer() { 
     super(); 

     bgtitle = CCSprite.sprite("titlescreen.png"); 
     bgtitle.setPosition(CGPoint.ccp(winSize.width/2.0f, winSize.height/2.0f)); 
     bgtitle.setScaleX(winSize.width/bgtitle.getTexture().getWidth()); 
     bgtitle.setScaleY(winSize.height/bgtitle.getTexture().getHeight()); 
     addChild(bgtitle,0); 

     tmap = CCTMXTiledMap.tiledMap("tutorial1.tmx"); 
      //^ This is where the error occurs 

     bbackground = tmap.layerNamed("Background"); 


     addChild(tmap, 1); 
    } 

我從logcat中收到此錯誤信息:

01-19 03:19:45.193: E/AndroidRuntime(1723): FATAL EXCEPTION: main 
01-19 03:19:45.193: E/AndroidRuntime(1723): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.cronlygames.cocos2d.template/com.patkrisgame.samplegame.SimpleGame}: java.lang.NullPointerException 
01-19 03:19:45.193: E/AndroidRuntime(1723):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1734) 
01-19 03:19:45.193: E/AndroidRuntime(1723):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1753) 
01-19 03:19:45.193: E/AndroidRuntime(1723):  at android.app.ActivityThread.access$1500(ActivityThread.java:155) 
01-19 03:19:45.193: E/AndroidRuntime(1723):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:999) 
01-19 03:19:45.193: E/AndroidRuntime(1723):  at android.os.Handler.dispatchMessage(Handler.java:130) 
01-19 03:19:45.193: E/AndroidRuntime(1723):  at android.os.Looper.loop(SourceFile:351) 
01-19 03:19:45.193: E/AndroidRuntime(1723):  at android.app.ActivityThread.main(ActivityThread.java:3820) 
01-19 03:19:45.193: E/AndroidRuntime(1723):  at java.lang.reflect.Method.invokeNative(Native Method) 
01-19 03:19:45.193: E/AndroidRuntime(1723):  at java.lang.reflect.Method.invoke(Method.java:538) 
01-19 03:19:45.193: E/AndroidRuntime(1723):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:969) 
01-19 03:19:45.193: E/AndroidRuntime(1723):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:727) 
01-19 03:19:45.193: E/AndroidRuntime(1723):  at dalvik.system.NativeStart.main(Native Method) 
01-19 03:19:45.193: E/AndroidRuntime(1723): Caused by: java.lang.NullPointerException 
01-19 03:19:45.193: E/AndroidRuntime(1723):  at org.cocos2d.layers.CCTMXTiledMap.tilesetForLayer(CCTMXTiledMap.java:227) 
01-19 03:19:45.193: E/AndroidRuntime(1723):  at org.cocos2d.layers.CCTMXTiledMap.parseLayer(CCTMXTiledMap.java:206) 
01-19 03:19:45.193: E/AndroidRuntime(1723):  at org.cocos2d.layers.CCTMXTiledMap.<init>(CCTMXTiledMap.java:143) 
01-19 03:19:45.193: E/AndroidRuntime(1723):  at org.cocos2d.layers.CCTMXTiledMap.tiledMap(CCTMXTiledMap.java:115) 
01-19 03:19:45.193: E/AndroidRuntime(1723):  at com.patkrisgame.samplegame.SimpleGame$MenuLayer.<init>(SimpleGame.java:202) 
01-19 03:19:45.193: E/AndroidRuntime(1723):  at com.patkrisgame.samplegame.SimpleGame$MenuLayer.scene(SimpleGame.java:218) 
01-19 03:19:45.193: E/AndroidRuntime(1723):  at com.patkrisgame.samplegame.SimpleGame.onCreate(SimpleGame.java:90) 
01-19 03:19:45.193: E/AndroidRuntime(1723):  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1082) 
01-19 03:19:45.193: E/AndroidRuntime(1723):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1698) 
01-19 03:19:45.193: E/AndroidRuntime(1723):  ... 11 more 

的錯誤是空指針異常,但tilemap的是已經在資產的文件夾。我試圖把它放到其他文件夾,但它仍然沒有工作。任何建議和例子將不勝感激。

+0

從你的日誌中,我想你可能已經爲layer命名了錯誤的名稱。請檢查一次。如果你想引用示例,你可以從庫本身獲取(org.cocos2d.tests包).check this – Rama

回答

0

你需要將你的照片複製到工作目錄 - 資產。