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

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

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

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

Processing

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

Q&A

解決済

1回答

280閲覧

二つのゲームを一つのゲームにしたい

AzukiV

総合スコア15

Java

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

Processing

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

0グッド

0クリップ

投稿2018/06/05 10:37

なんとかしてゲームを二つ作りました。
下記の二つのゲームを一つのゲームにしたいのですが、方法がよく分かりません。

私がとった方法は、一つのゲーム中のvoid setup(),void draw()の中にもう一つのゲームのvoid draw(),void setup()の内容を書くというものです。

しかし、エラーが生じてしまいました。

下記の二つのゲームを一つのゲームとして成り立たせたいです。
ゲーム概要は青いボール(敵)を避けながら、上から降ってくる赤いボール(仲間)に触れるというものです。

float

1float frbally; //仲間ボールのy座標 2 3float frsp=0; //仲間ボールの速度 4float fra=0; //仲間ボールの加速度 5float g = 3; 6 7 8float touch=0; 9 10void setup(){ 11 12 size(500,650); 13 14 frballx=width/2; 15} 16 17void draw(){ 18 background(255); 19 smooth(); 20 21 frsp = frsp + g /30+fra; 22 frbally = frbally + frsp; 23 24 stroke(255,0,0); 25 fill(255,0,0); 26 ellipse(frballx,frbally,30,30); 27 28 if(frbally>665){ 29 textSize(20); 30 text("GameOver",20,20); 31 frameRate(0); 32 } 33 if(mouseX>frballx-30 && mouseX<frballx+30 && mouseY>frbally-30 && mouseY<frbally+30){ 34 35 touch=80; 36 37 fra=0.0001; 38 39 next(); //次の球がでる 40 }} 41 42//次の球の設定 43void next(){ 44 frbally=-200; 45 frsp=0; 46 frballx=20 + random(465); 47 48}
enball[] ball = new enball[7]; //敵ボールの定義 int i = 0; // forに使う int j= 0; // 同上 int M7 = 0; // ボールが7個ある float[] enballx = new float[7]; // 敵ボールの座標 float[] enbally = new float[7]; // int flg = 0; void setup() { size(500,650); for (i = 0; i < 7; i=i+1) { ball[i] = new enball(30, 30, 30, 30); //敵ボール ball[j].set(mouseX + 15, mouseY + 15, random(5, 8), random(5,8)); //(float X, float Y, float enspX, float enspY) enspXは敵のボールのX速度 enspYは敵ボールのY速度 j=j+1; if (j == 7) { j = 0; M7 = 1; } } } void draw() { background(255); for (i = 0; i < 7; i=i+1) { ball[i].latest(); //最新の画面に切り替える ball[i].hitwall(); //画面の上下左右端に当たったときの設定用 ball[i].ballfun(); //ボールの設定用 function hitme(); // ボールが自機にヒットしたときの設定用 } stroke(255,0,0); fill(255,0,0); rect(mouseX-5, mouseY-5, 10, 10); //自機の設定 } class enball { //敵ボール PVector posi; //位置を定義 PVector ensp; //速度を定義 enball(float X, float Y, float enspX, float enspY) { posi = new PVector(X, Y); //向きベクトル ensp = new PVector(enspX, enspY); //速度ベクトル } void latest() { posi.add(ensp); //位置+速度 } void hitwall() { if ((posi.x > width)||(posi.x < 0)) { ensp.x = -ensp.x; //ボールが左右の壁に触れると反射 } if ((posi.y > height)||(posi.y < 0)) { ensp.y = -ensp.y; //ボールが上下の壁に触れると反射 } } void ballfun() { stroke(0,0,255); fill(0,0,255); ellipse(posi.x+10, posi.y+10, 30, 30); //ボールの描画 enballx[i] = posi.x; enbally[i] = posi.y; } void set(float X, float Y, float enspX, float enspY) { //位置、速度 posi.set(X, Y); ensp.set(enspX, enspY); } } void hitme() { //敵ボールが自機ふヒットしたときGameOver if (M7 == 1 && mouseX + 18 > enballx[i] && mouseX - 18 < enballx[i] && mouseY + 18 > enbally[i] && mouseY - 18 < enbally[i] || flg == 1) { fill(255,0,0); // 文字色 textSize(20); text("GameOver",20,20); noLoop(); } }

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

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

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

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

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

KSwordOfHaste

2018/06/05 10:59

既に前の質問に既にコメントがよせられてます。内容がほぼ同じに思えるので、こちらの質問は止して(できれば削除依頼を出して)前の質問の方で回答をつのるべきと思います。
AzukiV

2018/06/05 11:26

すでに出しているのですが、まだ削除されていないみたいです。タイトルに明記しておきます
guest

回答1

0

自己解決

定義
setup
draw
class
function

のタブを作り見やすくしたうえで、二つの要素を分けたらうまく動作した

投稿2018/06/05 11:33

AzukiV

総合スコア15

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問