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

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

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

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

ActionScript 3

ActionScript 3 (AS3)はAdobe FrashとAIRプラットフォームによる、オープンソースかつオブジェクト指向のプログラミング言語です。AS3はRIA、モバイルアプリケーション、デスクトップアプリケーションなど広く使われます。

Q&A

4回答

1523閲覧

条件分岐?

xof3413

総合スコア8

Java

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

ActionScript 3

ActionScript 3 (AS3)はAdobe FrashとAIRプラットフォームによる、オープンソースかつオブジェクト指向のプログラミング言語です。AS3はRIA、モバイルアプリケーション、デスクトップアプリケーションなど広く使われます。

0グッド

0クリップ

投稿2017/01/30 10:30

ActionScript3でゲームを作っています。

「Aの値が50減ったらら、Bの値を1減らす」というような処理を作りたいのですがどうすればいいかわかりません。

もう少し詳しく説明すると、

int型の変数Aの初期値は300です。
int型の変数Bの初期値は6です。
ゲーム内にはボタンがあり、
一度押すごとに変数Aの値を25引いていくボタン(btn_0)と
一度押すごとに変数Aの値を50引いていくボタン(btn_1)と
一度押すごとに変数Aの値を100引いていくボタン(btn_2)があります。

ボタンを押して引き算の処理をした時、変数Aから引かれた値が50であれば変数Bの値から1を引く(100であれば2,25であれば0)という事です。

自分は条件分岐で出来るのかなと思っているのですが、もしそれよりも正しい方法などあったら、ご指摘頂きたいです。

以下途中まで考えたスクリプトです。

//変数宣言
var A:int = 300;
var B:int = 6;

//条件分岐
if(ここが分からない){
B -= 1;
}

//ボタン設定
btn_0.addEventListener(MouseEvent.CLICK, A);
function A(e: MouseEvent): void {

A -= 25;
}

btn_1.addEventListener(MouseEvent.CLICK, B);
function B(e: MouseEvent): void {

A -= 50;
}

btn_2.addEventListener(MouseEvent.CLICK, C);
function C(e: MouseEvent): void {

A -= 100;
}

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

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

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

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

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

cateye

2017/01/30 10:46

「Aの値が50減ったら、Bの値を1減らす」と言うのと、「変数Aから引かれた値が50であれば変数Bの値から1を引く(100であれば2,25であれば0)」とでは視点が違います・・・25を2回引いたらー1にはならないのですか?
xof3413

2017/01/30 12:34

おっしゃる通りですね…。25は0ではなく正しくは0.5ですが、あくまでも50の倍数減っていくとその値に応じた値をBから引くというイメージです…。
guest

回答4

0

mod(%)を使ってはいかがですか?
A % 50 == 0
ならBを1減らす
なお、Aの初期値が50で割り切れてしまうので、初期値を除外するか、Bの初期値を1多くしておく対処が必要ですが

投稿2017/09/19 08:33

kenics

総合スコア179

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

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

0

Aから引かれた値」に対してBが減少する場合、引かれた値に対して引き算するのが1番分かりやすいです。

btn_0.addEventListener(MouseEvent.CLICK, A); function A(e: MouseEvent): void { A -= 25; } btn_1.addEventListener(MouseEvent.CLICK, B); function B(e: MouseEvent): void { A -= 50; B -= 1; } btn_2.addEventListener(MouseEvent.CLICK, C); function C(e: MouseEvent): void { A -= 100; B -= 2; }

Aの値」に対してBの値が決まるなら、swordoneさんの回答が参考になります。

btn_0.addEventListener(MouseEvent.CLICK, A); function A(e: MouseEvent): void { A -= 25; B = calculateB(); } btn_1.addEventListener(MouseEvent.CLICK, B); function B(e: MouseEvent): void { A -= 50; B = calculateB(); } btn_2.addEventListener(MouseEvent.CLICK, C); function C(e: MouseEvent): void { A -= 100; B = calculateB(); } function calculateB() : int { return A / 50 + (A % 50 != 0) ? 1 : 0; }

投稿2017/01/30 16:23

編集2017/01/31 02:20
carimatics

総合スコア740

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

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

0

‐25が2回でも‐50と同じ扱いでBを1減らすなら、Bは要するにAが50区切り(切り上げ)で何個分かということではないですか?
であれば、Aを操作した後の計算を次のような計算で代替できませんか?

java

1B = A / 50 + (A % 50 != 0) ? 1 : 0;

投稿2017/01/30 15:17

swordone

総合スコア20669

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

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

0

こういうのは考え方を変える必要があります。

「Aの値が50減ったらら、Bの値を1減らす」とありますね。

この「Aの値が50減ったら」の条件文がわからない。と。

であれば、考え方を変えてみましょう。

"50減ったらと" とありますが、どのようにして考えます?

普通は " 全体から 差し引いた値 が 50 以上 " ですよね?

なので、

"全体から差し引いた値"

"その値が 50 以上"

を分けて考えて見ましょう。

(最終的にはひとつになりますが、考えやすくするために分割します。)

全体から... の部分は

全体 - 現在の値

としますか。

で、その式を C とします ( calc の略 )。

C が 50 以上 ( 50を含む )

だと

C >= 50

となりますね。

なので、

元に戻して

全体 - 現在の値 >= 50

です。これを変数とかデータに書き換えると完成です。

投稿2017/01/30 10:44

BeatStar

総合スコア4962

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.37%

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

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

質問する

関連した質問