質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Q&A

解決済

3回答

2937閲覧

java ヌルポ

ryohasegawa

総合スコア437

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

0グッド

0クリップ

投稿2016/05/21 08:54

編集2016/05/21 09:36

java

1public class trpg1k extends jp.netgamers.free.tugame.TUGame{ 2 public static final int M_MAP_WIDTH = 15; 3 public static final int M_MAP_HEIGHT = 9; 4 5 java.util.Random m_rand = new java.util.Random(); 6 7 jp.netgamers.free.tugame.TUImageMap m_tuim; 8 jp.netgamers.free.tugame.TUImageChip m_tuic; 9 10 short[] m_saMap = new short[M_MAP_WIDTH * M_MAP_HEIGHT]; 11 int m_x; 12 int m_y; 13 14 @Override public void wmCreate(){ 15 setScale(2,2); //画面サイズ最大にする 16 17 m_tuim = new jp.netgamers.free.tugame.TUImageMap(M_MAP_WIDTH,M_MAP_HEIGHT); 18 try{ 19 m_tuim.set(new jp.netgamers.free.tugame.TUImageChip("nc74841.png",32,32)); //画像の読み込み 20 m_tuic = new jp.netgamers.free.tugame.TUImageChip("nc74842.png",36,49); 21 }catch(java.io.IOException e){ //エラーの場合 22 } 23 createMap(); 24 m_tuim.set(m_saMap); 25 } 26 27 @Override public void wmKeyDown(int code){ 28 if(code == java.awt.event.KeyEvent.VK_UP)m_y--; 29 if(code == java.awt.event.KeyEvent.VK_DOWN)m_y++; 30 if(code == java.awt.event.KeyEvent.VK_LEFT)m_x--; 31 if(code == java.awt.event.KeyEvent.VK_RIGHT)m_x++; 32 repaint(); 33 } 34 35 @Override public void wmPaint(){ 36 if(getMap(m_x,m_y) == 20){ //花だったら 37 setBackground(0x000000); //背景の色を設定する 38 draw("GAME CLEAR",180,120); //メッセージを表示する 39 return; 40 } 41 draw(m_tuim,0,0); //背景を描画する 42 draw(m_tuic.getImage(0),m_x * 32,m_y * 32 - 24); //プレイヤーを描画する 43 } 44 45 void createMap(){ 46 for(int i = 20; i >= 0; i--){ 47 setMap(m_rand.nextInt(M_MAP_WIDTH),m_rand.nextInt(M_MAP_HEIGHT),40); 48 } 49 setMap(13,7,20); 50 } 51 52 short getMap(int x,int y){ 53 return(m_saMap[y * M_MAP_WIDTH + x]); 54 } 55 56 void setMap(int x,int y,int v){ 57 m_saMap[y * M_MAP_WIDTH + x] = (short)v; 58 } 59} 60

エラーは以下です。
Exception in thread "AWT-EventQueue-1" java.lang.NullPointerException
at jp.netgamers.free.tugame.TUImageMap.draw(TUImageMap.java:16)
at jp.netgamers.free.tugame.TUPanel.draw(TUPanel.java:89)
at jp.netgamers.free.tugame.TUGame.draw(TUGame.java:38)
at trpg1k.wmPaint(trpg1k.java:41)
at jp.netgamers.free.tugame.TUPanel.wmPaint(TUPanel.java:181)
at jp.netgamers.free.tugame.TUPanel.paintComponent(TUPanel.java:53)
at javax.swing.JComponent.paint(JComponent.java:1056)
at javax.swing.JComponent.paintChildren(JComponent.java:889)
at javax.swing.JComponent.paint(JComponent.java:1065)
at javax.swing.JComponent.paintChildren(JComponent.java:889)
at javax.swing.JComponent.paint(JComponent.java:1065)
at javax.swing.JLayeredPane.paint(JLayeredPane.java:586)
at javax.swing.JComponent.paintChildren(JComponent.java:889)
at javax.swing.JComponent.paintToOffscreen(JComponent.java:5217)
at javax.swing.RepaintManager$PaintManager.paintDoubleBuffered(RepaintManager.java:1579)
at javax.swing.RepaintManager$PaintManager.paint(RepaintManager.java:1502)
at javax.swing.RepaintManager.paint(RepaintManager.java:1272)
at javax.swing.JComponent.paint(JComponent.java:1042)
at java.awt.GraphicsCallback$PaintCallback.run(GraphicsCallback.java:39)
at sun.awt.SunGraphicsCallback.runOneComponent(SunGraphicsCallback.java:79)
at sun.awt.SunGraphicsCallback.runComponents(SunGraphicsCallback.java:116)
at java.awt.Container.paint(Container.java:1975)
at javax.swing.RepaintManager$4.run(RepaintManager.java:842)
at javax.swing.RepaintManager$4.run(RepaintManager.java:814)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)
at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:814)
at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:789)
at javax.swing.RepaintManager.prePaintDirtyRegions(RepaintManager.java:738)
at javax.swing.RepaintManager.access$1200(RepaintManager.java:64)
at javax.swing.RepaintManager$ProcessingRunnable.run(RepaintManager.java:1732)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:756)
at java.awt.EventQueue.access$500(EventQueue.java:97)
at java.awt.EventQueue$3.run(EventQueue.java:709)
at java.awt.EventQueue$3.run(EventQueue.java:703)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:726)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
このプログラムを作ったのですが、実行すると↑のエラーが出ます。
解決方法を教えて下さい。
ライブラリーはこれを使っています。
https://drive.google.com/open?id=0B8jdcQMQB0RVQmVId0dITk5KTUk

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

takyafumin

2016/05/21 08:58

「ヌルポというエラー」ではなく、出力されるエラーメッセージをきちんと記載したほうが回答がつきやすいかと思います。 また、どのような調査や試行をしたかも記載すると更によいかと思います。
HogeAnimalLover

2016/05/21 08:59

エントリーポイントないけどどうやって起動したの?
matobaa

2016/05/21 09:04

エラーメッセージに行数とか表示されているのが重要なので、そのまま書いてもらえますか。
guest

回答3

0

自己解決

解決しました。
イメージファイルが消えていただけでした。
回答していただいた方ありがとうございました。

投稿2016/05/21 11:23

ryohasegawa

総合スコア437

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

matobaa

2016/05/21 14:05

また自分をベストアンサーにしてる……回答者を馬鹿にしてるね。いいんだけどね。
guest

0

例外が発生していた場合、m_tuimへの代入が完了せずnullのままになり、catchしたあとそのまま続く2行が実行されています。その結果、nullのm_tuimへのアクセスが発生し、NullPointerExceptionになったのです。
とりあえずヌルポを解消するならその2行もtryの中に入れてしまえばいいです。ただ根本の解決ではないので、例外IOExceptionの発生原因を調べる必要があります。

投稿2016/05/21 10:57

swordone

総合スコア20651

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ryohasegawa

2016/05/21 11:18

createMap(); m_tuim.set(m_saMap); の2つをtryの中に入れても解決しません(泣)
guest

0

wmCreate の中で IOException が出ているようです。

java

1catch(java.io.IOException e) { 2 e.printStackTrace() 3}

のように修正し、エラーの原因を取り除いてください。

投稿2016/05/21 09:58

matobaa

総合スコア2493

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ryohasegawa

2016/05/21 10:02

```java try{ m_tuim.set(new jp.netgamers.free.tugame.TUImageChip("nc74841.png",32,32)); //画像の読み込み m_tuic = new jp.netgamers.free.tugame.TUImageChip("nc74842.png",36,49); }catch(java.io.IOException e){ //エラーの場合 e.printStackTrace(); } ``` このようにしても解決されません。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問