Javaゲーム作成アプリケーションeclipseでのコードの意味を教えてください

このQ&Aのポイント
  • Javaのゲーム作成アプリケーションeclipseで使用されているコードの意味がわかりません。教えてください。
  • spkeyがtrueの場合、速度に0.25を減算し、それ以外の場合は速度に0.25を加算します。
  • 速度が-6未満の場合、速度を-6に設定し、速度が6を超える場合は速度を6に設定します。cyには速度を整数型に変換したものを加算します。
回答を見る
  • ベストアンサー

今Javaのゲームを作るアプリケーションの「eclipse」でゲームを

今Javaのゲームを作るアプリケーションの「eclipse」でゲームを作っているのですが、 次の文の意味がわかりません。だれか教えてください。 ----------------------------------------------------------------------------------- if ( spkey == true ) { speed = speed - 0.25 ; } else { speed = speed + 0.25 ; } if ( speed < - 6 ) speed = - 6 ; if ( speed > 6 ) speed = 6 ; cy = cy + ( int ) speed ; ------------------------------------------------------------------------------------ できるだけわかりやすくお願いします。

  • Java
  • 回答数2
  • ありがとう数1

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

  • ベストアンサー
  • neko-ten
  • ベストアンサー率55% (1287/2335)
回答No.2

eclipseは統合開発環境であってゲームを作るソフトではないです。 なお、ここだけ提示されても、変数の定義が明示されてないのでわからない。 変数spkey、speedに対する条件分岐で、詳しくは#1さんの通りですが・・・ if ( spkey == true ) {  ← 変数spkeyがtrueである場合 speed = speed - 0.25 ;  ← 変数speedに、speedの元の値-0.25を代入 }else {          ← 変数spkeyがtrueである場合以外 speed = speed + 0.25 ;  ← 変数speedに、speedの元の値+0.25を代入 } if ( speed < - 6 )     ← 変数speedの値が-6未満の場合 speed = - 6 ;       ← 変数speedに-6を代入 if ( speed > 6 )      ← 変数speedの値が6より大きい場合 speed = 6 ;        ← 変数speedに-6を代入 cy = cy + ( int ) speed ; ← 変数cyに、speedを加算 ってことしかわからんです。 この結果画面がどう変わるかとかは一切不明。 ぶっちゃけこのif~else文は簡単すぎるにもほどがあります。 これがわからない場合、Java・・・というか言語の基礎ができていないということです。 ゲームを作ることで勉強したいなら、この程度リファレンスで調べましょう。

airu_Love
質問者

お礼

ありがとうございます。 if文の意味がやっとわかりました。

その他の回答 (1)

回答No.1

Eclipseを使う以前にJavaの基本文法を勉強してください。 (1)spkeyが「真」ならspeedから0.25引き、「偽」ならspeedに0.25足す。 (spkeyの値を用いた加減速の処理かな? spkeyはスペースキーの押下状態?) (2)speedが-6より小さければ-6に、6より大きければ6にする。 (speedの値を下限値-6、上限値6の間に制限している) (3)cyにspeedの値を加算 (cyは画面上の座標なのか移動距離なのかわからないけど、speedの値を反映させている) spkeyとかspeedとかcyが正確に何を指しているのか分からないと、正しい解釈は出来ないけど、だいたいこの通りだと思う。

関連するQ&A

  • eclipse、javaでデバッグするとき

    eclipse、javaでデバッグするとき visual studioのようにマウスでカーソルを任意の行へ移動して 処理を続行するような機能がないようです、あるとすごく便利 なのですが、仕方ないのでeclipse のときはたとえば if( func1() != null ) などどとあった場合 if がtrueの場合をデバッグしたい場合 func1の中ステップインしてreturn trueとなるように変数の書き換えで行います。 かなり骨の折れる作業なのですがこれがVSのようにマウスのドラッグでできると 助かります。ぜひ便利な方法がありましたらよろしくお願いします。 また、return func() などの場合 ここでfuncに入らずにreturn値を任意に設定 する方法はないでしょうか? 以上よろしくお願いします。

  • javaの数字当てゲーム

    javaで数字当てゲーム作りたいです。 ここまで出来ています。 しかし、もう一度やりますか?というオプションで、yと入力すればもう一回、 nと入力すれば終わるようにしたいです。 それから、最後に何回ゲームを遊んだか、トータルで数字を何回予想したか、という情報も出力したいです。 できれば、正解するまでに平均で何回かかったかと、一番少なかった数も出力したいです。 よろしくお願いします import java.util.*; public class NumberGuess { public static void main(String args[]) { boolean b = true; int computer = (int) (Math.random() * 100) + 1; int player = 0; int count = 0; System.out.println("1~100の数当てゲーム"); if (computer < 0) { computer *= -1;} while (b) { count++; Scanner keyboard = new Scanner(System.in); System.out.print("1~100の数字を入力してください "); player = keyboard.nextInt(); if (computer > player) { System.out.println("CPUが作成した数字はもっと大きいです"); } else if (computer < player) { System.out.println("CPUが作成した数字はもっと小さいです"); } else if (computer == player) { System.out.println( count + "回目で当てました"); } } } } 直すべきところもあれば教えてください。

  • javaでアプリケーションを作りたい

    いま、何かアプリケーションを作ろうと思っていて、丁度JAVAを学習しているところなのですが、 JAVAで作ることはできるのでしょうか? それともC++でないと無理なのでしょうか? 一応作るものはゲームではなく、普通のアプリケーションです。 制作しやすいアプリケーションがありましたら紹介もお願いします。

    • ベストアンサー
    • Java
  • Eclipseで実行>Javaアプリケーションが表示されない

    Eclipseでソースを書いたところ、 右クリック>実行>でJavaアプリケーションが表示されませんでした。 他のソースはJavaアプリケーションが表示されて実行が出来ます。 どうしたら実行できるようになるのでしょうか? 前に行った操作で、原因として考えられるのは、 インポートからファイルシステムでソースをインポートしたぐらいです。 どなたか回答宜しくお願いします。 ~~~~以下がそのソースです。~~~~~~~ package selfJava; public class P78_2_9_2 { /** * @param args * @param */ public static void main(String[] args) { // TODO 自動生成されたメソッド・スタブ double i, j; if(args.length != 2){ System.out.println("引数を二つにしてください"); } for(int k = 0, k < args.length; k++){ if(Character.isDigit(args[0])){ }else{ System.out.println("数値を入力してください"); } } i = Integer.parseInt(args[0]); j = Integer.parseInt(args[1]); System.out.println("args[0] × args[1] =" + i * j); } }

  • Javaでゲームを作ったのですが・・・

    Java(Turtle)で以下のようなスクリプトで、おみくじというゲームを作りました。 フローチャートも書かなければいけないのですが、書き方がわかりません。 わかる方、教えてください。お願いします。 public class Final extends Turtle { //起動処理 public static void main(String[] args) { Turtle.startTurtle(new Final()); } //タートルを動かす処理 public void start(){ System.out.println("おみくじを開始します。"); System.out.println("十字キーで箱をふり、fキーでおみくじを引いてください。"); Box a=new Box();//おみくじの箱を作ります。 int c=0; int d=0; int e=0; int f=0; int g=0; int v=0; for (v=0;v<1;) { //fキーを押して、vが1になるまで箱をふれるようにします。 sleep(0.5); hide(); int in = key(); //int inをキーボード入力に対応させるようにします。 if (in==38){ a.warp(110,100); c=1;d=0;e=0;f=0; Last z=new Last(); //おみくじをふる効果音を作成します。キーを押した時に効果音が出るようになります。以下のLast zも同様です。 z.warp(200,200); update(); } else if(in==39){ a.warp(90,100); d=1;c=0;e=0;f=0; Last z=new Last(); z.warp(50,50); update(); } else if(in==40){ a.warp(100,110); e=1;c=0;d=0;f=0; Last z=new Last(); z.warp(50,200); update(); } else if(in==37){ a.warp(100,90); f=1;c=0;d=0;e=0; Last z=new Last(); z.warp(200,50); update(); } else if(in==70){ a.lt(30); v=1; } update( ); } Omikuji b=new Omikuji (); //箱から出てくるおみくじを作成します。 if(c==1){ b.warp(62,120); } else if(d==1){ b.warp(42,120); } else if(e==1){ b.warp(52,130); } else if(f==1){ b.warp(52,110); } else{ b.warp(52,120); } update(); sleep(0.5); g=random(50)%3; if(g==0){ //ランダムで、おみくじの結果を作成します。 System.out.println("大凶です"); } else if(g==1){ System.out.println("大吉です"); } else if(g==2){ System.out.println("中吉です"); } else if(g==3){ System.out.println("凶です"); } update(); } }

  • javaのコンパイルができません。

    コンパイルができません エラーの内容とソースコードは次です Microsoft Windows [Version 6.0.6002] Copyright (c) 2006 Microsoft Corporation. All rights reserved. C:\Users\j1409061\Documents\java\MeikaiJava>javac SR091409061.java SR091409061.java:7: 式の開始が不正です。 const int MAX_INT = 2147483647; ^ SR091409061.java:8: 式の開始が不正です。 const int BUFFER_SIZE = 100; ^ SR091409061.java:9: ';' がありません。 int main();{ ^ SR091409061.java:16: ']' がありません。 char buf[BUFFER_SIZE]; ^ SR091409061.java:16: 式の開始が不正です。 char buf[BUFFER_SIZE]; ^ SR091409061.java:22: 式の開始が不正です。 n = sscanf(buf, "%d %c", &data, &c); ^ SR091409061.java:22: 式の開始が不正です。 n = sscanf(buf, "%d %c", &data, &c); ^ SR091409061.java:73: 式の開始が不正です。 n = sscanf(buf+i, "%d", &data); ^ SR091409061.java:96: class、interface、または enum がありません。 } ^ エラー 9 個 C:\Users\j1409061\Documents\java\MeikaiJava> //最大値と最小値を求めよう // C:\Users\j1409061\Documents\java\MeikaiJava\SR091409061.java class SR091409061 { public static void main(String args[]) { Scanner stdIn = new Scanner(System.in); const int MAX_INT = 2147483647; const int BUFFER_SIZE = 100; int main();{ /* 変数を定義、初期化 */ int data; int max = -1; int min = MAX_INT; bool data_exist = false; int i, n; char buf[BUFFER_SIZE]; printf("Please input data : "); while(true) { /* データ(1行分読み込み) */ fgets(buf, BUFFER_SIZE, stdin); /* データ取り出しと計算 */ n = sscanf(buf, "%d %c", &data, &c); if( ( n == -1 ) || ( n == 0 ) ) { break; } else if (n == 1) { // the number of data is 1. data_exist = true; data = abs( data ); if(max < data){ /* maxを変更 */ max = data; } if(min > data){ /* minを変更 */ min = data; } } else if (n == 2) { // the number of data is larger than 2. i = 0; while (true) { data_exist = true; data = abs( data ); if(max < data){ /* maxを変更 */ max = data; } if(min > data){ /* minを変更 */ min = data; } // 空白文字を読み飛ばす while (true) { if(buf[i] == ' ') { i++; } else { break; } } // 数字(0から9)を読み飛ばす while (true) { if( ( buf[i] >= '0' ) && ( buf[i] <= '9' ) ) { i++; } else { break; } } // 行末なら終える if(buf[i] == '\n') { break; } // データ読み込み.読み込みに成功したら次の文字へ(i++), 失敗したら終える(break). n = sscanf(buf+i, "%d", &data); if(n == 0) { break; } i++; } } if(n == 0) { break; } } /* 最大値, 最小値を出力 */ if (!data_exist) { printf("No data.\n"); } else { printf("Max = %d\n",max); printf("Min = %d\n",min); } return 0; } } } } よろしくお願いします

  • Javaのif文がわかりません!

    public class If2 {   static boolean b1, b2;   public static void main(String[] args) {     int x = 0;     if ( !b1 ) {     if ( !b2 ) {       b1 = true;       x++;       if ( 5 > 6) {         x++;       }       if ( !b1 ) x = x + 10;       else if ( b2 = true ) x = x + 100;       else if ( b1 | b2 ) x = x + 1000;       }     }     System.out.println(x);    }  } ------------------------------------------------------------ 正常にコンパイルされ、101とでます。 if文の()内にある!b1というのが意味が分かりません^^; 2行目でb1とb2はfalseになるのは分かりましたが !b1や!b2はfalseではない!ということですか? 誰か教えてください!よろしくお願いします!!

  • eclipseで単文のfor文の改行をしない方法

    eclipseのjavaのフォーマッターの設定で, for(int i=0;i<n;i++)foo; という文を, for(int i=0;i<n;i++)  foo; にしないで,元のままにしておく 方法はあるでしょうか. if文については,「'then'ステートメントを同じ行に保持」などのオプションがあり, if(foo)bar; をこのままにしておくことができるのですが...

  • javaのプログラムについての質問です。

    javaのプログラムについての質問です。 javaについて、あまり詳しくないので質問させていただきます。 ボタンを押して円などの色を変えるプログラムで、2色を変える(黄→赤)if文は public void actionPerformed(ActionEvent e) { if (bool) { setBackground(Color.yellow); this.bool = false; } else { setBackground(Color.red); this.bool = true; の様にfalseとtrueを使えばできるのですが、もし3、4色の場合はif文の中をどうしたら良いですか? できれば、ボタンを押すたびに黄→赤→黒→黄…など3~4色のループするようにしたいです。 いろいろ考えたのですが、うまくいきません。どなたか教えて下さい。

    • ベストアンサー
    • Java
  • javaでGUI

    javaでGUIのアプリケーションやゲームを作る場合、swingやEclipseといったものがあるようなのですが、どちらを使えばよいのでしょうか?swingはもう古い、と聞いたのですがどうなのでしょうか。。。また、お勧めの書籍などはあるでしょうか? javaの基礎は一通りやったのですが、GUIについてはまだ勉強していません。わかるかた教えてください。お願いします。

    • ベストアンサー
    • Java

専門家に質問してみよう