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

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

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

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

Javaアプレット

Javaアプレットは、Webページに組み込まれて実行されるJavaアプリケーションの形式です。Java SE 11で廃止となりました。

Q&A

1回答

1061閲覧

【大至急】Java リズムゲーム 卒業研究

_uni_

総合スコア10

Java

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

Javaアプレット

Javaアプレットは、Webページに組み込まれて実行されるJavaアプリケーションの形式です。Java SE 11で廃止となりました。

1グッド

2クリップ

投稿2019/01/15 07:27

#【至急】大学の卒業研究でリズムゲームを製作することにしました。
開発環境はEclipse、言語はJavaです。
プログラムはネット上のものを参考にしていたのですが、上手く動きません。

時間がないため、丁寧に教えて頂ける方がいましたら、回答をお願い致します。

JPanel上にCanvasでの描画を試みているのですが、
ノーツ(リズムゲームでいう、上から下へと降ってくる丸い玉)を(y座標を)1ずつ下へずらす方法が分りません。

①Timerを用いて、落ちてきたときの位置を秒数で調整したい
②クリック(タッチ)をすると消えるようにしたい
③クリック時の判定(点数、good等)を結果画面(以下のプログラムには記述無し)に表示したい
製作物としては「リズムゲーム」そのものができれば、とりあえず道が開けます。

1~3の優先順位で教えて頂きたいです。
以下にプログラムを載せます。期限が迫っておりこのままでは卒業も危ういので大変焦っています。
何卒、ご享受よろしくお願い致します。

import java.awt.Canvas; import java.awt.Color; import java.awt.Graphics; import java.awt.Point; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.awt.event.MouseListener; import java.util.Vector; import javax.swing.JLabel; class Canvas1 extends Canvas implements MouseListener{ JLabel lb = null; int i=0; //ノーツの座標 int nbx=100, nby=0;//左 int nrx=400, nry=0;//右 //判定円の座標 int bx=100, by=570;//左 int rx=400, ry=570;//右 //円の半径 int Nb=90, Nr=90;//ノーツの左右 Vector blue = new Vector(); Vector red = new Vector(); public void paint(Graphics g){ //レーン g.setColor(Color.WHITE); for(i=0; i<200; i++) {//左レーン g.drawLine(0+i, 0, 0+i, 700); } for(i=0; i<200; i++) {//右レーン g.drawLine(300+i, 0, 300+i, 700); } //ノーツ g.setColor(new Color(120, 255, 255));//水色 g.fillOval(nbx-90, i*240, Nb*2, Nb*2);//左円 g.setColor(new Color(255, 190, 255));//桃色 g.fillOval(nrx-90, i*240, Nr*2, Nr*2);//右円 //判定用の外円(drawOval=楕円・円) g.setColor(Color.BLUE); g.drawOval(bx-90, by-90, 90*2, 90*2);//左円 g.setColor(Color.RED); g.drawOval(rx-90, ry-90, 90*2, 90*2);//右円 //判定用の内1円 g.setColor(Color.BLUE); g.drawOval(bx-50, by-50, 50*2, 50*2); g.setColor(Color.RED); g.drawOval(rx-50, ry-50, 50*2, 50*2); //判定用の内2円 g.setColor(Color.BLUE); g.drawOval(bx-20, by-20, 20*2, 20*2); g.setColor(Color.RED); g.drawOval(rx-20, ry-20, 20*2, 20*2); //1点タッチのプログラム(タッチされたら黄色の円を表示したい) this.addMouseListener(new MouseAdapter() { public void mousePressed(MouseEvent e) { Point point = e.getPoint(); if(10<=point.x && point.x<=190 && 480<=point.y && point.y<=660) { System.out.println("x:" + point.x + ",y:" + point.y); } else if(310<=point.x && point.x<=490 && 480<=point.y && point.y<=660) { System.out.println("x:" + point.x + ",y:" + point.y); } } }); //判定円とノーツの中心点の接触を判定 // boolean hit = (((bx-nbx)*(bx-nbx))+((by-nby)*(by-nby)))<=((90+90)*(90+90)); // System.out.println(hit); // boolean hit2 = (((rx-nrx)*(rx-nrx))+((ry-nry)*(ry-nry)))<=((50+90)*(50+90)); // System.out.println(hit2); }//paintの終わり @Override public void mouseClicked(MouseEvent e) { // TODO 自動生成されたメソッド・スタブ } @Override public void mousePressed(MouseEvent e) { // TODO 自動生成されたメソッド・スタブ } @Override public void mouseReleased(MouseEvent e) { // TODO 自動生成されたメソッド・スタブ } @Override public void mouseEntered(MouseEvent e) { // TODO 自動生成されたメソッド・スタブ } @Override public void mouseExited(MouseEvent e) { // TODO 自動生成されたメソッド・スタブ } }
shou_hitotose👍を押しています

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

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

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

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

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

m.ts10806

2019/01/15 07:30

やめましょ。「大至急」とか。回答が余計つかなくなるだけです。 時間がなかろうとあろうとこちらにはその事情は知ったこっちゃありません。 卒業ができようとできなかろうと知ったこっちゃないです。 期限が迫っている段階でコピペで済まそうとした報いです。
m.ts10806

2019/01/15 07:32

↑「ネットのものを参考に」という人のほとんどはコピペでコードをほとんど理解しないまま使って勝手にトラブっているのでそう解釈しました。 そんなに急ぎでどうしてもというのならお金を払って業者にやってもらってください。 いいですか?あなたのこの内容は質問ではありません。
dit.

2019/01/15 07:43

マルチ( Https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q12201934907 )ですし、ご自身で解決するべき案件だと思います。
m.ts10806

2019/01/15 07:48

↑teratailとSOに振られたからこちらにきた、と…。それはそれで無責任ですね。
tacsheaven

2019/01/15 08:14

まさか今年度の研究ですかねえ……研究ってのは自分で調べて手を動かして行うものであって、誰かに答えをもらおうという時点で研究じゃなくなるのですが。 仮にここで答えを得られてコードは完成したとしても、内容を全く理解していないなら研究発表の席で突っ込まれてボロボロになる未来しかありませんね。 ※私の大学時代でもあったなあ……もう20年以上前ですが、卒検の論文、前年度の研究をそのまま継続したと称して出して、中身理解できてないから教授からボロボロに突っ込まれて、リジェクト喰らってたとか……
tacsheaven

2019/01/15 08:17

卒業研究ってのは研究するその過程こそが重要なのであって、成果がなかったとしても過程さえこなしてればある程度は評価されるんですがね。逆に言うと、過程をこなしてなければどんなによい成果でも、研究としては落第点なのですよねえ。
koronatail

2019/01/15 08:31

https://teratail.com/questions/21594 こちらの質問が参考になるんじゃないでしょうか。 ・・・というか質問の雰囲気や用語から先輩かもしれませんよリンク先の質問者さん
azuapricot

2019/01/15 08:44

ここで助けを求めるようじゃ「もう1年遊べるドン!」か、教授に土下座して助けてもらうしかないのでは? 『自力でできませんでした』と卒業研究として発表するのもよいかもしれませんね。 ネット上のものを参考にしなければ書けないのになぜこんなリズムゲーム作ろうとしたのか謎ですねぇ 大変焦ってるのはよくわかりますが、teratailに回答の迅速さを求めるのはお門違いです。 教授に泣き付いてください。
_uni_

2019/01/15 12:20

皆様からのご意見、すべてに目を通させて頂きました。 知恵袋で質問し、「ここなら(教えてくれる人が)居るのでは?」と言われ、たった今(今日)、サイトの説明も読まず安易に来てしまいました。また、こちらのサイトが「問題・課題が書かれていない」「質問の丸投げをするところではない」ということを重々理解致しました。 大学の卒業研究については個人的事情はあるものの、(自分にとって)難しすぎる題にしてしまったことを後悔しております。研究そのものの意味も、やるべき順序も把握してなお、ほかの方に答えだけを求める記述をして大変申し訳ありませんでした。 別のページを紹介してくださった方、ありがとうございます。参考にさせて頂き、先生に相談し、自分が今やれること、やるべきことを考え直して取り組みます。ご意見ありがとうございました。 逃げるようで大変嫌ですが、しばらくしてからこの質問を削除させて頂きます。 本当にありがとうございました。
guest

回答1

0

いろいろと叩かれている様なので助け舟とまではいきませんが、
ゲームをつりたいようですので案を出しましょう。

DXライブラリというcで書かれたライブラリが存在します。
これはwindowsでしか動きません。対応言語はcとc++です。

しかし、かなり簡単にゲームを作れます。
VS2017に導入して、適当に3Dゲームでも制作すれば赤点は回避されるでしょう。
導入方法等は自分でお調べください。

投稿2019/01/16 06:23

stdio

総合スコア3307

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問