フルーツ王子

フルーツ王子(シンプルアクションゲーム)のプログラムを公開します。

【ご注意】
・本プログラムの動作等に関する質問にはお答えできません。
・本プログラムの使用により、何らかの障害が発生した場合にも、当方は一切の責任を負いません。
・本プログラムの転載、二次配布を禁止します。

トップページ(ゲーム)に戻る

スポンサードリンク



↑制作の際、この本を参考にしました。

<body oncontextmenu='return false;'> <!-- Android端末で長押しした時に「画像を保存」等のメニューを表示させないための処理 -->
	
	<!-- 背景タイル -->
	<div id="background" style="position: absolute; left: 0px; top: 0px; width: 540; height: 540px; background-image: url(ground.jpg);">
	</div>
	
	<!-- フルーツ -->
	<div id="div_fruit0" style="position: absolute; left: -60px; top: -60px;">
		<img src="strawberry.gif" id="img_fruit0" style="width: 60px; height: 60px;">
	</div>
	<div id="div_fruit1" style="position: absolute; left: -60px; top: -60px;">
		<img src="orange.gif" id="img_fruit1" style="width: 60px; height: 60px;">
	</div>
	<div id="div_fruit2" style="position: absolute; left: -60px; top: -60px;">
		<img src="apple.gif" id="img_fruit2" style="width: 60px; height: 60px;">
	</div>
	<div id="div_fruit3" style="position: absolute; left: -60px; top: -60px;">
		<img src="pear.gif" id="img_fruit3" style="width: 60px; height: 60px;">
	</div>
	<div id="div_fruit4" style="position: absolute; left: -60px; top: -60px;">
		<img src="banana.gif" id="img_fruit4" style="width: 60px; height: 60px;">
	</div>
	<div id="div_fruit5" style="position: absolute; left: -60px; top: -60px;">
		<img src="grape.gif" id="img_fruit5" style="width: 60px; height: 60px;">
	</div>
	<div id="div_fruit6" style="position: absolute; left: -60px; top: -60px;">
		<img src="peach.gif" id="img_fruit6" style="width: 60px; height: 60px;">
	</div>
	<div id="div_fruit7" style="position: absolute; left: -60px; top: -60px;">
		<img src="pineapple.gif" id="img_fruit7" style="width: 60px; height: 60px;">
	</div>
	<div id="div_fruit8" style="position: absolute; left: -60px; top: -60px;">
		<img src="watermelon.gif" id="img_fruit8" style="width: 60px; height: 60px;">
	</div>
	<div id="div_fruit9" style="position: absolute; left: -60px; top: -60px;">
		<img src="melon.gif" id="img_fruit9" style="width: 60px; height: 60px;">
	</div>
	<div id="div_fruit10" style="position: absolute; left: -60px; top: -60px;">
		<img src="item0.gif" id="img_fruit10" style="width: 60px; height: 60px;">
	</div>
	<div id="div_fruit11" style="position: absolute; left: -60px; top: -60px;">
		<img src="item1.gif" id="img_fruit11" style="width: 60px; height: 60px;">
	</div>
	<div id="div_fruit12" style="position: absolute; left: -60px; top: -60px;">
		<img src="item2.gif" id="img_fruit12" style="width: 60px; height: 60px;">
	</div>
	<div id="div_fruit13" style="position: absolute; left: -60px; top: -60px;">
		<img src="item3.gif" id="img_fruit13" style="width: 60px; height: 60px;">
	</div>
	<div id="div_fruit14" style="position: absolute; left: -60px; top: -60px;">
		<img src="item4.gif" id="img_fruit14" style="width: 60px; height: 60px;">
	</div>
	<div id="div_fruit15" style="position: absolute; left: -60px; top: -60px;">
		<img src="apple.gif" id="img_fruit15" style="width: 60px; height: 60px;">
	</div>
	<div id="div_fruit16" style="position: absolute; left: -60px; top: -60px;">
		<img src="apple.gif" id="img_fruit16" style="width: 60px; height: 60px;">
	</div>
	<div id="div_fruit17" style="position: absolute; left: -60px; top: -60px;">
		<img src="apple.gif" id="img_fruit17" style="width: 60px; height: 60px;">
	</div>
	<div id="div_fruit18" style="position: absolute; left: -60px; top: -60px;">
		<img src="apple.gif" id="img_fruit18" style="width: 60px; height: 60px;">
	</div>
	<div id="div_fruit19" style="position: absolute; left: -60px; top: -60px;">
		<img src="apple.gif" id="img_fruit19" style="width: 60px; height: 60px;">
	</div>
	
	<!-- タコ -->
	<div id="div_octopus0" style="position: absolute; left: -60px; top: -60px;">
		<img src="octopus.gif" id="img_octopus0" style="width: 60px; height: 60px;">
	</div>
	<div id="div_octopus1" style="position: absolute; left: -60px; top: -60px;">
		<img src="octopus.gif" id="img_octopus1" style="width: 60px; height: 60px;">
	</div>
	<div id="div_octopus2" style="position: absolute; left: -60px; top: -60px;">
		<img src="octopus.gif" id="img_octopus2" style="width: 60px; height: 60px;">
	</div>
	<div id="div_octopus3" style="position: absolute; left: -60px; top: -60px;">
		<img src="octopus.gif" id="img_octopus3" style="width: 60px; height: 60px;">
	</div>
	<div id="div_octopus4" style="position: absolute; left: -60px; top: -60px;">
		<img src="octopus.gif" id="img_octopus4" style="width: 60px; height: 60px;">
	</div>
	<div id="div_octopus5" style="position: absolute; left: -60px; top: -60px;">
		<img src="octopus.gif" id="img_octopus5" style="width: 60px; height: 60px;">
	</div>
	<div id="div_octopus6" style="position: absolute; left: -60px; top: -60px;">
		<img src="octopus.gif" id="img_octopus6" style="width: 60px; height: 60px;">
	</div>
	<div id="div_octopus7" style="position: absolute; left: -60px; top: -60px;">
		<img src="octopus.gif" id="img_octopus7" style="width: 60px; height: 60px;">
	</div>
	<div id="div_octopus8" style="position: absolute; left: -60px; top: -60px;">
		<img src="octopus.gif" id="img_octopus8" style="width: 60px; height: 60px;">
	</div>
	<div id="div_octopus9" style="position: absolute; left: -60px; top: -60px;">
		<img src="octopus.gif" id="img_octopus9" style="width: 60px; height: 60px;">
	</div>
	<div id="div_octopus10" style="position: absolute; left: -60px; top: -60px;">
		<img src="octopus.gif" id="img_octopus10" style="width: 60px; height: 60px;">
	</div>
	<div id="div_octopus11" style="position: absolute; left: -60px; top: -60px;">
		<img src="octopus.gif" id="img_octopus11" style="width: 60px; height: 60px;">
	</div>
	<div id="div_octopus12" style="position: absolute; left: -60px; top: -60px;">
		<img src="octopus.gif" id="img_octopus12" style="width: 60px; height: 60px;">
	</div>
	<div id="div_octopus13" style="position: absolute; left: -60px; top: -60px;">
		<img src="octopus.gif" id="img_octopus13" style="width: 60px; height: 60px;">
	</div>
	<div id="div_octopus14" style="position: absolute; left: -60px; top: -60px;">
		<img src="octopus.gif" id="img_octopus14" style="width: 60px; height: 60px;">
	</div>
	<div id="div_octopus15" style="position: absolute; left: -60px; top: -60px;">
		<img src="octopus.gif" id="img_octopus15" style="width: 60px; height: 60px;">
	</div>
	<div id="div_octopus16" style="position: absolute; left: -60px; top: -60px;">
		<img src="octopus.gif" id="img_octopus16" style="width: 60px; height: 60px;">
	</div>
	<div id="div_octopus17" style="position: absolute; left: -60px; top: -60px;">
		<img src="octopus.gif" id="img_octopus17" style="width: 60px; height: 60px;">
	</div>
	<div id="div_octopus18" style="position: absolute; left: -60px; top: -60px;">
		<img src="octopus.gif" id="img_octopus18" style="width: 60px; height: 60px;">
	</div>
	<div id="div_octopus19" style="position: absolute; left: -60px; top: -60px;">
		<img src="item5.gif" id="img_octopus19" style="width: 60px; height: 60px;">
	</div>
	<div id="div_octopus20" style="position: absolute; left: -60px; top: -60px;">
		<img src="item4.gif" id="img_octopus20" style="width: 60px; height: 60px;">
	</div>
	<div id="div_octopus21" style="position: absolute; left: -60px; top: -60px;">
		<img src="item3.gif" id="img_octopus21" style="width: 60px; height: 60px;">
	</div>
	<div id="div_octopus22" style="position: absolute; left: -60px; top: -60px;">
		<img src="item2.gif" id="img_octopus22" style="width: 60px; height: 60px;">
	</div>
	<div id="div_octopus23" style="position: absolute; left: -60px; top: -60px;">
		<img src="ground_bright.jpg" id="img_octopus23" style="width: 60px; height: 60px;">
	</div>
	<div id="div_octopus24" style="position: absolute; left: -60px; top: -60px;">
		<img src="ground_dark.jpg" id="img_octopus24" style="width: 60px; height: 60px;">
	</div>
	<div id="div_octopus25" style="position: absolute; left: -60px; top: -60px;">
		<img src="king_right_flash.gif" id="img_octopus25" style="width: 60px; height: 60px;">
	</div>
	<div id="div_octopus26" style="position: absolute; left: -60px; top: -60px;">
		<img src="king_left_flash.gif" id="img_octopus26" style="width: 60px; height: 60px;">
	</div>
	<div id="div_octopus27" style="position: absolute; left: -60px; top: -60px;">
		<img src="king_left.gif" id="img_octopus27" style="width: 60px; height: 60px;">
	</div>
	<div id="div_octopus28" style="position: absolute; left: -60px; top: -60px;">
		<img src="bee_left.gif" id="img_octopus28" style="width: 60px; height: 60px;">
	</div>
	<div id="div_octopus29" style="position: absolute; left: -60px; top: -60px;">
		<img src="prince_left.gif" id="img_octopus29" style="width: 60px; height: 60px;">
	</div>

	<!-- キング -->
	<div id="div_king" style="position: absolute; left: -60px; top: -60px;">
		<img src="king_right.gif" id="img_king" style="width: 60px; height: 60px;">
	</div>	   
	
	<!-- アイテム -->
	<div id="div_item" style="position: absolute; left: -60px; top: -60px;">
		<img src="item1.gif" id="img_item" style="width: 60px; height: 60px;">
	</div>
	
	<!-- ビッグフルーツ -->
	<div id="div_bigfruit" style="position: absolute; left: -120px; top: -120px;">
		<img src="strawberry.gif" id="img_bigfruit" style="width: 120px; height: 120px;">
	</div>

	<!-- ハチ -->
	<div id="div_bee" style="position: absolute; left: -60px; top: -60px;">
		<img src="bee_right.gif" id="img_bee" style="width: 60px; height: 60px;">
	</div>	
	
	<!-- 王子 -->
	<div id="div_prince" style="position: absolute; left: -60px; top: -60px;">
		<img src="prince_right.gif" id="img_prince" style="width: 60px; height: 60px;">
	</div>

	<!-- 無敵リング -->
	<div id="div_muteki" style="position: absolute; left: -60px; top: -60px;">
		<img src="muteki.gif" id="img_muteki" style="width: 60px; height: 60px;">
	</div>

	<!-- スタート矢印 -->
	<div id="div_arrows" style="position: absolute; left: -60px; top: -60px; opacity: 0;">
		<img src="arrows.gif" id="img_arrows" style="width: 180px; height: 180px;">
	</div>
		
	<!-- フルーツ得点表示用 -->
	<div id="div_fruitscore" style="position: absolute; left: -180px; top: -60px; width: 180px; text-align: center;">
		<span id="fruitscore"></span>
	</div>

	<!-- ダメージ表示用 -->
	<div id="div_damage" style="position: absolute; left: -180px; top: -60px; width: 180px; text-align: center; color: red;">
		<span id="damage1"></span>
	</div>

	<!-- アイテム表示用 -->
	<div id="div_item_hyoji" style="position: absolute; left: -180px; top: -60px; width: 180px; text-align: center; color: blue;">
		<span id="item1"></span>
	</div>

	<!-- ビッグフルーツ得点表示用 -->
	<div id="div_bigfruitscore" style="position: absolute; left: -180px; top: -60px; width: 180px; text-align: center; font-size: 150%;">
		<span id="bigfruitscore"></span>
	</div>
	
	<!-- トップ画面表示用 -->
	<div id="div_title" style="position: absolute; left: 0px; top: 55px; width: 540px; text-align: center; opacity: 1;">
		<img src="title.gif" id="title" style="margin-bottom: 0px; width: 500px;"><br>
		<!--  -webkit-text-size-adjust: 100%; はiPhoneのテキストサイズ自動調整によるレイアウト崩れを防ぐもの -->
		<p style="line-height: 1.2; -webkit-text-size-adjust: 100%;"><span  id="title_contents">【 ゲームの遊び方 】<br>
		スペースキーまたは画面下の「START」ボタンでゲームスタート<br>
		ゲーム中は馬に乗った王子をカーソルキーで操作<br>
			タコやハチを避けながらフルーツを集めまくって得点を稼ごう!</span><br>
		<br>
			Copyright(C) 2016 <a href="//kunisan.jp/" target="_blank">KUNISAN.JP</a>.  All Rights Reserved.</p>
	</div>
		
	<!-- ゲームオーバー表示用 -->
	<div id="div_gameover" style="position: absolute; left: 0px; top: 229px; width: 540px; text-align: center; opacity: 0;">
		<img src="gameover.gif" id="gameover" style="width: 400px;">
	</div>
	
	<!-- スコア、ライフ表示 -->
	<div style="position: absolute; left: 10px; top: 540px;">
		BEST SCORE: <span id="text_highscore">0</span>
	</div>	
	<div style="position: absolute; left: 220px; top: 540px;">
		YOUR SCORE: <span id="text_score">0</span>
	</div>   
	<div style="position: absolute; left: 460px; top: 540px;">
		LIFE: <span id="text_princelife">0</span>
	</div>   
	
	<!-- カーソルボタン用 -->
	<div id="div_button_up" style="position: absolute; left: 90px; top: 565px;">
		<input type="image" src="button_up1.gif" id="button_up" style="width: 96px; height: 60px;"><!-- ontouchstart="upa();">-->
	</div>
	<div id="div_button_right" style="position: absolute; left: 206px; top: 575px;">
		<input type="image" src="button_right1.gif" id="button_right" style="width: 60px; height: 120px;">
	</div> 
	<div id="div_down_down" style="position: absolute; left: 90px; top: 645px;">
		<input type="image" src="button_down1.gif" id="button_down" style="width: 96px; height: 60px;">
	</div>	
	<div id="div_left_left" style="position: absolute; left: 10px; top: 575px;">
		<input type="image" src="button_left1.gif" id="button_left" style="width: 60px; height: 120px;">
	</div>  
	
	<!-- スタートボタン用 -->
	<div id="div_button_start" style="position: absolute; left: 470px; top: 645px;">
		<input type="image" src="button_start1.gif" id="button_start" style="width: 60px; height: 60px;" onmousedown="starta();" onmouseup="startb();">
	</div>

	<!-- オーディオボタン用 -->
	<div id="div_button_audio" style="position: absolute; left: 405px; top: 670px;">
		<input type="image" src="audio_on.gif" id="button_audio" style="width: 35px; height: 35px;" onclick="audio_change();">
	</div>

	<!-- 言語選択ボタン用 -->
	<div id="div_button_lang" style="position: absolute; left: 340px; top: 670px;">
		<input type="image" src="lang_jp.gif" id="button_lang" style="width: 35px; height: 35px;" onclick="lang_change();">
	</div>
		
	<script>
		//グローバル変数等初期設定
		var screenstatus = 0; //0-トップ画面,1-ゲーム画面,2-ゲームオーバー画面
		var prince_move = 0; //王子の進む方向 0-停止, 1-上, 2-右, 3-下, 4-左
		var prince_speed = 6; //王子の速度
		var prince_faster = 0; //王子の速度増フラグ
		var arrows_opacity = 0.8; //初期矢印の不透明度
		var muteki_timer = 0; //無敵タイマー
		var fruit_number = 0; //フルーツ表示番号(10になったら0にもどる)
		var fruit_timer = 0; //フルーツ用タイマー(ゼロでフルーツ追加)
		var fruit_freq = 40; //フルーツ頻度(数字が少ない程フルーツ多)
		var fruit_frenzy_timer = 0; //フルーツ祭りタイマー
		var fruit = []; //フルーツオブジェクト用配列
		var octopus_number = 0; //タコ表示番号(10になったら0にもどる)
		var octopus_timer = 200; //タコ用タイマー(ゼロでタコ追加)
		var octopus_multi = 1; //タコ更新頻度
		var octopus = []; //タコオブジェクト配列
		var bee_timer = 20; //ハチ用タイマー(ゼロでハチ出現)
		var bee = {life: 0}; //ハチオブジェクト
		var item_timer = 400; //アイテム用タイマー(ゼロでアイテム表示)
		var item = {life: 0}; //アイテムオブジェクト
		var king_timer = 200; //キング用タイマー(ゼロでアイテム表示)
		var king = {life: 0}; //キングオブジェクト
		var bigfruit_timer = 2500; //ビッグフルーツ用タイマー(ゼロでアイテム表示)
		var bigfruit_counter = 0; //ビッグフルーツ用カウンター
		var bigfruit_last = 0; //最後に取得したフルーツの種類
		var bigfruit = {life: 0}; //ビッグフルーツオブジェクト
		var fruit_score_hyoji = {life: 0}; //フルーツスコア表示用オブジェクト
		var damage_hyoji = {life: 0}; //ダメージ表示用オブジェクト
		var item_hyoji = {life: 0}; //アイテム表示用オブジェクト
		var bigfruit_score_hyoji = {life: 0}; //ビッグフルーツスコア表示用オブジェクト
		var ground_map = []; //フルーツ・タコ配置マップ
		var fruit_type = ['strawberry','orange','apple','pear','banana','grape','peach','pineapple','watermelon','melon']; //フルーツの種類
		var fruit_life = [300,280,250,200,180,150,100,75,50,30]; //各フルーツのライフ
		var fruit_score = [100,200,300,400,500,700,1000,1500,2000,5000]; //各フルーツの得点 
		var highscore = 0; //ハイスコア
		var score = 0; //スコア
		var counter = 0; //カウンター(これが増えると出てくるフルーツの種類が増える)
		var combo_timer = 0; //コンボ用タイマー
		var combo = 0; //コンボ用倍率
		var combo_calc = 1; //コンボ計算倍率
		var combo_hyoji = ''; //コンボ表示用
		var audio_files = ['bgm.mp3',,,,,,,,,,'koka_fruit.wav','koka_fruit.wav','koka_fruit.wav','koka_crash.wav','koka_item.wav','koka_muteki_eat.wav','koka_muteki_eat.wav','koka_muteki_end.wav','koka_melon.wav','koka_bound.wav','koka_bee.wav','koka_beeget.wav','koka_bee_crash.wav','combo2.wav','combo3.wav','combo4.wav','combo5.wav','combo6.wav','combo7.wav','combo8.wav','combo9.wav','combo10.wav','combo10.wav','combo10.wav','koka_king.wav','koka_kingflash.wav','koka_kingcrash.wav','koka_bigfruit.wav']; //オーディオファイル名一覧(0-BGM,10~12-フルーツゲット,13-タコ衝突,14-アイテムゲット,15~16-無敵でタコ衝突,17-無敵終了,18-メロンゲット,19-王子壁反転,20-ハチ出現,21-無敵でハチ衝突,22-ハチ衝突,23~33-コンボ(31-33はx10コンボ用),34-キング登場,35-キングフラッシュ,36-キング衝突,37-ビッグフルーツ出現)
		var audio = []; //オーディオ用配列
		for (i=0; i<audio_files.length; i++){ //全体の音量調整
			audio[i] = new Audio(audio_files[i]);
			audio[i].volume = 0.3;
		}
		for (i=23; i<=33; i++){ //コンボ時のドレミ音やや大きく調整
			audio[i] = new Audio(audio_files[i]);
			audio[i].volume = 0.65;
		}
		audio[19].volume = 0.25; //王子の壁反転音やや小さく調整
		audio[34].volume = 0.5; //キング登場音やや大きく
		audio[35].volume = 0.5; //キングフラッシュ音やや大きく調整
		audio[36].volume = 0.5; //キング衝突音やや大きく
		var fruit_sound = 0; //フルーツゲット用サウンド順番
		var comboten_sound = 0; //コンボx10用サウンド順番
		var muteki_tako_sound = 0; //無敵タコ用サウンド順番
		var audio_status = 1; //オーディオオン・オフ(0-オフ, 1-オン)
		var lang_status = 0; //言語選択(0-日本語, 1-英語)
		
		var timerId; //ゲームパッド用タイマーID
		
		var srch1 = document.location.search; //クエリー取得
		srch1 = srch1.replace(/\?/i,""); // ?を消去
		var srch2 = srch1.split("&"); // 配列に分割する
		var vl = srch2[0].replace(/LANG\=/i,""); //値のみ取得
		if (vl == "en") {
			lang_change();
		}

		//トップ画面 {
		function top_title() {
			screenstatus = 0;
			document.getElementById('div_title').style.opacity = 1;
			document.getElementById('div_gameover').style.opacity = 0;
			for (i=0; i<=19; i++){ //フルーツ初期設定&画面クリア
				fruit[i] = {life: 0};
				document.getElementById('div_fruit'+i).style.opacity = 0;
			}
			for (i=0; i<=29; i++){ //タコライフ初期設定&画面クリア
				octopus[i] = {life: 0};
				document.getElementById('div_octopus'+i).style.opacity = 0;
			}
			document.getElementById('div_bee').style.opacity = 0; //ハチ表示クリア
			bee.life = 0;			
			document.getElementById('div_item').style.opacity = 0; //アイテム表示クリア
			item.life = 0;
			document.getElementById('div_king').style.opacity = 0; //キング表示クリア
			king.life = 0;
			document.getElementById('div_bigfruit').style.opacity = 0; //ビッグフルーツ表示クリア
			bigfruit.life = 0;
			document.getElementById('div_muteki').style.opacity = 0; //無敵リングクリア
			document.getElementById('div_arrows').style.opacity = 0; //初期矢印クリア
			document.getElementById('background').style.backgroundImage = 'url(ground.jpg)'; //床初期化
			document.getElementById('div_title').style.left = 0; //タイトル
			document.getElementById('div_google_ads').style.left = 36; //Google広告
		
			//ゲームパッドのチェックを定期的に実行
			clearInterval(timerId); //タイマークリア
			timerId = setInterval(gamepad_check,50);
		}
		 
		//ゲーム開始設定
		function init() {
			screenstatus = 1; //0-トップ画面,1-ゲーム画面,2-ゲームオーバー画面
			prince_move = 0; //王子の進む方向 0-停止, 1-上, 2-右, 3-下, 4-左
			prince_speed = 6; //王子の速度
			prince_faster = 0; //王子の速度増フラグ
			muteki_timer = 0; //無敵タイマー
			arrows_opacity = 0.8; //初期矢印の不透明度
			fruit_number = 0; //フルーツ表示番号(10になったら0にもどる)
			fruit_timer = 0; //フルーツ用タイマー(ゼロでフルーツ追加)
			fruit_frenzy_timer = 0; //フルーツ祭りタイマー
			fruit_freq = 40; //フルーツ頻度(数字が少ない程フルーツ多)
			octopus_number = 0; //タコ表示番号(10になったら0にもどる)
			octopus_timer = 200; //タコ用タイマー(ゼロでタコ追加)
			octopus_multi = 1; //タコ更新頻度
			bee_timer = 1000; //ハチ用タイマー(ゼロでハチ出現)
			item_timer = 400; //アイテム用タイマー(ゼロでアイテム表示)
			king_timer = 4500; //キング用タイマー(ゼロでキング出現)
			bigfruit_timer = 2500; //ビッグフルーツ用タイマー(ゼロでアイテム表示)
			bigfruit_counter = 0; //ビッグフルーツ用カウンター
			bigfruit_last = 0; //最後に取得したフルーツの種類		   
			for (i=0; i<=80; i++){ //フルーツ・タコ配置マップクリア
				ground_map[i] = '';
			}
			fruit_score_hyoji = {life: 0}; //フルーツスコア表示用オブジェクト
			damage_hyoji = {life: 0}; //ダメージ表示用オブジェクト
			item_hyoji = {life: 0}; //アイテム表示用オブジェクト
			bigfruit_score_hyoji = {life: 0}; //ビッグフルーツスコア表示用オブジェクト
			score = 0; //スコア
			counter = 0; //カウンター(これが増えると出てくるフルーツの種類が増える)
			combo_timer = 0; //コンボ用タイマー
			combo = 0; //コンボ用倍率
			combo_calc = 1; //コンボ計算倍率
			combo_hyoji = ''; //コンボ表示用
			document.getElementById('div_title').style.opacity = 0;
			prince = new PrinceObj(document.getElementById('div_prince'),240,240); //王子オブジェクトの作成
			prince.leftright(2); //王子右向きでスタート
			document.getElementById('div_arrows').style.opacity = 0.8; //初期矢印
			document.getElementById('div_arrows').style.left = 180;
			document.getElementById('div_arrows').style.top = 180;
			document.getElementById('div_title').style.left = -540; //タイトル
			if (audio_status == 1) {
				audio[0].play(); //BGM演奏
			}
			audio[0].loop = true;
			fruit_sound = 0; //フルーツゲット用サウンド順番
			comboten_sound = 0; //コンボx10用サウンド順番
			
			timer_main();
		}
		
		//メインループ
		function timer_main() {
			prince.movement(prince_move); //王子の動作
			counter += 1; //(主)カウンター増
			fruit_timer -= 1; //フルーツタイマー減
			octopus_timer -= 1; //タコタイマー減
			bee_timer -= 1;
			item_timer -= 1; //アイテムタイマー減
			king_timer -= 1; //キングタイマー減
			bigfruit_timer -= 1; //ビッグフルーツタイマー減
			if (combo_timer > 0) {
				combo_timer -= 1; //コンボタイマー減
			}
			if ((fruit_timer <= 0)&&(fruit[fruit_number].life <= 0)) { //フルーツタイマーがゼロ以下でオブジェクトが存在しない場合には、フルーツオブジェクトを作成
				fruit[fruit_number] = new FruitObj(document.getElementById('div_fruit'+fruit_number),document.getElementById('img_fruit'+fruit_number)); //フルーツオブジェクトの作成				
			}
			if ((fruit_timer <= 0)&&(fruit[fruit_number].life > 0)) { //フルーツタイマーがゼロ以下でオブジェクトが存在する場合には、フルーツ番号を1つ増やす
				fruit_number += 1; //フルーツ番号+1
				if (fruit_number > 19) {
					fruit_number = 0;
				}			
			}
			
			if ((octopus_timer <= 0)&&(octopus[octopus_number].life <= 0)) { //タコタイマーがゼロ以下でオブジェクトが存在しない場合には、タコオブジェクトを作成
				octopus[octopus_number] = new OctopusObj(document.getElementById('div_octopus'+octopus_number),document.getElementById('img_octopus'+octopus_number)); //タコオブジェクトの作成
			}
			
			if ((bee_timer <= 0)&&(bee.life <= 0)) { //ハチタイマーがゼロ以下でオブジェクトが存在しない場合には、ハチオブジェクトを作成
				bee = new BeeObj(document.getElementById('div_bee'),document.getElementById('img_bee')); //ハチオブジェクトの作成				
			}
			
			if ((item_timer <= 0)&&(item.life <= 0)) { //アイテムタイマーがゼロ以下でオブジェクトが存在しない場合には、アイテムオブジェクトを作成
				item = new ItemObj(document.getElementById('div_item'),document.getElementById('img_item')); //アイテムオブジェクトの作成
			}
			
			if ((king_timer <= 0)&&(king.life <= 0)) { //キングタイマーがゼロ以下でオブジェクトが存在しない場合には、キングオブジェクトを作成
				king = new KingObj(document.getElementById('div_king'),document.getElementById('img_king')); //キングオブジェクトの作成
			}
			
			if ((bigfruit_timer <= 0)&&(bigfruit.life <= 0)) { //ビッグフルーツタイマーがゼロ以下でオブジェクトが存在しない場合には、ビッグフルーツオブジェクトを作成
				bigfruit = new BigFruitObj(document.getElementById('div_bigfruit'),document.getElementById('img_bigfruit')); //ビッグフルーツオブジェクトの作成				
			}
			
			for (i=0; i<=19; i++) { //フルーツメイン処理
				if (fruit[i].life > 0) { 
					if ((fruit[i].opacity > 0)&&(fruit[i].opacity < 1)&&(fruit[i].life >= 10)) { //フルーツ出現時の不透明処理
						fruit[i].higherOpacity(); 
					}
					if ((Math.pow((fruit[i].x - prince.x),2)+ Math.pow((fruit[i].y - prince.y),2) < 3600)) { //フルーツゲット時
						combofunc(); //コンボ判定処理
						fruit_score_hyoji = new FruitScoreObj(document.getElementById('div_fruitscore'),document.getElementById('fruitscore'),fruit_score[fruit[i].type] + combo_hyoji,fruit[i].x,fruit[i].y); //フルーツスコアオブジェクトの作成
						fruit[i].fruitGet();
						ground_map[fruit.y/60*9 + fruit.x/60] = ''; //マップから消去
						combo_timer = 11; //コンボタイマーのセット
						if (fruit[i].type < 9){
							audio[10+fruit_sound].play(); //効果音
							fruit_sound += 1; //フルーツゲット用効果音多重でも対応
							if (fruit_sound >= 3) {
								fruit_sound = 0;
							}
						} else {
							audio[18].play(); //効果音
						}
						if ((bigfruit_last == fruit[i].type)&&(counter > 2000)) { //ビッグフルーツ用処理(カウンターが一定の数値を超えるまでは出さない)
							bigfruit_counter += 1;
							if (bigfruit_counter >= 3) {
								bigfruit_timer = 0;
								bigfruit_counter = 0;
							}
						} else {
							bigfruit_counter = 1;
							bigfruit_last = fruit[i].type;
						}
					}
					fruit[i].lifeDecrease();
					if (fruit[i].life <= 0) { //フルーツのライフが無くなった場合
						ground_map[fruit[i].y/60*9 + fruit[i].x/60] = ''; //マップから消去
					}
				}
			}
			
			for (i=0; i<=29; i++) { //タコメイン処理
				if (octopus[i].life > 0) { 
					if ((octopus[i].opacity > 0)&&(octopus[i].opacity < 1)&&(octopus[i].life >= 10)) { //タコ出現時の不透明処理
						octopus[i].higherOpacity(); 
					}
					if ((Math.pow((octopus[i].x - prince.x),2)+ Math.pow((octopus[i].y - prince.y),2) < 3600)) { //タコ衝突時(ダメージ)
						if (muteki_timer <= 0) {
							damage_hyoji = new DamageHyojiObj(document.getElementById('div_damage'),document.getElementById('damage1'),'LIFE -1',octopus[i].x,octopus[i].y); //ダメージ表示オブジェクトの作成
							if (prince.life > 1) { //王子のライフが1のみの場合には反転させない
								switch (prince.direction){ //王子反転
									case 1: prince.direction = 3; //上→下
										prince_move = 3;
										break;
									case 2: prince.direction = 4; //右→左
										prince_move = 4;
										prince.leftright(1);
										break;
									case 3: prince.direction = 1; //下→上
										prince_move = 1;
										break;
									case 4: prince.direction = 2; //左→右
										prince_move = 2;
										prince.leftright(2);
										break;
								}
							}
							audio[13].play(); //効果音
						} else {
							combofunc(); //コンボ判定処理
							fruit_score_hyoji = new FruitScoreObj(document.getElementById('div_fruitscore'),document.getElementById('fruitscore'),'10'+combo_hyoji,octopus[i].x,octopus[i].y); //フルーツスコアオブジェクトの作成
							combo_timer = 11; //コンボタイマーのセット
							audio[15+muteki_tako_sound].play(); //効果音
							muteki_tako_sound += 1;
							if (muteki_tako_sound >=2) {
								muteki_tako_sound = 0;
							}
						}
						octopus[i].crash();
						ground_map[octopus[i].y/60*9 + octopus[i].x/60] = ''; //マップから消去
						
					}
					octopus[i].lifeDecrease();
					if (octopus[i].life <= 0) { //タコのライフが無くなった場合
						ground_map[octopus[i].y/60*9 + octopus[i].x/60] = ''; //マップから消去
					}
				}
			}
			
			//ハチメイン処理
			if (bee.life > 0) {
				if ((bee.opacity > 0)&&(bee.opacity < 1)&&(bee.life >= 10)) { //ハチ出現時の不透明処理
					bee.higherOpacity(); 
				}
				bee.move();
				if ((Math.pow((bee.x - prince.x),2)+ Math.pow((bee.y - prince.y),2) < 2500)) { //ハチ衝突時(ダメージ)
					if (muteki_timer <= 0) {
						damage_hyoji = new DamageHyojiObj(document.getElementById('div_damage'),document.getElementById('damage1'),'LIFE -1',bee.x,bee.y); //ダメージ表示オブジェクトの作成
						if (prince.life > 1) { //王子のライフが1のみの場合には反転させない	
							switch (prince.direction){ //王子反転
								case 1: prince.direction = 3; //上→下
									prince_move = 3;
									break;
								case 2: prince.direction = 4; //右→左
									prince_move = 4;
									prince.leftright(1);
									break;
								case 3: prince.direction = 1; //下→上
									prince_move = 1;
									break;
								case 4: prince.direction = 2; //左→右
									prince_move = 2;
									prince.leftright(2);
									break;
							}
						}
						audio[22].play(); //効果音
					} else {
						combofunc(); //コンボ判定処理
						fruit_score_hyoji = new FruitScoreObj(document.getElementById('div_fruitscore'),document.getElementById('fruitscore'),'3000'+combo_hyoji,bee.x,bee.y); //フルーツスコアオブジェクトの作成
						combo_timer = 11; //コンボタイマーのセット
						audio[21].play(); //効果音
						muteki_tako_sound += 1;
						if (muteki_tako_sound >=2) {
							muteki_tako_sound = 0;
						}
					}
					bee.crash();
						
				}
				bee.lifeDecrease();
			}

			//アイテムメイン処理
			if (item.life > 0) { 
				if ((item.opacity > 0)&&(item.opacity < 1)&&(item.life >= 10)) { //アイテム出現時の不透明処理
					item.higherOpacity(); 
				}
				if ((Math.pow((item.x - prince.x),2)+ Math.pow((item.y - prince.y),2) < 3600)) { //アイテム時
					switch(item.type) {
						case 0: //スピードアップ
							item_hyoji = new ItemHyojiObj(document.getElementById('div_item_hyoji'),document.getElementById('item1'),'Faster!',item.x,item.y); //アイテム表示オブジェクトの作成
							if (prince_speed < 30) { //速度増フラグを立てる
								prince_faster = 1;
							}
							break;
						case 1: //フルーツ頻度増
							item_hyoji = new ItemHyojiObj(document.getElementById('div_item_hyoji'),document.getElementById('item1'),'More Fruits!',item.x,item.y); //アイテム表示オブジェクトの作成
							fruit_freq = fruit_freq / 1.6;
							if (fruit_freq < 5) { //頻度を上げる
								fruit_freq = 5;
							}
							break;
						case 2: //フルーツ祭り
							item_hyoji = new ItemHyojiObj(document.getElementById('div_item_hyoji'),document.getElementById('item1'),'Fruits Frenzy!',item.x,item.y); //アイテム表示オブジェクトの作成
							fruit_frenzy_timer = 20;
							fruit_timer = 0;
							break;
						case 3: //無敵
							item_hyoji = new ItemHyojiObj(document.getElementById('div_item_hyoji'),document.getElementById('item1'),'Power Shield!',item.x,item.y); //アイテム表示オブジェクトの作成
							muteki_timer = 120;
							break;
						case 4: //1UP
							item_hyoji = new ItemHyojiObj(document.getElementById('div_item_hyoji'),document.getElementById('item1'),'1UP!',item.x,item.y); //アイテム表示オブジェクトの作成
							prince.life += 1;
							break;
					}
					item.itemGet();
					ground_map[item.y/60*9 + item.x/60] = ''; //マップから消去
					audio[14].play(); //効果音
				}
				item.lifeDecrease();
				if (item.life <= 0) { //フルーツのライフが無くなった場合
					ground_map[item.y/60*9 + item.x/60] = ''; //マップから消去
				}
			}
  
			//キングメイン処理
			if (king.life > 0) { 
				if ((king.opacity > 0)&&(king.opacity < 1)&&(king.life >= 10)) { //キング出現時の不透明処理
					king.higherOpacity(); 
				}
				if ((Math.pow((king.x - prince.x),2)+ Math.pow((king.y - prince.y),2) < 3600)) { //キング衝突時
					king.crash();
					ground_map[king.y/60*9 + king.x/60] = ''; //マップから消去
					audio[34].pause(); //キング登場効果音停止
					try{ //IEエラー回避処理用
						audio[34].currentTime = 0;
					} catch(e){
					}
					audio[36].play(); //効果音
				}
				king.lifeDecrease();
				if (king.life <= 0) { //フルーツのライフが無くなった場合
					ground_map[king.y/60*9 + king.x/60] = ''; //マップから消去
				}
			}

			//ビッグフルーツメイン処理
			if (bigfruit.life > 0) {
				if ((bigfruit.opacity > 0)&&(bigfruit.opacity < 1)&&(bigfruit.life >= 10)) { //ビッグフルーツ出現時の不透明処理
					bigfruit.higherOpacity(); 
				}
				bigfruit.move();
				if ((Math.pow((bigfruit.x - prince.x),2)+ Math.pow((bigfruit.y - prince.y),2) < 8100)) { //ビッグフルーツゲット時
					combofunc(); //コンボ判定処理
					bigfruit_score_hyoji = new BigFruitScoreObj(document.getElementById('div_bigfruitscore'),document.getElementById('bigfruitscore'),(fruit_score[bigfruit.type]*10) + combo_hyoji,bigfruit.x,bigfruit.y); //フルーツスコアオブジェクトの作成
					combo_timer = 11; //コンボタイマーのセット
					audio[18].play(); //効果音
					bigfruit.fruitGet();
				}
				bigfruit.lifeDecrease();
			}
			
			if (fruit_score_hyoji.life > 0) { //フルーツゲット後のスコア表示処理
				fruit_score_hyoji.lifeDecrease();
			}
			if (damage_hyoji.life > 0) { //ダメージ表示処理
				damage_hyoji.lifeDecrease();
			}
			if (item_hyoji.life > 0) { //アイテム表示処理
				item_hyoji.lifeDecrease();
			}
			if (bigfruit_score_hyoji.life > 0) { //ビッグフルーツゲット後のスコア表示処理
				bigfruit_score_hyoji.lifeDecrease();
			}  
			
			//スコア、ライフ表示処理
			document.getElementById('text_score').textContent = score;
			if (score > highscore) {
				highscore = score;
					document.getElementById('text_highscore').textContent = highscore;
			}
			document.getElementById('text_princelife').textContent = prince.life;			
			
			if (prince.life > 0) {
				setTimeout(timer_main, 100); //王子のライフが0でなければリピート
			} else {
				setTimeout(gameover,100); //王子のライフが0ならゲームオーバー
			}
		}
		
		//ゲームオーバー処理
		function gameover() {
			screenstatus = 2;			
			audio[0].pause(); //BGM演奏停止
			try{ //IEエラー回避処理用
				audio[0].currentTime = 0;
			} catch(e){
			}

			if (fruit_score_hyoji.life > 0) { //フルーツゲット後のスコア表示処理
				fruit_score_hyoji.lifeDecrease();
			}
			if (damage_hyoji.life > 0) { //ダメージ表示処理
				damage_hyoji.lifeDecrease();
			}
			if (item_hyoji.life > 0) { //アイテム表示処理
				item_hyoji.lifeDecrease();
			}
			if (bigfruit_score_hyoji.life > 0) { //ビッグフルーツゲット後のスコア表示処理
				bigfruit_score_hyoji.lifeDecrease();
			}  
			if (prince.opacity > 0) {
				prince.opacity -= 0.05; //王子の不透明度減少
				prince.gameover();
				setTimeout(gameover,100);
			} else {
				document.getElementById('div_gameover').style.opacity = 1;
				setTimeout(top_title,4000);
			}
		}
		
		//王子コンストラクタ
		function PrinceObj(_elem,_xpos,_ypos){ 
			this.elem = _elem; //王子表示エレメント
			this.x = _xpos; //王子X座標
			this.y = _ypos; //王子Y座標
			//this.leftright = 2; //王子向き 1-左, 2-右
			this.direction = 0; //王子の進む方向 0-停止, 1-上, 2-右, 3-下, 4-左
			this.timer = 100; //スタート時のタイマー(0で強制的に右に移動)
			this.opacity = 1; //不透明度
			this.life = 3; //ライフ
			this.elem.style.left = this.x + 'px';
			this.elem.style.top = this.y + 'px';
			this.elem.style.opacity = this.opacity;
			
			this.movement = function (_direction){ //王子移動
					if ((this.x % 60 == 0)&&(this.y % 60 == 0)){
					this.direction = _direction;
					if (prince_faster == 1) { //スピード増フラグありの場合
						prince_faster = 0;
						if (prince_speed == 6) {
							prince_speed = 10;
						} else if (prince_speed == 10) {
							prince_speed = 12;
						} else if (prince_speed == 12) {
							prince_speed = 15;
						} else if (prince_speed == 15) {
							prince_speed = 20;
						} else if (prince_speed == 20) {
							prince_speed = 30;
						}
					}
				}
					switch (this.direction){ 
						case 0: this.timer -= 1; //スタート時移動せず
							if (this.timer < 16) { //スタート遅い場合、矢印徐々に透明に
								document.getElementById('div_arrows').style.opacity = this.timer / 20; //初期矢印
							}
							if (this.timer == 0) { //タイマー0で強制スタート
								prince_move = 2;
								this.direction = 2;
								document.getElementById('div_arrows').style.opacity = 0; //初期矢印透明
							}
							break;
						case 1: this.y -= prince_speed; //上移動
							if (this.y < 0) {
								this.y = 0;
								prince_move = 3;
								this.direction = 3;
								audio[19].play(); //効果音
							}				  
							break;
						case 2: this.x += prince_speed; //右移動
							if (this.x > 480) {
								this.x = 480;
								prince_move = 4;
								this.direction = 4;
								this.leftright(1);
								audio[19].play(); //効果音
							}									 
							break;
						case 3: this.y += prince_speed; //下移動 
							if (this.y > 480) {
								this.y = 480;
								prince_move = 1;
								this.direction = 1;
								audio[19].play(); //効果音
							}		
							break;
						case 4: this.x -= prince_speed; //左移動
							if (this.x < 0) {
								this.x = 0;
								prince_move = 2;
								this.direction = 2;
								this.leftright(2);
								audio[19].play(); //効果音
							}	 
							break;					   
					}
				this.elem.style.left = this.x + 'px';
				this.elem.style.top = this.y + 'px';
				if (muteki_timer > 0) { //無敵の処理
					muteki_timer -= 1;
					document.getElementById('div_muteki').style.left = this.x;
					document.getElementById('div_muteki').style.top = this.y;
					if (muteki_timer == 16) {
						audio[17].play(); //効果音
					}
					if (muteki_timer < 16) {
						document.getElementById('div_muteki').style.opacity = muteki_timer / 20;						
					} else {
						document.getElementById('div_muteki').style.opacity = 0.8;
					}
				} else {
					document.getElementById('div_muteki').style.opacity = 0; //無敵リングクリア
				}
			}
			
			this.leftright = function (_muki){ //王子の左右向き変更
				switch (_muki) {
					 case 1: document.getElementById("img_prince").src = 'prince_left.gif'; break; //左向き
					 case 2: document.getElementById("img_prince").src = 'prince_right.gif'; break; //右向き
				}
		
			}
			this.gameover = function () { //ゲームオーバー処理
				this.elem.style.opacity = this.opacity; //不透明処理 
			}
		}

		//フルーツコンストラクタ
		function FruitObj(_elem,_img){ 
			this.elem = _elem; //フルーツ表示エレメント
			this.img = _img; //フルーツ画像エレメント
			maxrnd = counter / 300 + 1; //乱数の最大値
			if (maxrnd > 9.5) {
				maxrnd = 9.5;
			}
			this.type = Math.floor(Math.random()*maxrnd); //フルーツの種類
			this.x = Math.floor(Math.random()*9)*60; //フルーツX座標
			this.y = Math.floor(Math.random()*9)*60; //フルーツY座標
			this.life = 0; //エラー回避のライフ設定(出現可否判定前は0にしておく)
			if ((!ground_map[this.y/60*9 + this.x/60] > 0)&&(Math.pow((this.x - prince.x),2)+ Math.pow((this.y - prince.y),2) > 8100)) { //王子や他のフルーツやタコと重なっていなければフルーツオブジェクト
				ground_map[this.y/60*9 + this.x/60] = this.type + 1; //マップ埋め込み
				this.opacity = 0.1; //不透明度
				this.life = fruit_life[this.type]; //ライフ
				this.img.src = fruit_type[this.type] + '.gif'; //表示されるフルーツ
				this.elem.style.left = this.x + 'px';
				this.elem.style.top = this.y + 'px';
				this.elem.style.opacity = this.opacity;
				fruit_timer = fruit_freq; //フルーツタイマーリセット
				if (fruit_frenzy_timer > 0){ //フルーツ祭りオンの処理
					fruit_timer = 0;
					fruit_frenzy_timer -= 1;
				}
				fruit_number += 1; //フルーツ番号+1
				if (fruit_number > 19) {
					fruit_number = 0;
				}
			} else { //王子や他のフルーツと重なった場合には、タイマーを再設定
				this.x = -60;
				this.y = -60;				
				fruit_timer = 2; 
			}
				
			this.higherOpacity = function () { //不透明度増やす
				this.opacity += 0.1;
				if (this.opacity > 1) {
					this.opacity = 1;
				}
				this.elem.style.opacity = this.opacity;
			}
			
			this.lifeDecrease = function () { //ライフを減らす(消失処理)
				this.life -= 1;
				if ((this.life < 10)&&(this.life >= 0)){
					this.opacity = this.life / 10;
					this.elem.style.opacity = this.opacity;
				} 
			}
			this.fruitGet = function () { //フルーツゲット時処理
				this.life = 0;
				score += fruit_score[this.type] * combo_calc;
				this.elem.style.opacity = 0;
			}
		}

		//タココンストラクタ
		function OctopusObj(_elem,_img){ 
			this.elem = _elem; //タコ表示エレメント
			this.img = _img; //タコ画像エレメント
			this.x = Math.floor(Math.random()*9)*60; //タコX座標
			this.y = Math.floor(Math.random()*9)*60; //タコY座標
			this.life = 0; //エラー回避のライフ設定(出現可否判定前は0にしておく)
			if ((!ground_map[this.y/60*9 + this.x/60] > 0)&&(Math.pow((this.x - prince.x),2)+ Math.pow((this.y - prince.y),2) > 10000)) { //王子や他のフルーツやタコと重なっていなければタコオブジェクト
				ground_map[this.y/60*9 + this.x/60] = 50; //マップ埋め込み
				this.opacity = 0.1; //不透明度
				this.life = Math.floor(3000 / octopus_multi) + octopus_multi; //ライフ(速度が早くなる場合に全体の数が減らないようにライフを伸ばす)
				this.img.src = 'octopus.gif'; //タコ画像ファイル
				this.elem.style.left = this.x + 'px';
				this.elem.style.top = this.y + 'px';
				this.elem.style.opacity = this.opacity;
				octopus_timer = 100 / octopus_multi; //タコタイマーリセット
				octopus_number += 1; //タコ番号+1
				if (octopus_number > 29) {
					octopus_number = 0;
					//octopus_multi = octopus_multi + 2; //タコ頻度増やす
					//if (octopus_multi > 8) {
					//	octopus_multi = 8;
					//}
				}
			} else { //王子や他のフルーツと重なった場合には、タイマーを再設定
				this.x = -60;
				this.y = -60;				
				octopus_timer = 2; 
			}
				
			this.higherOpacity = function () { //不透明度増やす
				this.opacity += 0.1;
				if (this.opacity > 1) {
					this.opacity = 1;
				}
				this.elem.style.opacity = this.opacity;
			}
			
			this.lifeDecrease = function () { //ライフを減らす(消失処理)
				this.life -= 1;
				if ((this.life < 10)&&(this.life >= 0)){
					this.opacity = this.life / 10;
					this.elem.style.opacity = this.opacity;
				} 
			}

			this.crash = function () { //衝突(ダメージ)時処理
				this.life = 0;
				if (muteki_timer <= 0) { //無敵でない場合には王子ライフ-1
					prince.life -= 1;
				} else {
					score += 10 * combo_calc;
				}
				this.elem.style.opacity = 0;
			}
		}

		//ハチコンストラクタ
		function BeeObj(_elem,_img){ 
			this.elem = _elem; //ハチ表示エレメント
			this.img = _img; //ハチ画像エレメント
			if (prince.x < 240) { //ハチX座標
				this.x = 480;
				this.img.src = 'bee_left.gif'; //ハチ画像ファイル
			} else {
				this.x = 0;
				this.img.src = 'bee_right.gif'; //ハチ画像ファイル
			}
			this.y = Math.floor(Math.random()*9)*60; //ハチY座標
			this.dx = 0; //ハチX移動量
			this.dy = 0; //ハチY移動量
			if (counter < 1800) { //ハチ加速度・速度調整
				this.delta = 0.3; 
				this.speed = 3;
			} else if (counter < 7000) {
				this.delta = 0.4;
				this.speed = 5;
			} else {
				this.delta = 0.5;
				this.speed = 7;				
			}

			this.life = 0; //エラー回避のライフ設定(出現可否判定前は0にしておく)
			if ((!ground_map[this.y/60*9 + this.x/60] > 0)&&(Math.pow((this.x - prince.x),2)+ Math.pow((this.y - prince.y),2) > 8100)&&(muteki_timer <= 0)) { //王子や他のフルーツやタコと重なっておらず無敵タイマー作動中でなければハチオブジェクト
				this.opacity = 0.1; //不透明度
				this.life = 280; //ライフ
				this.elem.style.left = this.x + 'px';
				this.elem.style.top = this.y + 'px';
				this.elem.style.opacity = this.opacity;
				audio[20].play(); //効果音
				bee_timer = 900 + Math.floor(Math.random()*9)*100;; //ハチタイマーリセット
			} else {
				this.x = -60;
				this.y = -60;				
				bee_timer = 2;				
			}
				
			this.higherOpacity = function () { //不透明度増やす
				this.opacity += 0.1;
				if (this.opacity > 1) {
					this.opacity = 1;
				}
				this.elem.style.opacity = this.opacity;
			}
			
			this.move = function () { //ハチ移動
				this.dx = (this.x > prince.x)?this.dx-this.delta:this.dx+this.delta; //X移動量決定
				this.dy = (this.y > prince.y)?this.dy-this.delta:this.dy+this.delta; //Y移動量決定
				if (this.dx > this.speed) {
					this.dx = this.speed;
				}
				if (this.dx < -this.speed) {
					this.dx = -this.speed;
				}
				if (this.dy > this.speed) {
					this.dy = this.speed;
				}
				if (this.dy < -this.speed) {
					this.dy = -this.speed;
				}
				if (muteki_timer > 0) { //無敵の状態ではハチは静止
					this.dx = 0;
					this.dy = 0;
				}
				this.x += this.dx; //X座標決定
				this.y += this.dy; //Y座標決定
				if (this.x < 0) { //画面からはみ出た場合の処理 
					this.x = 0;
					this.dx = -this.dx / 2;
				}
				if (this.x > 480) {
					this.x = 480;
					this.dx = -this.dx / 2;
				}
				if (this.y < 0) {
					this.y = 0;
					this.dy = -this.dy / 2;
				}
				if (this.y > 480) {
					this.y = 480;
					this.dy = -this.dy / 2;
				}
				if (this.dx > 0) {
					this.img.src = 'bee_right.gif'; //ハチ画像ファイル
				} 
				if (this.dx < 0) {
					this.img.src = 'bee_left.gif'; //ハチ画像ファイル
				}
				this.elem.style.left = this.x + 'px';
				this.elem.style.top = this.y + 'px';				
				this.elem.style.opacity = this.opacity;
			}
			
			this.lifeDecrease = function () { //ライフを減らす(消失処理)
				this.life -= 1;
				if ((this.life < 10)&&(this.life >= 0)){
					this.opacity = this.life / 10;
					this.elem.style.opacity = this.opacity;
				} 
			}

			this.crash = function () { //衝突(ダメージ)時処理
				this.life = 0;
				if (muteki_timer <= 0) { //無敵でない場合には王子ライフ-1
					prince.life -= 1;
				} else {
					score += 3000 * combo_calc;
				}
				this.elem.style.opacity = 0;
			}
		}
		
		//アイテムコンストラクタ
		function ItemObj(_elem,_img){ 
			this.elem = _elem; //アイテム表示エレメント
			this.img = _img; //アイテム画像エレメント
			if (counter < 500) { //最初のアイテムはスピードアップ(番号0)
				this.type = 0;
			} else if (counter < 900) { //2つめのアイテムはフルーツ頻度増(番号1)
				this.type = 1;
			} else if ((counter < 1400)&&(prince_speed <= 6)) { //3つめのアイテム出現時に王子のスピードが遅い場合にはスピードアップ(番号0)
				this.type = 0;
			} else {
				this.type = Math.floor(Math.random()*4.6); //アイテムの種類
			}
			this.x = Math.floor(Math.random()*9)*60; //アイテムX座標
			this.y = Math.floor(Math.random()*9)*60; //アイテムY座標
			this.life = 0; //エラー回避のライフ設定(出現可否判定前は0にしておく)
			if ((!ground_map[this.y/60*9 + this.x/60] > 0)&&(Math.pow((this.x - prince.x),2)+ Math.pow((this.y - prince.y),2) > 8100)) { //王子や他のフルーツやタコと重なっていなければフルーツオブジェクト
				ground_map[this.y/60*9 + this.x/60] = this.type + 100; //マップ埋め込み
				this.opacity = 0.1; //不透明度
				this.life = 100; //ライフ
				this.img.src = 'item' + this.type + '.gif'; //表示されるアイテム
				this.elem.style.left = this.x + 'px';
				this.elem.style.top = this.y + 'px';
				this.elem.style.opacity = this.opacity;
				item_timer = 400; //アイテムタイマーリセット

			} else { //王子や他のフルーツと重なった場合には、タイマーを再設定
				this.x = -60;
				this.y = -60;				
				item_timer = 2; 
			}
				
			this.higherOpacity = function () { //不透明度増やす
				this.opacity += 0.1;
				if (this.opacity > 1) {
					this.opacity = 1;
				}
				this.elem.style.opacity = this.opacity;
			}
			
			this.lifeDecrease = function () { //ライフを減らす(消失処理)
				this.life -= 1;
				if ((this.life < 10)&&(this.life >= 0)){
					this.opacity = this.life / 10;
					this.elem.style.opacity = this.opacity;
				} 
			}
			this.itemGet = function () { //ライフゲット時処理
				this.life = 0;
				this.elem.style.opacity = 0;
			}
		}

		//キングコンストラクタ
		function KingObj(_elem,_img){ 
			this.elem = _elem; //キング表示エレメント
			this.img = _img; //キング画像エレメント
			if (prince.x < 240) { //キングX座標
				this.x = 480;
				this.img.src = 'king_left.gif'; //キング画像ファイル
			} else {
				this.x = 0;
				this.img.src = 'king_right.gif'; //キング画像ファイル
			}
			if (prince.y < 240) { //キングy座標
				this.y = 480;
			} else {
				this.y = 0;
			}			

			this.life = 0; //エラー回避のライフ設定(出現可否判定前は0にしておく)
			if ((!ground_map[this.y/60*9 + this.x/60] > 0)&&(Math.pow((this.x - prince.x),2)+ Math.pow((this.y - prince.y),2) > 8100)) { //王子や他のフルーツやタコと重なってなければキングオブジェクト
				ground_map[this.y/60*9 + this.x/60] = 150; //マップ埋め込み
				this.opacity = 0.1; //不透明度
				this.life = 70; //ライフ
				this.elem.style.left = this.x + 'px';
				this.elem.style.top = this.y + 'px';
				this.elem.style.opacity = this.opacity;
				audio[34].play(); //効果音
				king_timer = 2000; //キングタイマーリセット
			} else {
				this.x = -60;
				this.y = -60;				
				king_timer = 5;				
			}
				
			this.higherOpacity = function () { //不透明度増やす
				this.opacity += 0.1;
				if (this.opacity > 1) {
					this.opacity = 1;
				}
				if (this.opacity == 0.2) { //キング登場時に床を一瞬明るく
					document.getElementById('background').style.backgroundImage = 'url(ground_bright.jpg)';
				} else if (this.opacity == 0.6) {
					document.getElementById('background').style.backgroundImage = 'url(ground.jpg)';					
				}
				this.elem.style.opacity = this.opacity;
			}
			
			this.move = function () { //キング処理
			}
			
			this.lifeDecrease = function () { //ライフを減らす(消失処理)
				this.life -= 1;
				if ((this.life >=12)&&(this.life <=20)){ //キング演出、点滅
					if (this.x == 480) {
						this.img.src= (this.life % 2 == 0)?'king_left.gif':'king_left_flash.gif';
					} else {
						this.img.src= (this.life % 2 == 0)?'king_right.gif':'king_right_flash.gif';
					}
					if (this.life % 2 == 0) { //キング演出、床を暗く
						document.getElementById('background').style.backgroundImage = 'url(ground.jpg)';
					} else {
						document.getElementById('background').style.backgroundImage = 'url(ground_dark.jpg)';						
					}
				}
				if (this.life == 10) { //タコ出現頻度改定処理
					audio[35].play(); //効果音
					if (octopus_multi == 1) {
						octopus_multi = 5;					   
					} else if (octopus_multi == 5) {
						octopus_multi = 10;
					} else if (octopus_multi == 10) {
						octopus_multi = 20;				   
					} else {
						octopus_multi = 1;
					}
					for (i=0; i<=29; i++){ //タコライフあれば全て10にする
						if (octopus[i].life > 0) {
							octopus[i].life = 10;
						}
					}
				}
				if ((this.life < 10)&&(this.life >= 0)){
					this.opacity = this.life / 10;
					this.elem.style.opacity = this.opacity;
				} 
			}

			this.crash = function () { //衝突(ダメージ)時処理
				this.life = 0;
				//if (muteki_timer <= 0) { //無敵でない場合には王子ライフ-1
					//prince.life -= 1;
				//} else {
					//score += 3000 * combo_calc;
				//}
				this.elem.style.opacity = 0;
				document.getElementById('background').style.backgroundImage = 'url(ground.jpg)';   
			}
		}
		
		//ビッグフルーツコンストラクタ
		function BigFruitObj(_elem,_img){ 
			this.elem = _elem; //ビッグフルーツ表示エレメント
			this.img = _img; //ビッグフルーツ画像エレメント
			this.type = bigfruit_last; //ビッグフルーツの種類
			if (prince.x < 240) { //ビッグフルーツX座標
				this.x = 450;
				this.direction = 1; //ビッグフルーツの進む方向1-左, 2-右
			} else {
				this.x = 30;
				this.direction = 2; //ビッグフルーツの進む方向1-左, 2-右
			}
			this.img.src = fruit_type[this.type] + '.gif'; //表示されるビッグフルーツ
			this.y = Math.floor(Math.random()*8)*60+30; //ビッグY座標
			this.opacity = 0.1; //不透明度
			this.life = 300; //ライフ
			this.elem.style.left = (this.x - 30) + 'px';
			this.elem.style.top = (this.y - 30) + 'px';
			this.elem.style.opacity = this.opacity;
			audio[37].play(); //効果音
			bigfruit_timer = 1800; //ビッグフルーツタイマーリセット
				
			this.higherOpacity = function () { //不透明度増やす
				this.opacity += 0.1;
				if (this.opacity > 1) {
					this.opacity = 1;
				}
				this.elem.style.opacity = this.opacity;
			}
			
			this.move = function () { //ビッグフルーツ移動
				if (this.life > 200) {
					if (this.opacity == 1) {
						this.life = 200; //完全に見える状態になったら次の段階に移行
					}
				} else if (this.life > 100) {
					if (this.direction == 1) {
						this.x -= 20; //左に進む
						if (this.x < 30) { //左端に到達で次の段階に移行
							this.x = 30;
							this.life = 10;
						}
					} else {
						this.x += 20; //右に進む
						if (this.x > 450) { //右端に到達で次の段階に移行
							this.x = 450;
							this.life = 10;
						}
					}
				}
				this.elem.style.left = (this.x - 30) + 'px';
				this.elem.style.top = (this.y - 30) + 'px';				
				this.elem.style.opacity = this.opacity;
			}
			
			this.lifeDecrease = function () { //ライフを減らす(消失処理)
				this.life -= 1;
				if ((this.life < 10)&&(this.life >= 0)){
					this.opacity = this.life / 10;
					this.elem.style.opacity = this.opacity;
				} 
			}

			this.fruitGet = function () { //フルーツゲット時処理
				this.life = 0;
				score += fruit_score[this.type] * 10 * combo_calc;
				this.elem.style.opacity = 0;
			}
		}
		
		//フルーツスコアコンストラクタ
		function FruitScoreObj(_elem,_hyoji,_comment,_xpos,_ypos){
			this.elem = _elem; //フルーツ表示エレメント
			this.hyoji = _hyoji; //スコア表示エレメント
			this.comment = _comment; //コメント(スコア)
			this.x = _xpos - 60; //スコアX座標
			this.y = _ypos + 20; //スコアY座標
			this.life = 20; //スコアライフ
			
			this.elem.style.left = this.x + 'px';
			this.elem.style.top = this.y + 'px';
			this.hyoji.textContent = this.comment;
			this.elem.style.opacity = 1;
			
			this.lifeDecrease = function () { //スコアライフを減らす
				this.y -= 1;
				this.life -= 1;
				this.elem.style.left = this.x + 'px';
				this.elem.style.top = this.y + 'px';
				this.hyoji.textContent = this.comment;
				if (this.life <= 10){
					this.opacity = this.life / 10;
					this.elem.style.opacity = this.opacity;
				}
			}
		}

		//ダメージ表示コンストラクタ
		function DamageHyojiObj(_elem,_hyoji,_comment,_xpos,_ypos){
			this.elem = _elem; //ダメージ表示エレメント
			this.hyoji = _hyoji; //ダメージ表示エレメント
			this.comment = _comment; //コメント
			this.x = _xpos - 60; //ダメージX座標
			this.y = _ypos + 20; //ダメージY座標
			this.life = 20; //ダメージライフ
			
			this.elem.style.left = this.x + 'px';
			this.elem.style.top = this.y + 'px';
			this.hyoji.textContent = this.comment;
			this.elem.style.opacity = 1;
			
			this.lifeDecrease = function () { //ダメージライフを減らす
				this.y -= 1;
				this.life -= 1;
				this.elem.style.left = this.x + 'px';
				this.elem.style.top = this.y + 'px';
				this.hyoji.textContent = this.comment;
				if (this.life <= 10){
					this.opacity = this.life / 10;
					this.elem.style.opacity = this.opacity;
				}
			}
		}

		//アイテム表示コンストラクタ
		function ItemHyojiObj(_elem,_hyoji,_comment,_xpos,_ypos){
			this.elem = _elem; //ダメージ表示エレメント
			this.hyoji = _hyoji; //ダメージ表示エレメント
			this.comment = _comment; //コメント
			this.x = _xpos - 60; //ダメージX座標
			this.y = _ypos + 20; //ダメージY座標
			this.life = 20; //ダメージライフ
			
			this.elem.style.left = this.x + 'px';
			this.elem.style.top = this.y + 'px';
			this.hyoji.textContent = this.comment;
			this.elem.style.opacity = 1;
			
			this.lifeDecrease = function () { //ダメージライフを減らす
				this.y -= 1;
				this.life -= 1;
				this.elem.style.left = this.x + 'px';
				this.elem.style.top = this.y + 'px';
				this.hyoji.textContent = this.comment;
				if (this.life <= 10){
					this.opacity = this.life / 10;
					this.elem.style.opacity = this.opacity;
				}
			}
		}
		
		//ビッグフルーツスコアコンストラクタ
		function BigFruitScoreObj(_elem,_hyoji,_comment,_xpos,_ypos){
			this.elem = _elem; //フルーツ表示エレメント
			this.hyoji = _hyoji; //スコア表示エレメント
			this.comment = _comment; //コメント(スコア)
			this.x = _xpos - 60; //スコアX座標
			this.y = _ypos + 20; //スコアY座標
			this.life = 20; //スコアライフ
			
			this.elem.style.left = this.x + 'px';
			this.elem.style.top = this.y + 'px';
			this.hyoji.textContent = this.comment;
			this.elem.style.opacity = 1;
			
			this.lifeDecrease = function () { //スコアライフを減らす
				this.y -= 2;
				this.life -= 1;
				this.elem.style.left = this.x + 'px';
				this.elem.style.top = this.y + 'px';
				this.hyoji.textContent = this.comment;
				if (this.life <= 10){
					this.opacity = this.life / 10;
					this.elem.style.opacity = this.opacity;
				}
			}
		}
		//コンボ判定処理
		function combofunc(){		
			if (combo_timer > 0) { //コンボタイマー0より上の場合にはコンボ作動
				combo += 1; //コンボ+1
				if (combo > 1) {
					combo_calc = combo; //コンボ計算値
					combo_hyoji = ' x' + combo_calc;
					if (combo >= 10) { //コンボは10が最大値
						combo_calc = 10; 
						combo_hyoji = ' x10';
						comboten_sound += 1;
						if (comboten_sound > 2) {
							comboten_sound = 0;
						}
					} else {
						comboten_sound = 0;
					}
					audio[21+combo_calc+comboten_sound].play(); //効果音
				}
			} else {
				combo = 0;
				combo_calc = 1;
				combo_hyoji = '';
			}
		}
		//キー入力判定
		function keydown(e){ 
			switch(e.keyCode) {
				case 38: //カーソルキー上
					if (screenstatus == 1) {
						prince_move = 1; //上
						document.getElementById('div_arrows').style.opacity = 0; //初期矢印透明
					}
					break; 
				case 39: //カーソルキー右
					if (screenstatus == 1) {
						if (prince_move != 2){
							prince.leftright(2);							
						}
						prince_move = 2; //右
						document.getElementById('div_arrows').style.opacity = 0; //初期矢印透明
					}
					break;
				case 40: //カーソルキー下
					if (screenstatus == 1) {
						prince_move = 3; //下
						document.getElementById('div_arrows').style.opacity = 0; //初期矢印透明
					}
					break;
				case 37: //カーソルキー左
					if (screenstatus == 1) {
						if (prince_move != 4){
							prince.leftright(1);							
						}
						prince_move = 4; //左
						document.getElementById('div_arrows').style.opacity = 0; //初期矢印透明
					}
					break;
				case 32: //スペースキー
					if (screenstatus == 0) {
						init();
					}
					//if (screenstatus == 2) { //ゲームオーバーの再開処理と重なり動作がおかしくなるので使えない
					//	top_title();
					//} 
					break;
			}
		}
		
		//ゲームパッド入力判定
		function gamepad_check() {
			var gamepad_list = navigator.getGamepads(); // ゲームパッドリストを取得する
			var gnum = gamepad_list.length; //ゲームパッドリスト内のアイテム総数を取得する
			var i;
			for(i=0; i < gnum; i++){
				//Gamepad オブジェクトを取得する
				var gamepad = gamepad_list[i];
				if(!gamepad) continue;
				var buttons = gamepad.buttons; //ABボタン等
				var axes = gamepad.axes; //方向ボタン
				//データチェッカー用処理
				//if (axes[0]) {
					//document.getElementById('checker0').textContent = axes[0];
				//}
				//上ボタン
				if (axes[1] == -1) {
					if (screenstatus == 1) {
						prince_move = 1; //上
						document.getElementById('div_arrows').style.opacity = 0; //初期矢印透明
					}
				}
				//右ボタン
				if (axes[0] == 1) {
					if (screenstatus == 1) {
						if (prince_move != 2){
							prince.leftright(2);							
						}
						prince_move = 2; //右
						document.getElementById('div_arrows').style.opacity = 0; //初期矢印透明
					}
				}
				//下ボタン
				if (axes[1] == 1) {
					if (screenstatus == 1) {
						prince_move = 3; //下
						document.getElementById('div_arrows').style.opacity = 0; //初期矢印透明
					}
				}
				//左ボタン
				if (axes[0] == -1) {
					if (screenstatus == 1) {
						if (prince_move != 4){
							prince.leftright(1);							
						}
						prince_move = 4; //左
						document.getElementById('div_arrows').style.opacity = 0; //初期矢印透明
					}
				}
				//Aボタン
				if (buttons[0].pressed == true) {
					if (screenstatus == 0) {
						init();
					}
				}
				
			}	
		}			
		
		//ボタン入力判定
		function upa() {
			document.getElementById('button_up').src = 'button_up2.gif';
			if (screenstatus == 1) {
				prince_move = 1; //上
				document.getElementById('div_arrows').style.opacity = 0; //初期矢印透明
			}
		}
		function upb() {
			document.getElementById('button_up').src = 'button_up1.gif';
			if (screenstatus == 1) {
			}
		}
		function righta() {
			document.getElementById('button_right').src = 'button_right2.gif';
			if (screenstatus == 1) {
				if (prince_move != 2){
					prince.leftright(2);							
				}
				prince_move = 2; //右
				document.getElementById('div_arrows').style.opacity = 0; //初期矢印透明
			}
		}
		function rightb() {
			document.getElementById('button_right').src = 'button_right1.gif';
			if (screenstatus == 1) {
			}
		}
		function downa() {
			document.getElementById('button_down').src = 'button_down2.gif';
			if (screenstatus == 1) {
				prince_move = 3; //下
				document.getElementById('div_arrows').style.opacity = 0; //初期矢印透明
			}
		}
		function downb() {
			document.getElementById('button_down').src = 'button_down1.gif';
			if (screenstatus == 1) {
			}
		}
		function lefta() {
			document.getElementById('button_left').src = 'button_left2.gif';
			if (screenstatus == 1) {
				if (prince_move != 4){
					prince.leftright(1);							
				}
				prince_move = 4; //右
				document.getElementById('div_arrows').style.opacity = 0; //初期矢印透明
			}
		}
		function leftb() {
			document.getElementById('button_left').src = 'button_left1.gif';
			if (screenstatus == 1) {
			}
		}
		function starta() {
			document.getElementById('button_start').src = 'button_start2.gif';
			if (screenstatus == 0) {
				//init();
			}
		}
		function startb() {
			document.getElementById('button_start').src = 'button_start1.gif';
			if (screenstatus == 0) {
				init();
			}
		}
		function audio_change() { //オーディオ有無
			if (audio_status == 1) {
				audio_status = 0;
				document.getElementById('button_audio').src = 'audio_off.gif';
				for (i=0; i<audio_files.length; i++){
					audio[i].muted = true;
				}
				audio[0].pause(); //BGM停止
			} else {
				audio_status = 1;
				document.getElementById('button_audio').src = 'audio_on.gif';
				for (i=0; i<audio_files.length; i++){
					audio[i].muted = false;
				}
				if (screenstatus == 1) {
					audio[0].play(); //BGM演奏
				}
			}
		}
		function lang_change() { //言語選択
			if (lang_status == 1) {
				lang_status = 0;
				document.getElementById('button_lang').src = 'lang_jp.gif';
				document.getElementById('title').src = 'title.gif';
				document.getElementById('gameover').src = 'gameover.gif';
				document.getElementById('title_contents').innerHTML = '【 ゲームの遊び方 】<br>スペースキーまたは画面下の「START」ボタンでゲームスタート<br>ゲーム中は馬に乗った王子をカーソルキーで操作<br>タコやハチを避けながらフルーツを集めまくって得点を稼ごう!';
			} else {
				lang_status = 1;
				document.getElementById('button_lang').src = 'lang_en.gif';
				document.getElementById('title').src = 'title_en.gif';
				document.getElementById('gameover').src = 'gameover_en.gif';
				document.getElementById('title_contents').innerHTML = '[ HOW TO PLAY ]<br>Press the spacebar or the “START” button below to start the game.<br>Move the prince on the horse with the cursor keys.<br>Avoid octopuses and the bee and collect fruits to score points!';
			}
		}
		document.addEventListener('DOMContentLoaded',top_title()); //トップ画面表示
		window.addEventListener('keydown',keydown); //キー入力イベント
		
		//カーソルボタンの処理
		if((window.TouchEvent)&&(window.innerHeight > window.innerWidth)){
			document.getElementById('button_up').addEventListener('touchstart',upa);
			document.getElementById('button_up').addEventListener('touchend',upb);
			document.getElementById('button_right').addEventListener('touchstart',righta);
			document.getElementById('button_right').addEventListener('touchend',rightb);
			document.getElementById('button_down').addEventListener('touchstart',downa);
			document.getElementById('button_down').addEventListener('touchend',downb);
			document.getElementById('button_left').addEventListener('touchstart',lefta);
			document.getElementById('button_left').addEventListener('touchend',leftb);
		} else {
			document.getElementById('button_up').addEventListener('mousedown',upa);
			document.getElementById('button_up').addEventListener('mouseup',upb);
			document.getElementById('button_right').addEventListener('mousedown',righta);
			document.getElementById('button_right').addEventListener('mouseup',rightb);
			document.getElementById('button_down').addEventListener('mousedown',downa);
			document.getElementById('button_down').addEventListener('mouseup',downb);
			document.getElementById('button_left').addEventListener('mousedown',lefta);
			document.getElementById('button_left').addEventListener('mouseup',leftb);			
		}

		//スマホ、タブレットの場合にはデフォルトでサウンドオフ
		if ((window.TouchEvent)&&(window.innerHeight > window.innerWidth)){
			audio_change();
		}
		
	</script>
	
</body>


↑制作の際、この本を参考にしました。

スポンサードリンク


トップページ(ゲーム)に戻る

フルーツ王子』- 製作: 小川 邦久 / ご意見・ご感想 / プライバシーポリシー
Copyright (C) 2016 KUNISAN.JP. All Rights Reserved.