初投稿です!
今後自分が作ったもの、やったことなどを投稿していこうと思いますので、よろしくお願いいたします(^-^)
今回投稿する内容は、PowerAppsを使ってじゃんけんゲームを作ってみました!
こちらは@rnakamuramartinyさんが考えたもので、作り方を教えて頂き、なんとか形にすることができました!
本当にありがとうございます!
ただ作っただけでは勿体ないので、復習の意味でも自分なりにまとめていこうと思います。
本日のゴール
事前準備
画像の取り込み
まずはグー、チョキ、パーの画像を[メディア]⇒[画像]⇒[参照]の手順で開いておきます。
オブジェクトを配置
グー、チョキ、パーの画像を表示するためにImageオブジェクトを挿入します
以下のように配置します。
※画像の名前を入力すると、対応した画像が表示されます。確認のためグーの画像を表示しています。
画像と関連付けるテーブルを作成
グー、チョキ、パーの画像を1,2,3という数字に関連付けるため、テーブルを作成する関数を使用
今回は以下のようなテーブルを作成
テーブル名[JankenImage]
ID | Image |
---|---|
1 | Goo |
2 | Choki |
3 | Pa |
ScreenのOnVisibleに以下の図のように関数を書きました。
※関数
ClearCollect(JankenImage,
{ID:1,Image:Goo},
{ID:2,Image:Choki},
{ID:3,Image:Pa}
);
実際にグー、チョキ、パーの画像をぐるぐる回してみる
画像をぐるぐる回す=先ほど作ったテーブルのIDを1→2→3→1→2→3→1・・・・という感じでループさせたい。
そこで使うのは「タイマーオブジェクト」です!
タイマーオブジェクトを挿入し、「OnTimerEnd」に以下の関数を書きます。
If(ImageID=3,UpdateContext({ImageID:1}),UpdateContext({ImageID:ImageID+1}))
※ImageIDは画像を切り替えるために使用する変数です。ScreenのOnvisibleにImageIDという変数を宣言し、初期値を入れておきます。
グー、チョキ、パーの画像を素早く切り替え、ループさせたいので、タイマーのプロパティから期間を100(ms)、繰り返しをオンにします。
タイマーをスタートさせる
タイマーオブジェクトの「Start」がfalseの場合、タイマーはストップし、trueの場合タイマーが動き出します。
ScreenのOnVisibleに[Janken_Start]という変数を作り、UpdateContext({Janken_Start:false})
と指定しておきます。
タイマーオブジェクトの[Start]に「Janken_Start」という変数を指定し、何も操作しない時はタイマーは動かないようにしておきます。
次に「Janken_Start = True」となるように作成していきます。
ボタンオブジェクトを挿入します。
OnSelectで以下図のように関数を書きます。
挿入したボタンをクリックするとタイマーが動き出し、ImageIDの値が変化していきます。
※各変数の値がどのように変化しているのか確認する際は、ラベルを挿入し、変数名を入れると確認できます。
ちなみにストップボタンはスタートボタンとは逆で、Janken_Start = fasleになるようにOnSelectで関数を書けばタイマーは止まります。
画像をぐるぐる回す
これでImageIDの値が1→2→3→1→2・・・と変わる仕組みができたので、次はImageIDと事前準備の時に作った「JankenImage」テーブルに関連付けができれば画像がぐるぐる回ります。
挿入しておいたImageオブジェクトに以下の関数を書きます。
LookUp(JankenImage,ImageID = ID,Image)
※LookUp関数はテーブル内で数式を満たす最初のレコードを検索します。
今回の場合、JankenImageというテーブルでImageID変数の値(1~3)の画像がどれか検索します。
タイマーがスタートしていると、ImageIDは1→2→3→1→2・・・と変化しているので、画像もグー、チョキ、パー、グー、チョキ、パー・・・と変化することになります。
本日はここまで
次回は実際にじゃんけんをして勝敗を決めるところまでやりたいと思います!