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

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

ただいまの
回答率

90.76%

  • Processing

    237questions

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

ピンポンゲームのラケットが伸縮してしまう

解決済

回答 1

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 90

AzukiV

score 3

ピンポンゲームを製作しているのですがラケットの大きさが変わってしまいます。どこが間違っているのか見当もつきません。
実行はされます。

float racky;
float rackw;//ラケットの幅
float rackh;

float ballx;//ボールのx座標 
float bally;
float dx; //ボールのx軸の速度
float dy;//ボールのy軸の速度 
float balls; //ボールのサイズ


void setup() {
  size(500,500);

  rackw = 80;
  rackh = 10;
  rackx =width/2-rackw/2;
  racky =height-50;

  balls = 30;
  ballx = width/2;
  bally = 100;
  dx = 3;
  dy = 4;
}

void draw(){
  background(255,255,255);

if(keyPressed && keyCode==LEFT){
    rackx -= 6;}


if(keyPressed && keyCode == RIGHT){
  rackx += 6;}

  ballx += dx;
  bally += dy;

if(ballx-balls/2<0 || ballx+balls/2>width){
    dx = -dx;}

if(bally-balls/2<0){
  dy = -dy;}

if(bally>height+200)
{
  exit();} 

if(racky<bally+balls/2 && racky+rackh/2>bally+balls/2){
  if(rackx<ballx+balls/2 && rackx+rackw>ballx-balls/2){
 dy = -dy;}}

 noFill();
 stroke(0);
 rect(rackx,racky,rackx,rackh);

 noFill();
 stroke(0);
 ellipse(ballx,bally,balls,balls);}
  • 気になる質問をクリップする

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 1

checkベストアンサー

0

ピンポンゲームを製作しているのですがラケットの大きさが変わってしまいます。

デバック方法がわからないみたいなので、答えの前に考え方を。
デバック手法はいろいろな方法がありますが、基本的な考え方はどれも同じです。

1,原因の仮説を立てる
2,立てた仮説を検証する。
→YES 原因を修正する。
→NO 1に戻って別の仮説を立てる。

>ラケットの大きさが変わってしまう
どういう条件のときに、ラケットの大きさが変わるのか。
これはプログラムを実行しながら、条件をメモ帳に纏めると良いです。

そうすると条件はラケットを左右に動かした時になります。
ということはラケットを左右に動かした時に変数の値が変わるものが原因では?
という仮説が立てれます。
この仮説が正しいかどうか、ラケットを左右に動かした時にどの変数が変わっているのかを見ればよいです。
それはdraw関数の以下の行です。

if(keyPressed && keyCode==LEFT){
    rackx -= 6;
}
if(keyPressed && keyCode == RIGHT){
  rackx += 6;
}

変数:rackxです。

よって原因はdraw関数の以下の行です。

rect(rackx,racky,rackx,rackh);


rect(rackx, racky, rackw, rackh);

質問するときは、質問するときのヒントのページを良く読んでくださいな。
あとプログラムは回答者が見やすいように、適切なインデント(字下げ)を行ってくださいな。

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/06/03 14:12

    デバックの方法を教えてくださり、ありがとうございます。
    よく見ればわかることでした。すみません

    キャンセル

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

  • ただいまの回答率 90.76%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

  • 解決済

    Processingでsaveを使っての画像出力について…

    Processing3のPAppletのコアをEclipseに移してJava8で開発しています。  PAppletのsave(ファイルパス)を使って画面を保存しようとしているので

  • 解決済

    敵が表示されない

    無限に敵が上から出てくるプログラムを組みたいです。このままビルドすると背景は表示されるのですが、敵が表示されません。しかも無限に繰り返せるか微妙です。どうしたら良いですか?

  • 解決済

    processingで範囲指定してフレームの保存を行うやり方

    前提・実現したいこと processingでプログラムを組んでいます。 現在、SaveFrameを使って実行結果の画像書き出しを行い、ツールからムービーメーカーで動画にしています。

  • 解決済

    processhingにて矢印画像を回転させた方向の正誤判定の方法をお教えください。

     前提・実現したいこと processingにて例えば矢印を書いた画像画像を用意して、ランダムに回転(回転方向は0度、90度、180度、270度)と縮小拡大をして、矢印の向いた方向

  • 解決済

    表示に穴を開けるには。

     前提・実現したいこと 以下の図の赤丸のようにスケールバーの指定の場所をくり抜いて奥の表示を出現させるテクニック、あるいは目的の描写を周囲に被らせないように行うトリミングのテクニッ

  • 解決済

    弾幕ゲームの作成に関して

     processingでのゲーム作成 初めて投稿します。 最近processingを勉強し始め、ゲームを作るという課題が出て、私は弾幕シューティングゲームを作ろうと思い、作成してい

  • 解決済

    void setupにエラーが生じました

    ピンポンゲームの製作途中に意味の分からないエラーが生じました float rackx; //ラケットのx座標 float racky; float rackw;//ラケットの幅

  • 解決済

    二つのゲームを合わせて一つのゲームにしたい (削除依頼済)

    processingを学び始めてから間もなく知識が疎いです。 なんとかしてゲームを二つ作りました。 私の計画では、ここから二つのゲームを一つにしたいのですが、できません。 私が

同じタグがついた質問を見る

  • Processing

    237questions

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