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

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

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

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

Processing

Processingは、オープンソースプロジェクトによるCGのためのプログラミング言語です。Javaをベースにしており、グラフィック機能に特化しています。イメージの生成やアニメーションなど、視覚的なフィードバックを簡単に得ることが可能です。

Q&A

2回答

6608閲覧

Proccesingで音ゲーを作りたいのですが、PerfectやGoodを判定するプログラムの書き方が分かりません。

acceleater19993

総合スコア0

Java

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

Processing

Processingは、オープンソースプロジェクトによるCGのためのプログラミング言語です。Javaをベースにしており、グラフィック機能に特化しています。イメージの生成やアニメーションなど、視覚的なフィードバックを簡単に得ることが可能です。

0グッド

0クリップ

投稿2020/05/09 16:34

前提・実現したいこと

JavaのProccesingで音ゲーを作成しています。

押されたキーのタイミングを取得してPerfectやGoodなどの評価をする音ゲーの根幹ともいえる機能を実装したいです。

if文を使うのかなあと、なんとなくは思っているのですが、具体的な定義の仕方や書き方が分からないので質問いたしました。

Proccesingはもちろんプログラミング言語を勉強し始めて間もないので至らない点が多いとは思いますが、ご回答よろしくお願いいたします。

言語名Proccesing

現在のソースコードです

float halfWidth;
final int BALL_SIZE = 40;
float y = 0;

void setup(){
size(100, 400);

frameRate(100);

smooth();

halfWidth = width / 2;
}

void draw(){
println(frameCount);

if(keyPressed == true){

stroke(100,100,255); ellipse(50,200,32,32);

}
background(0);

strokeWeight(3);

ellipse(50,350,BALL_SIZE,BALL_SIZE);//動かないボール

stroke(255);

strokeWeight(2);

line(20,0,20,400);

line(80,0,80,400);

fill(255);

ellipse(halfWidth, y, BALL_SIZE, BALL_SIZE);//動くボール

stroke(255,0,0);

fill(0);

y += 3;

if(y > height){
y = 0;

}
//void fin(){

}

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

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

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

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

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

guest

回答2

0

元のコードに少し手を加えてみました。
こういった感じのものを作りたいってことですかね?

processing

1float halfWidth; 2final int BALL_SIZE = 40; 3float y = 0; 4boolean isPress = false; 5boolean isHit = false; 6float extRadian = 0; 7color targetC = color(255, 0, 0); 8 9void setup(){ 10 size(100, 400); 11 12 frameRate(100); 13 14 smooth(); 15 16 halfWidth = width / 2; 17} 18 19void draw(){ 20 background(0); 21 println(frameCount); 22 23 if(isPress == true){ 24 if (y >= 350 - 5 && y <= 350 + 5) { 25 isHit = true; 26 targetC = color(0, 0, 255); 27 print("perfect"); 28 } else if (y >= 350 - 20 && y <= 350 + 20) { 29 isHit = true; 30 targetC = color(255, 255, 0); 31 print("good"); 32 } else { 33 targetC = color(255, 0, 0); 34 print("bad"); 35 } 36 isPress = false; 37 } 38 39 if (isHit && extRadian < 30) { 40 extRadian += 1; 41 } else { 42 extRadian = 0; 43 isHit = false; 44 targetC = color(255, 0, 0); 45 } 46 47 strokeWeight(3); 48 stroke(targetC); 49 ellipse(50,350,BALL_SIZE + extRadian, BALL_SIZE + extRadian);//動かないボール 50 51 stroke(255); 52 53 strokeWeight(2); 54 55 line(20,0,20,400); 56 57 line(80,0,80,400); 58 59 fill(255); 60 61 ellipse(halfWidth, y, BALL_SIZE, BALL_SIZE);//動くボール 62 63 stroke(255,0,0); 64 65 fill(0); 66 67 y += 3; 68 69 if(y > height){ 70 y = 0; 71 } 72 73} 74 75void keyPressed() { 76 isPress = true; 77} 78

投稿2020/05/12 14:27

hytNInE

総合スコア133

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

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

acceleater19993

2020/06/03 16:42

返信に気づくのが遅れまして誠に申し訳ございません。おっしゃる通りです。このようなものを作りたかったです。本当に回答ありがとうございます! また、重ねての質問で申し訳ないのですが、もしよろしければご回答お願いいたします。このプログラムは現在コンソールにPerfectなどの文字を表示していると思いますが、それをゲーム画面上(赤円の上)に表示するにはどのような文を追加すればよろしいでしょうか。 改めましてもしよろしければご回答お願いいたします。
acceleater19993

2020/06/03 17:06

ありがとうございます!表示できました!
guest

0

PerfectやGoodなどの評価

これを具体的に定義するのが一番最初と思います。
どうなったらPerfectなの? どうなったらGoodなの? ということを感覚的な言葉(こんなふうな、とかxxみたい、とか)と指示代名詞(あれそれこれどれ)は一切使わずに説明してみて下さい。

そこから、コンピュータをどう動かせばそれが実現できるかを考えて、そう動くようにプログラムを組むのです。プログラミング自体は最後の最後の作業。そこまでの準備ができていなければプログラムは組めませんから。

投稿2020/05/09 22:20

thkana

総合スコア7639

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問