PowerAppsゲームとは
本来はビジネスアプリを開発するツールであるPowerAppsをつかって
簡単なゲームをつくろうぜ!というものでございます。
この度、私もPowerApps GameCompetitionというものに参加するにあたり
過去記事にもあります通りゲームを作成しておりました。
PowerApps GameDevとは?
PowerAppsでゲーム作成を行うにあたり、工夫したところ(よりゲームっぽい感じにしてみるなど)を纏めたものです。
本日のゴール
事前準備
スコア表示用のPNGファイル
こんな感じのPNGファイルを用意しましょう。(0~9)
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
---|---|---|---|---|---|---|---|---|---|
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
イメージのアップロード
上記のPNGファイルを用意したら、作成しているアプリの
メディア > 画像 とアクセスし、アップロードを行います。
スコアを格納する変数を用意
とりあえず、Scoreとしときましょう。
実際に作成していきましょう
使うオブジェクトは・・・
既にお気づきだとは思いますが、画像オブジェクトを使用します。
1桁目
Imageプロパティを設定します。
Switch(Value(Mid(Text(score),Len(Text(score)),1)),
0,ScoreFont_0_Black,
1,ScoreFont_1_Black,
2,ScoreFont_2_Black,
3,ScoreFont_3_Black,
4,ScoreFont_4_Black,
5,ScoreFont_5_Black,
6,ScoreFont_6_Black,
7,ScoreFont_7_Black,
8,ScoreFont_8_Black,
9,ScoreFont_9_Black
)
解説
とりあえず、Scoreの1桁目の数字によって
イメージを切り替えればいいので、Switch関数を使用しています。
問題は、1桁目が0~9のどれかをどうやって出すかというところですね。
1桁目の出し方
スコアの桁数が仮に最大8桁だった場合は
スコアの文字列としての長さは1~8で変動します。
(0~99999999)
なので、現在の文字列の長さの末尾を開始地点とし
その1文字目を取得すれば1桁目が取得できます。
たとえば、現在のスコアが478953点だった場合は
文字列の長さとしては6。
MID関数で1桁目をとる場合は
MID(TEXT(Score),Len(Text(Score)),1)
とすれば、戻りは3が返ってきます。
あとは、その値を再度数値型に変えて、Switch関数に渡せば、おのずと3のイメージが
表示されることになります。
2桁目以降
こちらもImageプロパティを使用しますが
1桁目とちょっと異なります。
Switch(Value(Mid(Text(score),Len(Text(score))-1,1)),
0,ScoreFont_0_Black,
1,ScoreFont_1_Black,
2,ScoreFont_2_Black,
3,ScoreFont_3_Black,
4,ScoreFont_4_Black,
5,ScoreFont_5_Black,
6,ScoreFont_6_Black,
7,ScoreFont_7_Black,
8,ScoreFont_8_Black,
9,ScoreFont_9_Black
)
また、スコア表示にて0埋めしたくない時は、Visibleプロパティも
使用することになります。
If(Len(Text(score))<2,false,true)
解説
基本的に、1桁目と同じ考えです。
2桁目の出し方
現在の文字列の長さの末尾から 1文字引いた 場所を開始地点とし
その1文字目を取得すれば2桁目が取得できます。
たとえば、現在のスコアが478953点だった場合は
文字列の長さとしては6。
MID関数で2桁目をとる場合は
MID(TEXT(Score),Len(Text(Score))-1,1)
とすれば、戻りは5が返ってきます。
3桁目の出し方
現在の文字列の長さの末尾から 2文字引いた 場所を開始地点とし
その1文字目を取得すれば3桁目が取得できます。
たとえば、現在のスコアが478953点だった場合は
文字列の長さとしては6。
MID関数で3桁目をとる場合は
MID(TEXT(Score),Len(Text(Score))-2,1)
とすれば、戻りは9が返ってきます。
最後に
皆さんも、お好きなフォントのイメージを用意して
素敵なスコア表示をさせてみましょう!
見た目は結構大事ですよ♪