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

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

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

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

Eclipse

Eclipseは、IBM社で開発された統合開発環境のひとつです。2001年11月にオープンソース化されました。 たくさんのプラグインがあり自由に機能を追加をすることができるため、開発ツールにおける共通プラットフォームとして位置づけられています。 Eclipse自体は、Javaで実装されています。

Q&A

0回答

1050閲覧

描画処理を一部別にしたいんです

taiyokarasu

総合スコア27

Java

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

Eclipse

Eclipseは、IBM社で開発された統合開発環境のひとつです。2001年11月にオープンソース化されました。 たくさんのプラグインがあり自由に機能を追加をすることができるため、開発ツールにおける共通プラットフォームとして位置づけられています。 Eclipse自体は、Javaで実装されています。

0グッド

0クリップ

投稿2016/10/30 13:07

import java.awt.;
import java.awt.event.
;

/**

  • 敵弾クラス<p>
  • 移動処理、描画処理など

*/
public class Bullet extends GameObject
{
double direction;
double speed;
double speedX;
double speedY;

/** * コンストラクタ */ Bullet() { //初期化時はactiveでない active = false; } /** * 動作を規定する。メインループ1周につき一回呼ばれる */ public void move() { x += speedX; y += speedY; if ( (x < 0)||(500 < x)||(y < 0)||(500 < y) ) { active = false; } } /** * 描画処理。 * 1ループで一回呼ばれる。 * @param g 描画先グラフィックハンドル */ public void draw(Graphics g) { g.setColor(Color.blue); g.drawRect((int)(x-3), (int)(y-3), (int)6, (int)6); } /** * インスタンスを有効にする。インスタンスの使い回しをしているので、 * 初期化処理もここで行う。 * @param ix 生成する位置(X座標) * @param iy 生成する位置(Y座標) * @param idirection 向き(単位は度 0-360) * @param ispeed 速度(単位はピクセル) */ public void activate(double ix, double iy, double idirection, double ispeed) { x = ix; y = iy; direction = idirection; speed = ispeed; active = true; //弾のインスタンスを有効にする //高速化のため、極座標からXY速度に変換しておく。 double radian; radian = Math.toRadians(direction); //度をラジアンに変換 speedX = speed * Math.cos(radian); speedY = speed * Math.sin(radian); } /** * 全方位に弾を撃つ */ public static void FireRound(double x, double y) { for (int i = 0; i < 360; i += 60 ) { ObjectPool.newBullet(x, y, i, 3); } } //プレイヤーの位置に向けて弾を撃つ public static void FireAim(double x, double y, Player player) { double degree = Math.toDegrees(Math.atan2(player.y - y, player.x - x)); ObjectPool.newBullet(x, y, degree, 4); ObjectPool.newBullet(x, y, degree+20, 4); ObjectPool.newBullet(x, y, degree-20, 4); }

}

プレイヤーに向けて撃つところの描画処理を別にしたいんです。
if文をつけるにしても、条件をどう分ければいいのか、一回FireAimを使って条件を作ってみたんですが、エラーが起きてしまいました。
他に条件で分ける方法を教えてくだされば助かります。

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

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

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

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

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

KSwordOfHaste

2016/10/30 17:18

コードは編集エリア上にある「</>」を使って使い見やすくしてください。また以前された別の質問に回答がついてますが、解決済みにするか解決にならなかった事情をコメントしましょう。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

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

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

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問