忍者ブログ

マドノマグラの初心者自作ゲーム制作日誌 迷走モード

プログラミング初心者が自作ゲームを作成してみようとする動きを記す。現在迷走中。

ブログ履歴

2010/11/06: HSP3.22の環境を整えてみる
2009/11/09: Rubyで適当版自分用関連記事リンク作成プログラムを作る
2009/06/04: Visual C++(DXライブラリ使用)の環境を整えてみるも休止状態に
2009/03/17: ActionScript勉強の環境を整えるも結局休止状態に
2006/07/15: とりあえず分岐型ゲームを作る グリーンタワーVer1.2 ダウンロード(zip)
2006/07/02: ブログスタート。NScripterで何かを作ろうとする

[PR]

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

HSPで作ったじゃんけんゲーム草稿版 Ver 1.01

じゃんけんゲームのちょっとした改良。

ボタンを押したときに、ボタンの使用を一時不可にするだとか、サブルーチンを使ってみるだとか、手の使用回数の表示だとか、そういう部分を弄ってみた。

次は、敵データのテキストファイルからの読み込みぐらいをやってみようかなあ。





; 続・じゃんけんゲームを作る
cls
screen 0,480,360
title "じゃんけんゲーム Ver.1.01"

;オープニング画面など気が向けば作る。

;データ置き場
;プレイヤー名前とHP、3回まで負けてよし
player_name = "プレイヤー"
player_hp = 3

;グーチョキパーが使える回数、最初は1回。
p_guu = 1
p_choki = 1
p_paa = 1

;敵の番号とHPと名前の基本
enemy_number = 0
enemy_hp = 0
enemy_name = ""

;言葉置き場だけど、これが必要ないプログラムの打ち方はあるかも
j_navi = ""

;自分と敵の出した手の数値化
p_way = 0
e_way = 0

;出した手を適当に配列化。
dim way,6
way(0) = "グー"
way(2) = "チョキ"
way(5) = "パー"

;ボタン置き場。
;ver 1.00からの変更点は、場所を画面の下の方にしたこと。
objsize 40
color 0,0,0
pos 30,320
button "グー",*guu
pos 130,320
button "チョキ",*choki
pos 230,320
button "パー",*paa

;強制的に勝ち負け誘導するボタン
;ver 1.00からの変更点は、場所を画面の下の方にしたことと、プログラム文字位置変更
pos 380,320
button "勝ち",*win
pos 430,320
button "負け",*lose

;ボタン一時使用不可
;ver 1.00からの変更点は、全てのボタンについて適用したことと、この部分をサブルーチンとして処理したこと
gosub *button_unable

;物語パート予定、気が向けば作る
*story_part

;画面全体の白地クリア
;ver 1.00からの変更点は、文字消し(白)はサブルーチン化
gosub *screen_clearcolor
boxf

;敵の番号で、物語と敵のデータを読み込み、テキストファイルとしての読み込み化は気が向けばやる
;名前とHPと、画面上方の背景色の選択(いつか画像を入れ込むための練習ダミー)
switch enemy_number
case 0
enemy_name = "石"
enemy_hp = 1
color 0,255,255
swbreak
case 1
enemy_name = "鋏"
enemy_hp = 1
color 128,255,255
swbreak
case 2
enemy_name = "紙"
enemy_hp = 1
color 255,0,255
swbreak
default
enemy_name = "偽データ"
enemy_hp = 1
color 0,128,255
swbreak
swend

;画面上方の背景色描画
boxf 30,10,450,180

;アクションパートという名のジャンケンパート
*action_part

;手の使える回数比較で、ボタン使用が可能か不可能かチェック
;ver 1.00からの変更点は、各手はパート内に移動。
if p_guu > 0:objenable 0,1
if p_choki > 0:objenable 1,1
if p_paa > 0:objenable 2,1
;ver 1.00からの変更点は、勝ち負けボタンも使用可能フラグをつけた点。
objenable 3,1
objenable 4,1

;自分と敵の名前・HPデータ部分を一時消す(白くする)ための部分
;ver 1.00からの変更点は、文字消し(白)はサブルーチン化、消す範囲を画面下部分も拡張
gosub *screen_clearcolor
boxf 30,200,480,240
boxf 0,320,480,360

;自分と敵の名前・HPデータ部分の書き込み
pos 30,200
color 255,0,0
mes "ENEMY: " + enemy_name
mes "HP " + enemy_hp

color 0,0,255
pos 300,200
mes "PLAYER: " + player_name
mes "HP " + player_hp

;ver 1.00からの変更点は、ボタンの横に各手の残り使用回数表示追加
color 0,0,0
pos 80,320
mes "残" + p_guu + "回"
pos 180,320
mes "残" + p_choki + "回"
pos 280,320
mes "残" + p_paa + "回"


;バトル終了判定
if enemy_hp < 1:goto *win:stop
if player_hp < 1:goto *lose:stop
stop

;グーチョキパーボタン押した際の行動、勝ち負けボタンはプログラムの最後の方
*guu
p_way = 0
p_guu -= 1
goto *enemy_turn
*choki
p_way = 2
p_choki -= 1
goto *enemy_turn
*paa
p_way = 5
p_paa -= 1
goto *enemy_turn

;敵の出す手の判断。
;石はグー、鋏はチョキ、紙はパー、デフォルト(偽データ)は略。
;いずれ敵の手処理は、別口で作ることになるだろう。
;敵が出した手は、自分の手の回数増加として計算完了
*enemy_turn
;ver 1.00からの変更点は、ボタンを押したときに一時的にボタン不可にするところ。
gosub *button_unable
switch enemy_number
case 0
e_way = 0
p_guu += 1
swbreak
case 1
e_way = 2
p_choki += 1
swbreak
case 2
e_way = 5
p_paa += 1
swbreak
default
e_way = p_way
swbreak
swend

;ver 1.00からの変更点は、文字消し(白)はサブルーチン化
gosub *screen_clearcolor
boxf 30,240,480,320

;互いの出した手に対しての文字表示
;ver 1.00からの変更点は、文字色や、プレイヤーの行動表示位置の移動、wait50の追加
pos 300,240
color 0,0,255
mes way(p_way) + "で攻撃!"
pos 30,240
color 255,0,0
mes way(e_way) + "で攻撃!"
wait 50
;判定、方針としては、まず引き分けなら先の行へ飛ばし、勝ち負けの判定。
;引き分け
;ver 1.00からの変更点は、文字色黒をここに追加
color 0,0,0
if p_way == e_way{
mes "双方とも攻撃に耐えた"
goto *learning_part
}
;プレイヤーの勝ち elseは負け
;プレイヤーが勝てば敵のHP減少、負ければ自分のHP現象、else負けにしたのは、文字が長くなるのが面倒くさいため。
if (((p_way == 0)&(e_way == 2))|((p_way == 2)&(e_way == 5))|((p_way == 5)&(e_way == 0))){
j_navi = player_name
enemy_hp -= 1
}
else{
j_navi = enemy_name
player_hp -= 1
}

mes j_navi + "の攻撃が通った!"

;敵が出した手を、自分の手として増加したことを表示
;ver 1.00からの変更点は、wait50の追加
*learning_part
wait 50
mes ""
mes enemy_name + "が繰り出した" + way(e_way) + "を吸収した!"

goto *action_part
stop

;勝ち負け結果
;勝った場合、ボタン使用不可、勝利の文字を表示、敵番号増加、敵データ読み出しへ戻る
;いずれ、全勝した時のエンディングやらを追加する予定。
;ver 1.00からの変更点は、文字の描画位置、色変更、ボタン使用不可のサブルーチン化、wait80に変更
*win
gosub *button_unable
wait 80
pos 330,320
color 0,0,255
mes "勝利"
enemy_number++
wait 80
goto *story_part
stop
;負けた場合、ボタン使用不可、敗北の文字を出してエンド、閉じる
;いずれ、負けた後はOPに戻る仕様にする
;ver 1.00からの変更点は、文字の描画位置、色変更、ボタン使用不可のサブルーチン化、wait80に変更
*lose
gosub *button_unable
wait 80
pos 330,320
color 255,0,0
mes "敗北"
wait
end

;ver 1.00からの変更点。サブルーチンの作成:一時ボタン使用不可(全ボタン)
*button_unable
objenable 0,0
objenable 1,0
objenable 2,0
objenable 3,0
objenable 4,0
return

;ver 1.00からの変更点。サブルーチンの作成:文字消し用(白)
*screen_clearcolor
color 255,255,255
return
PR

この記事にコメントする

NAME
TITLE
MAIL
URL
COMMENT
PASS

この記事へのトラックバック

この記事にトラックバックする:

PR

カテゴリー

最新記事

アーカイブ

プロフィール

HN:
マドノマグラ
性別:
非公開
職業:
趣味:
駄文書き
自己紹介:
ゲームを作ろうとしているうちに、言語学習に飽きていく。典型的なダメな人パターンに陥るアホな人

リンク

ブログ内検索

バーコード

RSS

忍者ブログ │ [PR]