×

[PR]この広告は3ヶ月以上更新がないため表示されています。
ホームページを更新後24時間以内に表示されなくなります。

ゲームを作ろう! ターン制バトルその3 見た目をもっとゲームっぽく!


前回までで、「なんかターン制バトルっぽいもの」が出来上がりました。
これにそれっぽい演出を加えていこうと思います。

とりあえず……
背景を黒、文字を白にして、メッセージウィンドウの枠を加えるだけでも、ド○クエっぽくなるはず。
(ドラ○エを目指している訳じゃないですがw)
前回の冒頭、

haikeicolor = "white"
mojicolor = "black"

これを入れ替えれば背景が黒、文字色が白になりますね。

また、今後文字だけでなく絵も加えていくと仮定して(本当にやるかは別の話w)、元々のウィンドウサイズももっと大きくした方がいいかな。
それならそれで、今時っぽくスマホ向け(?)に、縦長画面にしましょうか。
それともドラ○エ的に横長か。

絵を表示するとして‥‥
GraphicsWindow.FillRectangleのような、図形を描くオブジェクトで絵を描くのはかなり大変そう。
線、楕円、四角形、三角形を組み合わせても、描ける図形には限度があります。
実際の絵(画像ファイル)は、

imageName = "(ファイルのパス)"
GraphicsWindow.DrawImage(imageName, x, y)

これで、画像ファイルを座標(x, y)に表示します。
もちろん、自前で絵を用意しなければなりません。
インターネットには、フリー素材という便利なものもありますので、素材をお借りして表示するという手もありますが、私は一応、しょぼくても絵は描けますので、自分で絵を描いて表示させてみることにします。

rpg


‥‥いや、これ、(仮)だから。w
透過pngで背景が透けるかどうかテストしただけだから。w

ついでだから魔王と勇者に顔グラフィックをいれて……

rpg


rpg


rpg


rpg


rpg


勇者はまともな絵を入れておきました。w

あとは、バトル前に何かしらのメッセージを出したいですね。
バトル前に入れるなら、魔王を倒した時や、魔王に負けた時にも……。

以上、色々と変更したプログラムを最後に掲載しますが、これもまた長ったらしいので下をクリックで開くようにしました。
また、画像ファイルはFlickr上にアップしたので、リンク先もFlickrにしてあります。
下のプログラムを実行する時は、ネットに繋がった環境でなければ動かないと思いますのでご了承ください。
残念ながらFlickrにはjpgファイルしか置けないので、背景が透けていませんが‥‥。

基本的な考え方は、
・イベントを起こす(台詞表示とか魔王・勇者の攻撃とか)ため、ボタンを各自設定しておく。
・それらのボタンは、最初に押して欲しいボタン以外を隠す。
・その後は、各イベントを起こす時にボタンを表示させて、ボタンを押すことでイベントを進める。
この繰り返しで、上手く分岐を作っています。

最終的にはボタン配置などかなり変更しています。
勇者の魔法の消費MPは、オープニングの台詞の中に入れておきました。

rpg


rpg


GraphicsWindow.Title = "勇者VS魔王"
GraphicsWindow.Width = 600
GraphicsWindow.Height = 400
GraphicsWindow.BackgroundColor = haikeicolor

haikeicolor = "black"
mojicolor = "white"

yuusyatuujou = 1400 '勇者の「戦う」(通常)ダメージ基本量
yuusyakaisin = 4000 '勇者の「戦う」(会心の一撃)ダメージ基本量
yuusyakaihuku = 10000 '勇者の「回復魔法」基本量
yuusyamahou = 4000 '勇者の「攻撃魔法」ダメージ基本量

maoutuujou = 2400 '魔王の「戦う」ダメージ基本量
maoumahou = 3000 '魔王の「魔法」ダメージ基本量
maouhissatu = 4200 '魔王の「必殺技」ダメージ基本量

YuusyaMXHP = 20000 '勇者の最大HP
yuusyaHP = 20000 '勇者のHP
yuusyaMP = 30 '勇者のMP
maouHP = 30000 '魔王のHP

'メッセージ表示位置
massagewindowX = 130 'メッセージウィンドウのX座標
massagewindowY = 280 'メッセージウィンドウのY座標
yuusyaHPX = 530 '勇者のHP表示位置のX座標
yuusyaHPY = 10 '勇者のHP表示位置のY座標
yuusyaMPX = 530 '勇者のMP表示位置のX座標
yuusyaMPY = 30 '勇者のMP表示位置のY座標
maouHPX = 530 '魔王のMP表示位置のX座標
maouHPY = 60 '魔王のMP表示位置のY座標

maouimage = "http://farm3.staticflickr.com/2843/34019152321_29649e9a68_b.jpg" '魔王のグラフィック
GraphicsWindow.DrawImage(maouimage, 230, 100)

'ボタン設定
GraphicsWindow.FontSize = 18
GraphicsWindow.BrushColor = "black"
ytatakau = Controls.AddButton("戦う", 500, 280)
ykaihuku = Controls.AddButton("回復魔法", 500, 320)
ymahou = Controls.AddButton("攻撃魔法", 500, 360)
maouturn = Controls.AddButton("|>", 550, 360) '魔王の攻撃ボタン
For i = 1 to 5
opkaiwa[i] = Controls.AddButton("|>", 550, 360) 'オープニング会話用ボタン。メッセージが5個なので、opkaiwa[1]〜opkaiwa[5]と設定
Endfor
ysyouri = Controls.AddButton("|>", 550, 360) '勇者勝利時のメッセージ送りボタン
maousyouri = Controls.AddButton("|>", 550, 360) '魔王勝利時のメッセージ送りボタン

'ボタン初期表示設定。opkaiwa[1]だけ表示したままで他は隠す
Controls.HideControl(ytatakau)
Controls.HideControl(ykaihuku)
Controls.HideControl(ymahou)
Controls.HideControl(maouturn)
Controls.HideControl(opkaiwa[2])
Controls.HideControl(opkaiwa[3])
Controls.HideControl(opkaiwa[4])
Controls.HideControl(opkaiwa[5])
Controls.HideControl(ysyouri)
Controls.HideControl(maousyouri)

'文字の初期表示
GraphicsWindow.BrushColor = mojicolor
GraphicsWindow.DrawText(430, 10, "勇者のHP:")
GraphicsWindow.DrawText(430, 30, "勇者のMP:")
GraphicsWindow.DrawText(430, 60, "魔王のHP:")
GraphicsWindow.DrawText(yuusyaHPX, yuusyaHPY, yuusyaHP) '勇者HP描画
GraphicsWindow.DrawText(yuusyaMPX, yuusyaMPY, YuusyaMP) '勇者MP描画
GraphicsWindow.DrawText(maouHPX, maouHPY, MaouHP) '魔王HP描画

'メッセージウィンドウの枠
GraphicsWindow.PenColor = mojicolor
GraphicsWindow.DrawRectangle(massagewindowX - 2, massagewindowY - 2, 365, 100)

'魔王と勇者のメッセージウィンドウ横顔グラフィック。開始時に魔王の顔を表示
maoukaoimage = "http://farm3.staticflickr.com/2947/34149757465_f4442f9355_b.jpg"
yuusyakaoimage1 = "http://farm3.staticflickr.com/2861/34019110651_b5d2da3fb4_b.jpg"
yuusyakaoimage2 = "http://farm3.staticflickr.com/2812/33764735780_de066f4c57_b.jpg"
GraphicsWindow.DrawImage(maoukaoimage, massagewindowX - 110, massagewindowY) 'メッセージウィンドウ魔王顔グラ

'開始時のメッセージウィンドウ内セリフ
GraphicsWindow.FontSize = 18
GraphicsWindow.BrushColor = mojicolor
GraphicsWindow.DrawText(massagewindowX, massagewindowY, "魔王があらわれた!")

Controls.ButtonClicked = OnClick

'オープニング会話
If Controls.LastClickedButton = opkaiwa[1] Then
  GraphicsWindow.BrushColor = haikeicolor
  GraphicsWindow.FillRectangle(massagewindowX, massagewindowY, 360, 90) 'メッセージウィンドウ台詞消去用
  GraphicsWindow.BrushColor = mojicolor
  GraphicsWindow.DrawText(massagewindowX, massagewindowY, "魔王")
  GraphicsWindow.DrawText(massagewindowX, massagewindowY + 30, "「勇者よ よくぞ来た!」")
  Controls.HideControl(opkaiwa[1]) 'ひとつのメッセージを表示したら、そのメッセージ表示用のボタンを消して、
  Controls.ShowControl(opkaiwa[2]) '次のメッセージ用のボタンを表示していく
EndIf
If Controls.LastClickedButton = opkaiwa[2] Then
  GraphicsWindow.BrushColor = haikeicolor
  GraphicsWindow.FillRectangle(massagewindowX, massagewindowY, 360, 90) 'メッセージウィンドウ台詞消去用
  GraphicsWindow.FillRectangle(massagewindowX - 110, massagewindowY, 100, 100) 'メッセージウィンドウ顔グラ消去用
  GraphicsWindow.DrawImage(yuusyakaoimage1, massagewindowX - 110, massagewindowY) 'メッセージウィンドウ勇者1顔グラ
  GraphicsWindow.BrushColor = mojicolor
  GraphicsWindow.DrawText(massagewindowX, massagewindowY, "勇者")
  GraphicsWindow.DrawText(massagewindowX, massagewindowY + 30, "「やる気のない格好だな……。」")
  Controls.HideControl(opkaiwa[2])
  Controls.ShowControl(opkaiwa[3])
EndIf
If Controls.LastClickedButton = opkaiwa[3] Then
  GraphicsWindow.BrushColor = haikeicolor
  GraphicsWindow.FillRectangle(massagewindowX, massagewindowY, 360, 90) 'メッセージウィンドウ台詞消去用
  GraphicsWindow.FillRectangle(massagewindowX - 110, massagewindowY, 100, 100) 'メッセージウィンドウ顔グラ消去用
  GraphicsWindow.DrawImage(maoukaoimage, massagewindowX - 110, massagewindowY) 'メッセージウィンドウ魔王顔グラ
  GraphicsWindow.BrushColor = mojicolor
  GraphicsWindow.DrawText(massagewindowX, massagewindowY, "魔王")
  GraphicsWindow.DrawText(massagewindowX, massagewindowY + 30, "「これは仮の姿! 本当は長髪美形なのだ!」")
  Controls.HideControl(opkaiwa[3])
  Controls.ShowControl(opkaiwa[4])
EndIf
If Controls.LastClickedButton = opkaiwa[4] Then
  GraphicsWindow.BrushColor = haikeicolor
  GraphicsWindow.FillRectangle(massagewindowX, massagewindowY, 360, 90) 'メッセージウィンドウ台詞消去用
  GraphicsWindow.FillRectangle(massagewindowX - 110, massagewindowY, 100, 100) 'メッセージウィンドウ顔グラ消去用
  GraphicsWindow.DrawImage(yuusyakaoimage2, massagewindowX - 110, massagewindowY) 'メッセージウィンドウ勇者2顔グラ
  GraphicsWindow.BrushColor = mojicolor
  GraphicsWindow.DrawText(massagewindowX, massagewindowY, "勇者")
  GraphicsWindow.DrawText(massagewindowX, massagewindowY + 30, "「そんな訳あるか! 覚悟しろ、魔王!」")
  Controls.HideControl(opkaiwa[4])
  Controls.ShowControl(opkaiwa[5])
EndIf
If Controls.LastClickedButton = opkaiwa[5] Then
  GraphicsWindow.BrushColor = haikeicolor
  GraphicsWindow.FillRectangle(massagewindowX, massagewindowY, 360, 90) 'メッセージウィンドウ台詞消去用
  GraphicsWindow.FillRectangle(massagewindowX - 110, massagewindowY, 100, 100) 'メッセージウィンドウ顔グラ消去用
  GraphicsWindow.DrawImage(maoukaoimage, massagewindowX - 110, massagewindowY) 'メッセージウィンドウ魔王顔グラ
  GraphicsWindow.BrushColor = mojicolor
  GraphicsWindow.DrawText(massagewindowX, massagewindowY, "魔王")
  GraphicsWindow.DrawText(massagewindowX, massagewindowY + 30, "「なお、おまえの回復魔法の消費MPは5、")
  GraphicsWindow.DrawText(massagewindowX, massagewindowY + 60, "攻撃魔法の消費MPは10だ! フハハハハ!」")
  Controls.HideControl(opkaiwa[5])
  Controls.ShowControl(ytatakau)
  Controls.ShowControl(ykaihuku)
  Controls.ShowControl(ymahou)
EndIf

'ここから勇者の行動
'MPが足りない時に魔法が使えない、というメッセージを出す
If Controls.LastClickedButton = ymahou And yuusyaMP < 10 Then '攻撃魔法用
  GraphicsWindow.BrushColor = haikeicolor
  GraphicsWindow.FillRectangle(massagewindowX, massagewindowY, 360, 90) 'メッセージウィンドウ台詞消去用
  GraphicsWindow.FillRectangle(massagewindowX - 110, massagewindowY, 100, 100) 'メッセージウィンドウ顔グラ消去用
  GraphicsWindow.BrushColor = mojicolor
  GraphicsWindow.DrawText(massagewindowX, massagewindowY, "MPが足りません。")
  GraphicsWindow.DrawImage(yuusyakaoimage1, massagewindowX - 110, massagewindowY) 'メッセージウィンドウ勇者1顔グラ
ElseIf Controls.LastClickedButton = ykaihuku And yuusyaMP < 5 Then '回復魔法用
  GraphicsWindow.BrushColor = haikeicolor
  GraphicsWindow.FillRectangle(massagewindowX, massagewindowY, 360, 90) 'メッセージウィンドウ台詞消去用
  GraphicsWindow.FillRectangle(massagewindowX - 110, massagewindowY, 100, 100) 'メッセージウィンドウ顔グラ消去用
  GraphicsWindow.BrushColor = mojicolor
  GraphicsWindow.DrawText(massagewindowX, massagewindowY, "MPが足りません。")
  GraphicsWindow.DrawImage(yuusyakaoimage1, massagewindowX - 110, massagewindowY) 'メッセージウィンドウ勇者1顔グラ
Else
'勇者の行動その1 戦う(確率で通常・会心の一撃)
If Controls.LastClickedButton = ytatakau Then
  yuusyakougeki = Math.GetRandomNumber(10) '通常・会心の確率をランダム取得
  If 1 <= yuusyakougeki And yuusyakougeki <= 8 Then '通常攻撃80%
    GraphicsWindow.BrushColor = haikeicolor
    GraphicsWindow.FillRectangle(massagewindowX, massagewindowY, 360, 90) 'メッセージウィンドウ台詞消去用
    GraphicsWindow.FillRectangle(massagewindowX - 110, massagewindowY, 100, 100) 'メッセージウィンドウ顔グラ消去用
    GraphicsWindow.FillRectangle(maouHPX, maouHPY, 60, 20) '魔王HP消去用
    GraphicsWindow.DrawImage(yuusyakaoimage2, massagewindowX - 110, massagewindowY) 'メッセージウィンドウ勇者2顔グラ
    ydamage = yuusyatuujou + Math.GetRandomNumber(101) - 1 'ダメージ量計算式。基本ダメージ量にランダムな数字を足す
    MaouHP = MaouHP - ydamage '魔王のHPからダメージ量を引いた値を、新たな魔王のHPと設定
    GraphicsWindow.BrushColor = mojicolor
    GraphicsWindow.DrawText(massagewindowX, massagewindowY, "勇者の攻撃!")
    GraphicsWindow.DrawText(massagewindowX + 50, massagewindowY + 20, "のダメージを与えた。")
    GraphicsWindow.DrawText(massagewindowX, massagewindowY + 20, ydamage) 'ダメージ量の数値
    Controls.HideControl(ytatakau)
    Controls.HideControl(ykaihuku)
    Controls.HideControl(ymahou)
    If MaouHP  <= 0 Then '魔王のHPが0になった時。エンディングへ
      GraphicsWindow.DrawText(massagewindowX, massagewindowY + 40, "勇者は魔王を倒した!")
      GraphicsWindow.DrawText(maouHPX, maouHPY, 0) '魔王HP描画(倒したので強制で0)
      Controls.ShowControl(ysyouri)
    Else '魔王のHPが1以上ならば、魔王ターンへ
      GraphicsWindow.BrushColor = mojicolor
      GraphicsWindow.DrawText(maouHPX, maouHPY, MaouHP) '魔王HP描画
      Controls.ShowControl(maouturn)
    EndIf
  EndIf
  If 9 <= yuusyakougeki And yuusyakougeki <= 10 Then '会心の確率20%
    GraphicsWindow.BrushColor = haikeicolor
    GraphicsWindow.FillRectangle(massagewindowX, massagewindowY, 360, 90) 'メッセージウィンドウ台詞消去用
    GraphicsWindow.FillRectangle(massagewindowX - 110, massagewindowY, 100, 100) 'メッセージウィンドウ顔グラ消去用
    GraphicsWindow.FillRectangle(maouHPX, maouHPY, 60, 20) '魔王HP消去用
    GraphicsWindow.DrawImage(yuusyakaoimage2, massagewindowX - 110, massagewindowY) 'メッセージウィンドウ勇者2顔グラ
    ydamage = yuusyakaisin + Math.GetRandomNumber(201) - 1
    MaouHP = MaouHP - ydamage
    GraphicsWindow.BrushColor = mojicolor
    GraphicsWindow.DrawText(massagewindowX, massagewindowY, "勇者の攻撃! 会心の一撃!!")
    GraphicsWindow.DrawText(massagewindowX + 50, massagewindowY + 20, "のダメージを与えた。")
    GraphicsWindow.DrawText(massagewindowX, massagewindowY + 20, ydamage) 'ダメージ量の数値
    Controls.HideControl(ytatakau)
    Controls.HideControl(ykaihuku)
    Controls.HideControl(ymahou)
    If MaouHP  <= 0 Then
      GraphicsWindow.DrawText(massagewindowX, massagewindowY + 40, "勇者は魔王を倒した!")
      GraphicsWindow.DrawText(maouHPX, maouHPY, 0) '魔王HP描画(倒したので強制で0)
      Controls.ShowControl(ysyouri)
    Else
      GraphicsWindow.DrawText(massagewindowX, massagewindowY + 20, ydamage) 'ダメージ量の数値
      GraphicsWindow.DrawText(maouHPX, maouHPY, MaouHP) '魔王HP描画
      Controls.ShowControl(maouturn)
    EndIf
  EndIf
EndIf

'勇者の行動その2 回復魔法
If Controls.LastClickedButton = ykaihuku Then
  GraphicsWindow.BrushColor = haikeicolor
  GraphicsWindow.FillRectangle(massagewindowX, massagewindowY, 360, 90) 'メッセージウィンドウ台詞消去用
  GraphicsWindow.FillRectangle(massagewindowX - 110, massagewindowY, 100, 100) 'メッセージウィンドウ顔グラ消去用
  GraphicsWindow.FillRectangle(yuusyaHPX, yuusyaHPY, 60, 20) '勇者HP消去用
  GraphicsWindow.FillRectangle(yuusyaMPX, yuusyaMPY, 40, 20) '勇者MP消去用
  GraphicsWindow.DrawImage(yuusyakaoimage1, massagewindowX - 110, massagewindowY) 'メッセージウィンドウ勇者1顔グラ
  GraphicsWindow.BrushColor = mojicolor
  GraphicsWindow.DrawText(massagewindowX, massagewindowY, "勇者は回復魔法を唱えた!")
  GraphicsWindow.DrawText(massagewindowX, massagewindowY + 20, "勇者のHPが回復した。")
  ykaihukuryou = yuusyakaihuku + Math.GetRandomNumber(1001) - 1
  YuusyaHP = YuusyaHP + ykaihukuryou
  YuusyaMP = YuusyaMP - 5
  GraphicsWindow.DrawText(yuusyaMPX, yuusyaMPY, YuusyaMP) '勇者MP描画
  Controls.HideControl(ytatakau)
  Controls.HideControl(ykaihuku)
  Controls.HideControl(ymahou)
  Controls.ShowControl(maouturn)
  If YuusyaMXHP <= YuusyaHP Then '回復したHPが勇者の最大HP以上の時は、表示するHPを最大HPに強制変更
    GraphicsWindow.DrawText(yuusyaHPX, yuusyaHPY, YuusyaMXHP) '勇者最大HP描画
  Else
    GraphicsWindow.DrawText(yuusyaHPX, yuusyaHPY, yuusyaHP) '勇者HP描画
  EndIf
EndIf
  
'勇者の行動その3 攻撃魔法
If Controls.LastClickedButton = ymahou Then
  GraphicsWindow.BrushColor = haikeicolor
  GraphicsWindow.FillRectangle(massagewindowX, massagewindowY, 360, 90) 'メッセージウィンドウ台詞消去用
  GraphicsWindow.FillRectangle(massagewindowX - 110, massagewindowY, 100, 100) 'メッセージウィンドウ顔グラ消去用
  GraphicsWindow.FillRectangle(maouHPX, maouHPY, 60, 20) '魔王HP消去用
  GraphicsWindow.FillRectangle(yuusyaMPX, yuusyaMPY, 40, 20) '勇者MP消去用
  GraphicsWindow.DrawImage(yuusyakaoimage2, massagewindowX - 110, massagewindowY) 'メッセージウィンドウ勇者2顔グラ
  ydamage = yuusyamahou + Math.GetRandomNumber(201) - 1
  MaouHP = MaouHP - ydamage
  YuusyaMP = YuusyaMP - 10
  GraphicsWindow.BrushColor = mojicolor
  GraphicsWindow.DrawText(massagewindowX, massagewindowY, "勇者は攻撃魔法を唱えた!")
  GraphicsWindow.DrawText(massagewindowX + 50, massagewindowY + 20, "のダメージを与えた。")
  GraphicsWindow.DrawText(massagewindowX, massagewindowY + 20, ydamage) 'ダメージ量の数値
  GraphicsWindow.DrawText(yuusyaMPX, yuusyaMPY, YuusyaMP) '勇者MP描画
  Controls.HideControl(ytatakau)
  Controls.HideControl(ykaihuku)
  Controls.HideControl(ymahou)
    If MaouHP  <= 0 Then
      GraphicsWindow.DrawText(massagewindowX, massagewindowY + 40, "勇者は魔王を倒した!")
      GraphicsWindow.DrawText(maouHPX, maouHPY, 0) '魔王HP描画(倒したので強制で0)
      Controls.ShowControl(ysyouri)
    Else
      GraphicsWindow.DrawText(massagewindowX, massagewindowY + 20, ydamage) 'ダメージ量の数値
      GraphicsWindow.DrawText(maouHPX, maouHPY, MaouHP) '魔王HP描画
      Controls.ShowControl(maouturn)
    EndIf
EndIf
EndIf

'勇者勝利用
If Controls.LastClickedButton = ysyouri Then
  GraphicsWindow.Clear()
  yuusyaending = "http://farm3.staticflickr.com/2850/34019110891_ec84167d8b_b.jpg"
  GraphicsWindow.DrawImage(yuusyaending, 0, 0)
EndIf

If Controls.LastClickedButton = maouturn Then
'ここから魔王の行動
  maoukoudou = Math.GetRandomNumber(100)
'魔王の行動その1 通常攻撃
  If 1 <= maoukoudou And maoukoudou <= 70 Then
    GraphicsWindow.BrushColor = haikeicolor
    GraphicsWindow.FillRectangle(massagewindowX, massagewindowY, 360, 90) 'メッセージウィンドウ台詞消去用
    GraphicsWindow.FillRectangle(massagewindowX - 110, massagewindowY, 100, 100) 'メッセージウィンドウ顔グラ消去用
    GraphicsWindow.FillRectangle(yuusyaHPX, yuusyaHPY, 60, 20) '勇者HP消去用
    GraphicsWindow.DrawImage(maoukaoimage, massagewindowX - 110, massagewindowY) 'メッセージウィンドウ魔王顔グラ
    mdamage = maoutuujou + Math.GetRandomNumber(201) - 1
    yuusyaHP = yuusyaHP - mdamage
    GraphicsWindow.BrushColor = mojicolor
    GraphicsWindow.DrawText(massagewindowX, massagewindowY, "魔王の攻撃!")
    GraphicsWindow.DrawText(massagewindowX + 50, massagewindowY + 20, "のダメージを与えた。")
    GraphicsWindow.DrawText(massagewindowX, massagewindowY + 20, mdamage)
    Controls.HideControl(maouturn)
    If yuusyaHP <= 0 Then
      GraphicsWindow.DrawText(massagewindowX, massagewindowY + 40, "魔王は勇者を倒した!")
      GraphicsWindow.DrawText(yuusyaHPX, yuusyaHPY, 0) '勇者HP描画(倒したので強制で0)
      Controls.ShowControl(maousyouri)
    Else
      GraphicsWindow.DrawText(yuusyaHPX, yuusyaHPY, yuusyaHP) '勇者HP描画
      Controls.ShowControl(ytatakau)
      Controls.ShowControl(ykaihuku)
      Controls.ShowControl(ymahou)
    EndIf
  EndIf
'魔王の行動その2 魔法攻撃
  If 71 <= maoukoudou And maoukoudou <= 85 Then
    GraphicsWindow.BrushColor = haikeicolor
    GraphicsWindow.FillRectangle(massagewindowX, massagewindowY, 360, 90) 'メッセージウィンドウ台詞消去用
    GraphicsWindow.FillRectangle(massagewindowX - 110, massagewindowY, 100, 100) 'メッセージウィンドウ顔グラ消去用
    GraphicsWindow.FillRectangle(yuusyaHPX, yuusyaHPY, 60, 20) '勇者HP消去用
    GraphicsWindow.DrawImage(maoukaoimage, massagewindowX - 110, massagewindowY) 'メッセージウィンドウ魔王顔グラ
    GraphicsWindow.BrushColor = mojicolor
    mdamage = maoumahou + Math.GetRandomNumber(301) - 1
    GraphicsWindow.DrawText(massagewindowX, massagewindowY + 20, mdamage)
    yuusyaHP = yuusyaHP - mdamage
    GraphicsWindow.BrushColor = mojicolor
    GraphicsWindow.DrawText(massagewindowX, massagewindowY, "魔王はなんかすごい魔法を唱えた!")
    GraphicsWindow.DrawText(massagewindowX + 50, massagewindowY + 20, "のダメージを与えた。")
    GraphicsWindow.DrawText(massagewindowX, massagewindowY + 20, mdamage)
    Controls.HideControl(maouturn)
    If yuusyaHP <= 0 Then
      GraphicsWindow.DrawText(massagewindowX, massagewindowY + 40, "魔王は勇者を倒した!")
      GraphicsWindow.DrawText(yuusyaHPX, yuusyaHPY, 0) '勇者HP描画(倒したので強制で0)
      Controls.ShowControl(maousyouri)
    Else
      GraphicsWindow.DrawText(massagewindowX, massagewindowY + 20, mdamage)
      GraphicsWindow.DrawText(yuusyaHPX, yuusyaHPY, yuusyaHP) '勇者HP描画
      Controls.ShowControl(ytatakau)
      Controls.ShowControl(ykaihuku)
      Controls.ShowControl(ymahou)
    EndIf
  EndIf
'魔王の行動その3 必殺技
  If 86 <= maoukoudou And maoukoudou <= 90 Then
    GraphicsWindow.BrushColor = haikeicolor
    GraphicsWindow.FillRectangle(massagewindowX, massagewindowY, 360, 90) 'メッセージウィンドウ台詞消去用
    GraphicsWindow.FillRectangle(massagewindowX - 110, massagewindowY, 100, 100) 'メッセージウィンドウ顔グラ消去用
    GraphicsWindow.FillRectangle(yuusyaHPX, yuusyaHPY, 60, 20) '勇者HP消去用
    GraphicsWindow.DrawImage(maoukaoimage, massagewindowX - 110, massagewindowY) 'メッセージウィンドウ魔王顔グラ
    GraphicsWindow.BrushColor = mojicolor
    mdamage = maouhissatu + Math.GetRandomNumber(401) - 1
    yuusyaHP = yuusyaHP - mdamage
    GraphicsWindow.BrushColor = mojicolor
    GraphicsWindow.DrawText(massagewindowX, massagewindowY, "魔王はなんかすごい必殺技を放った!")
    GraphicsWindow.DrawText(massagewindowX + 50, massagewindowY + 20, "のダメージを与えた。")
    GraphicsWindow.DrawText(massagewindowX, massagewindowY + 20, mdamage)
    Controls.HideControl(maouturn)
    If yuusyaHP <= 0 Then
      GraphicsWindow.DrawText(massagewindowX, massagewindowY, "魔王は勇者を倒した!")
      GraphicsWindow.DrawText(yuusyaHPX, yuusyaHPY, 0) '勇者HP描画(倒したので強制で0)
      Controls.ShowControl(maousyouri)
    Else
      GraphicsWindow.DrawText(yuusyaHPX, yuusyaHPY, yuusyaHP) '勇者HP描画
      Controls.ShowControl(ytatakau)
      Controls.ShowControl(ykaihuku)
      Controls.ShowControl(ymahou)
    EndIf
  EndIf
'魔王の行動その4 様子見
  If 91 <= maoukoudou And maoukoudou <= 100 Then
    GraphicsWindow.BrushColor = haikeicolor
    GraphicsWindow.FillRectangle(massagewindowX, massagewindowY, 360, 90) 'メッセージウィンドウ台詞消去用
    GraphicsWindow.FillRectangle(massagewindowX - 110, massagewindowY, 100, 100) 'メッセージウィンドウ顔グラ消去用
    GraphicsWindow.FillRectangle(yuusyaHPX, yuusyaHPY, 60, 20) '勇者HP消去用
    GraphicsWindow.DrawImage(maoukaoimage, massagewindowX - 110, massagewindowY) 'メッセージウィンドウ魔王顔グラ
    GraphicsWindow.BrushColor = mojicolor
    GraphicsWindow.DrawText(massagewindowX, massagewindowY, "魔王は様子を見ている。")
    GraphicsWindow.DrawText(yuusyaHPX, yuusyaHPY, yuusyaHP) '勇者HP描画
    Controls.ShowControl(ytatakau)
    Controls.ShowControl(ykaihuku)
    Controls.ShowControl(ymahou)
    Controls.HideControl(maouturn)
    EndIf
  EndIf
  
'魔王勝利用
  If Controls.LastClickedButton = maousyouri Then
    GraphicsWindow.Clear()
    maouending = "http://farm3.staticflickr.com/2814/33764735820_f5e1a43c43_b.jpg"
    GraphicsWindow.DrawImage(maouending, 0, 0)
  EndIf
EndSub



次:その4 バトルをもっと複雑に


▲TOPへ戻る