• ベストアンサー

プログラミングの質問です

javaをやっています。 環境はeclipseです。 for(int i=0; i<cx.length; i++){ cx[i] -= 2; if(cx[i]<-409){ cx[i] = 480; } g.drawImage(img_cloud, cx[i], cy[i], mainwindow); } こういう文があるんですが、 cx[i], cy[i], lengthすべてに赤破線が引かれてしまいます。 テキスト通りなのですが、どこをどう直したらよいか分かりません。どうしたらいいでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • askaaska
  • ベストアンサー率35% (1455/4149)
回答No.5

もっと初歩から始めたほうがいいと思うの。 お勧めはソフトバンククリエイティブから出ている「やさしいJava」 伊達にベストセラーじゃない。 間違いはウェブ上で正誤表をゲット。 昔はいいサイトがあったんだけど 今なくなっちゃったのよね。 取り合えず次点のサイトを紹介。 http://www.javaroad.jp/index.htm ここにも掲示板あるけど ここの掲示板は初心者向けじゃないので 掲示板の利用はお勧めできない。

eclipse_9
質問者

お礼

ありがとうございました。 今持ってるのがよくないものかどうかは分かりませんでしたが 自分の読み方が正しくないものと察して とりあえずそれをやってみることにします。 また質問したときにはよろしくお願いします。

その他の回答 (4)

  • askaaska
  • ベストアンサー率35% (1455/4149)
回答No.4

可能性として考えられるのは ・テキストがよくない ・テキストの読み方がよくない どっちかだわ。

eclipse_9
質問者

補足

テキストは15歳からはじめるシリーズの javaオンラインゲームプログラミング教室です。 このシリーズ基本使うことに決めたんですが、 よくない系でしたら、何かおすすめできるものを 教えてくださると助かります。 アマゾンで購入したのですが、たくさんあってどれがいいのかまったくわかりません。 東京とかだったらアマゾンで見れるものはたいてい書店にあると思います。 見比べて買えるのですが、そんな環境ではないので利用せざるをえない場合があります。 オンラインゲーム、iアプリゲーム、アンドロイド、iphone,ipadといろいろやりたいです。 ゲームにこだわってるわけではないです。でもできるようにしておきたいです 当てはまるものがあったらぜひお願いします。

  • askaaska
  • ベストアンサー率35% (1455/4149)
回答No.3

最初の for(int i=0; i<cx.length; i++){ cx[i] -= 2; if(cx[i]<-409){ cx[i] = 480; } g.drawImage(img_cloud, cx[i], cy[i], mainwindow); } がどこにも見当たらないわね。 恐らく // 雲描画 のところを置き換えるのかしらと推測。 とは言え、 やっぱりどこにも変数cx、cyが宣言されていないわね。 宣言どころか値を格納すらしていない。 宣言の方法は教えられるけど、何の値を格納していいのかは分からないわ。 どこで見つけてきたコードなのか分からないけど 抜けているコードを見つけないと動かせないわよ。

eclipse_9
質問者

補足

最初の for(int i=0; i<cx.length; i++){ cx[i] -= 2; if(cx[i]<-409){ cx[i] = 480; } g.drawImage(img_cloud, cx[i], cy[i], mainwindow); } は//雲描画の後に挿入してください。 //雲描画 for(int i=0; i<cx.length; i++){ cx[i] -= 2; if(cx[i]<-409){ cx[i] = 480; } g.drawImage(img_cloud, cx[i], cy[i], mainwindow); } g.dispose();//描画終了    となります。  : は省略に使いました。書ききれなかったので。 前のにも書きましたがこれがテキストの全文です。 エラーとか出たときに警告マークをクリックして~を作成するみたいなのがあるのですが あれはテキストには載っていません。たとえ作成しても実行できないんですけどね。 テキストの文は丸写しではだめだということでしょうか? とりあえず宣言と格納について教えてください

  • gfe01045
  • ベストアンサー率61% (19/31)
回答No.2

askaaska さんの言うとうりです!! cx xy の変数宣言がしっかりできていれば、これでよいにでは・・・ とにかくコンパイルは通るのですか? >> cx[i], cy[i], lengthすべてに とありますが、これは変数部分に関してのことのようです しかしこの構文だけでは判断できかねますが?

  • askaaska
  • ベストアンサー率35% (1455/4149)
回答No.1

宣言していないからじゃない? eclipseなら問題ビューに エラーの内容が記述されていると思うけど。 テキスト通りといっても あなたの記述しているのは コードのごく一部のようだけど そもそもそのテキストには コードの全文が載っているの?

eclipse_9
質問者

補足

import java.awt.Graphics; import java.awt.Image; import java.awt.Insets; import java.awt.image.BufferStrategy; import java.awt.image.BufferedImage; import java.io.IOException; import java.util.Timer; import java.util.TimerTask; import javax.imageio.ImageIO; import javax.swing.JFrame; public class chap3_ { /** * @param args */ public static void main(String[] args){ new chap3_(); } JFrame mainwindow; BufferStrategy buffer; BufferedImage img_back,img_cloud, img_jiki, img_teki, img_title; //コンストラクタ public chap3_(){ this.mainwindow = new JFrame("ゲームウィンドウ"); this.mainwindow. setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.mainwindow.setVisible(true); // ウィンドウサイズ設定 Insets in = this.mainwindow.getInsets(); this.mainwindow.setSize(480 + in.left + in.right , 360 + in.top + in.bottom); //画像読み込み try { this.img_back = ImageIO.read( this.getClass().getResource("s_back.png")); this.img_cloud = ImageIO.read( this.getClass().getResource("s_cloud.png")); this.img_jiki = ImageIO.read( this.getClass().getResource("s_jiki.png")); this.img_teki = ImageIO.read( this.getClass().getResource("s_teki.png")); this.img_title = ImageIO.read( this.getClass().getResource("s_title.png")); } catch (IOException e) { e.printStackTrace(); } //バッファ作成 this.mainwindow.setIgnoreRepaint(true); this.mainwindow.createBufferStrategy(2); this.buffer = this.mainwindow.getBufferStrategy(); //タイマー作成 Timer t = new Timer (); t.schedule(new GameTask(),0,50); } class GameTask extends TimerTask{ @Override public void run(){ if (buffer.contentsLost() == false){ Graphics g = buffer.getDrawGraphics(); Insets ins = mainwindow.getInsets(); g.translate(ins.left, ins.top); //原点調整 g.drawImage(img_back, 0, 0, mainwindow); //雲描画 for(int i=0; i<cx.length             : g.dispose(); //描画終了 buffer.show()   }  } } }     以上が全文です。宣言の仕方を教えてください。

関連するQ&A