var CBR = CBR || {}; CBR.fish = { move: function (type) { switch (type) { case 1: //イワシ if ($gameMap.mapId() == 120) { return { x: 48 * 11 + Math.random() * 48 * 4, y: 48 * 15.2 + Math.random() * 48 * 7.5, size: 0.2, id: 1 //強さとか釣り難易度 }; } else { return { x: 48 * 4 + Math.random() * 48 * 20, y: 48 * 13 + Math.random() * 48 * 9, size: 0.2, id: 1 //強さとか釣り難易度 }; } case 2: //アジ if ($gameMap.mapId() == 120) { return { x: 48 * 11 + Math.random() * 48 * 4, y: 48 * 15.2 + Math.random() * 48 * 7.5, size: 0.2, id: 1 }; } else { return { x: 48 * 4 + Math.random() * 48 * 20, y: 48 * 13 + Math.random() * 48 * 9, size: 0.2, id: 1 }; } case 3: //サンマ if ($gameMap.mapId() == 120) { return { x: 48 * 11 + Math.random() * 48 * 4, y: 48 * 15.2 + Math.random() * 48 * 7.5, size: 0.2, id: 2 }; } else { return { x: 48 * 4 + Math.random() * 48 * 20, y: 48 * 13 + Math.random() * 48 * 9, size: 0.2, id: 2 }; } case 4: //サバ if ($gameMap.mapId() == 120) { return { x: 48 * 11 + Math.random() * 48 * 4, y: 48 * 15.2 + Math.random() * 48 * 7.5, size: 0.2, id: 2 }; } else { return { x: 48 * 4 + Math.random() * 48 * 20, y: 48 * 13 + Math.random() * 48 * 9, size: 0.2, id: 2 }; } case 5: //カレイ if ($gameMap.mapId() == 120) { return { x: 48 * 11 + Math.random() * 48 * 4, y: 48 * 15.2 + Math.random() * 48 * 7.5, size: 0.2, id: 3 }; } else { return { x: 48 * 4 + Math.random() * 48 * 20, y: 48 * 13 + Math.random() * 48 * 9, size: 0.2, id: 3 }; } case 6: //スズキ if ($gameMap.mapId() == 120) { return { x: 48 * 11 + Math.random() * 48 * 4, y: 48 * 15.2 + Math.random() * 48 * 7.5, size: 0.2, id: 5 }; } else { return { x: 48 * 4 + Math.random() * 48 * 20, y: 48 * 13 + Math.random() * 48 * 9, size: 0.2, id: 5 }; } case 7: //ヒラメ if ($gameMap.mapId() == 120) { return { x: 48 * 11 + Math.random() * 48 * 4, y: 48 * 15.2 + Math.random() * 48 * 7.5, size: 0.2, id: 5 }; } else { return { x: 48 * 4 + Math.random() * 48 * 20, y: 48 * 13 + Math.random() * 48 * 9, size: 0.2, id: 5 }; } case 8: //タイ if ($gameMap.mapId() == 120) { return { x: 48 * 11 + Math.random() * 48 * 4, y: 48 * 15.2 + Math.random() * 48 * 7.5, size: 0.2, id: 4 }; } else { return { x: 48 * 4 + Math.random() * 48 * 20, y: 48 * 13 + Math.random() * 48 * 9, size: 0.2, id: 4 }; } } } }; //################ 釣りプラグイン ###################### //魚を設定 Game_Event.prototype.setImage = function (characterName, characterIndex) { this._tileId = 0; this._characterName = characterName; this._characterIndex = characterIndex; this._isObjectCharacter = ImageManager.isObjectCharacter(characterName); //初期設定 if (characterName == "!$_fish" || characterName == "!$_tako") { this.CBR_fish = {}; this.CBR_fish.speed = 120 + 60 * Math.random(); //120~180 this.CBR_fish.rotation = 3.14 * 2 * Math.random(); this.CBR_fish.nowRotation = this.CBR_fish.rotation; this.CBR_fish.targetRotation = this.CBR_fish.rotation; this.CBR_fish.duration = 0; this.CBR_fish.type = Number($dataMap.events[this._eventId].meta.type); this.CBR_fish.fishId = CBR.fish.move(this.CBR_fish.type).id; var p = CBR.fish.move(this.CBR_fish.type); this.CBR_fish.scale = p.size * (1 + Math.random() * 0.2); this.CBR_fish.nowX = p.x; this.CBR_fish.nowY = p.y; this.CBR_fish.targetX = this.CBR_fish.nowX; //目的地 this.CBR_fish.targetY = this.CBR_fish.nowY; } }; Sprite_Character.prototype.initialize = function (character) { Sprite.prototype.initialize.call(this); this.initMembers(); this.setCharacter(character); if (this._character.CBR_fish) { this.scale.x = this._character.CBR_fish.scale; this.scale.y = this._character.CBR_fish.scale; } }; //魚を動かす Game_Event.prototype.update = function () { Game_Character.prototype.update.call(this); this.checkEventTriggerAuto(); this.updateParallel(); if (this.CBR_fish) { var d = this.CBR_fish; var uki = $gameMap._events[10]; //食いつき中とバトル中は動かさない if (($gameSwitches.value(190) || $gameSwitches.value(191) || $gameSwitches.value(192)) && $gameVariables.value(166) == this._eventId) { return; } //新しく移動するよーって時 if (d.speed < d.duration) { d.duration = 0; d.nowX = d.targetX; d.nowY = d.targetY; var p = CBR.fish.move(d.type); d.targetX = p.x; //目的地 d.targetY = p.y; d.nowRotation = d.rotation; d.targetRotation = Math.atan2(d.targetY - d.nowY, d.targetX - d.nowX) - 3.14 / 2; var saX = d.nowX - uki._x * 48; var saY = d.nowY - uki._y * 48; var rang = Math.sqrt(saX * saX + saY * saY); //他の奴が食いついてない if ($gameSwitches.value(189) && !$gameSwitches.value(190)) { // map120だけ範囲制限 if ($gameMap.mapId() != 120 || ($gameMap.mapId() == 120 && 11.5 < uki._x && uki._x < 15.5)) { //半径内かつ20%以上の確率 if (rang < 100 && 0.7 < Math.random()) { //フィーッシュ!食いついた! $gameSwitches.setValue(189, false); $gameSwitches.setValue(190, true); $gameVariables.setValue(162, 100); //temp変数近付きカウント $gameVariables.setValue(166, this._eventId); //temp変数近付きカウント } } } } if (d.duration < d.speed / 3) { this._x = d.nowX + (d.targetX - d.nowX) * Math.sin((((3.14 / 2) * d.duration) / d.speed) * 3); this._y = d.nowY + (d.targetY - d.nowY) * Math.sin((((3.14 / 2) * d.duration) / d.speed) * 3); } else { this._x = d.targetX; this._y = d.targetY; } if (d.duration < d.speed / 9) { this.CBR_fish.rotation = d.nowRotation + (((d.targetRotation - d.nowRotation) * d.duration) / d.speed) * 9; } this._x /= 48; this._y /= 48; this._realX = this._x; this._realY = this._y; var saX = this._x - uki._x; var saY = this._y - uki._y; var rang = Math.sqrt(saX * saX + saY * saY); if (d.speed / 4 < d.duration) { // map120だけ範囲制限 if ($gameMap.mapId() != 120 || ($gameMap.mapId() == 120 && 11.5 < uki._x && uki._x < 15.5)) { //魚にフキダシを表示 if ($gameSwitches.value(189)) { if (rang * 48 < 100 && !this._balloonPlaying) { $gameTemp.requestBalloon(this, 1); } } } } d.duration++; } }; //魚を回転させたり動かす Sprite_Character.prototype.updatePosition = function () { if (this._character.CBR_fish) { this.rotation = this._character.CBR_fish.rotation; } this.x = this._character.screenX(); this.y = this._character.screenY(); this.z = this._character.screenZ(); }; //目的地の移動を中止する Scene_Map.prototype.updateDestination = function () { if (this.isMapTouchOk() && !$gameSwitches.value(185)) { this.processMapTouch(); } else { $gameTemp.clearDestination(); this._touchCount = 0; } }; //矢印中色々と禁止 /* var Scene_Map___update = Scene_Map.prototype.update; Scene_Map.prototype.update = function() { Scene_Message.prototype.update.call(this); this.updateDestination(); this.updateMenuButton(); this.updateMapNameWindow(); this.updateMainMultiply(); //釣り最中はメニュー開けないように if(!$gameSwitches.value(88)){ if (this.isSceneChangeOk()) { this.updateScene(); } else if (SceneManager.isNextScene(Scene_Battle)) { this.updateEncounterEffect(); } } this.updateWaitCount(); }; */ /* document.addEventListener('mousemove', function(event) { // キャンバス上のマウス座標を取得 const x = Graphics.pageToCanvasX(event.pageX); const y = Graphics.pageToCanvasY(event.pageY); // ログに表示する(開発ツールのコンソールで確認できます) console.log(`マウス座標: X: ${x}, Y: ${y}`); }); */ //矢印を移動させる Scene_Map.prototype.updateMain = function () { $gameMap.update(this.isActive()); if ($gameSwitches.value(185)) { var saoPower = 0.2; // 装備によって投げるパワーを変える if ($gameActors._data[1]._equips[0]._itemId == 2) { saoPower *= 2.5; } //################# 方向決める #################### if ($gameSwitches.value(186)) { var ang = $gameVariables.value(163); if (Input.isPressed("left")) { ang += 2; if (180 < ang) { ang = 180; } $gameVariables.setValue(163, ang); //ゲージの方向 if ($gameScreen.picture(9)) { $gameScreen.picture(9)._angle = ang - 90; } } else if (Input.isPressed("right")) { ang -= 2; if (ang < 0) { ang = 0; } $gameVariables.setValue(163, ang); //ゲージの方向 if ($gameScreen.picture(9)) { $gameScreen.picture(9)._angle = ang - 90; } } else if (Input.isTriggered("ok") || TouchInput.isTriggered()) { $gameSwitches.setValue(186, false); $gameSwitches.setValue(187, true); //ゲージの強さスタート $gameScreen.erasePicture(9); $gameScreen.showPicture(10, "_fish_guage_b", 0, 456, 10, 100, 100, 255, 0); $gameScreen.showPicture(11, "_fish_guage_a", 0, 456, 10, 100, 100, 255, 0); $gameScreen.picture(10).CBR_clip = { x: 0, y: 0, w: 0, h: 134 }; AudioManager.playSe({ name: "Raise3", volume: 70, pitch: 100, pan: 0 }); $gameScreen.erasePicture(14); } else if (TouchInput.isHovered()) { var mouseX = TouchInput._x - 638; var mouseY = TouchInput._y - 377; ang = (Math.atan2(-mouseX, mouseY) * 180) / 3.14 + 90; if (ang < 0) { ang = 0; } else if (180 < ang) { ang = 180; } $gameVariables.setValue(163, ang); //ゲージの方向 if ($gameScreen.picture(9)) { $gameScreen.picture(9)._angle = ang - 90; } } //################ 投げるパワー決める ################# } else if ($gameSwitches.value(187)) { //10-363 = 363 var power = $gameVariables.value(164); if (363 < power) { power = 10; AudioManager.playSe({ name: "Raise3", volume: 70, pitch: 100, pan: 0 }); } else { power += 8; } $gameVariables.setValue(164, power); //ゲージの $gameScreen.picture(10).CBR_clip = { x: 0, y: 0, w: power, h: 134 }; //投げる if (Input.isTriggered("ok") || TouchInput.isTriggered()) { $gameVariables.setValue(164, $gameVariables.value(164) * saoPower); //ボロの釣り竿は0.25倍 $gameSwitches.setValue(193, true); $gameSwitches.setValue(187, false); $gameSwitches.setValue(188, true); $gameMap._events[10].setTransparent(false); var pic_name = $gameParty.members()[0].name() == "Shirayuki" ? `sira_${$gameVariables.value(204)}` : `yozu_${$gameVariables.value(205)}`; $gameScreen.showPicture(14, `turi_cutin_${pic_name}`, 0, 0, 0, 100, 100, 255, 0); $gameScreen.showPicture(12, "dummy", 0, 0, 0, 100, 100, 255, 0); AudioManager.playSe({ name: "Jump2", volume: 90, pitch: 100, pan: 0 }); } //############# 投げてる最中 ################## } else if ($gameSwitches.value(188)) { var rad = ($gameVariables.value(163) / 180) * 3.14; //0-3.14 var power = $gameVariables.value(164) / 363; //0~1 var maxR = 2500; var homeX = $gamePlayer._x * 48; var homeY = $gamePlayer._y * 48; var t = $gameVariables.value(165); var castTime = 200; t += 4; if (t == 72) { $gameScreen.movePicture(14, 0, 200, 0, 100, 100, 0, 0, 30); } if (castTime < t) { t = castTime; $gameSwitches.setValue(188, false); $gameSwitches.setValue(189, true); $gameScreen.erasePicture(10); $gameScreen.erasePicture(11); $gameScreen.erasePicture(2); } var screenX = homeX + (maxR * power * Math.cos(rad) * t) / castTime; var screenY = homeY + (maxR * power * Math.sin(rad) * t) / castTime; screenX /= 48; screenY /= 48; $gameMap._events[10]._realX = screenX; $gameMap._events[10]._x = screenX; $gameMap._events[10]._realY = screenY; $gameMap._events[10]._y = screenY; if (screenX < 13) { screenX = 0; } else if ($dataMap.width - 14 < screenX) { screenX = $dataMap.width - 27; } else { screenX -= 13; } if (screenY < 7) { screenY = 0; } else if ($dataMap.height - 8 < screenY) { screenY = $dataMap.height - 15; } else { screenY -= 7; } $gameMap._displayX = screenX; $gameMap._displayY = screenY; //見える範囲の一番上のY座標 //糸 var b = SceneManager._scene._spriteset._pictureContainer.children[11].bitmap; if (b && b._loadingState == "loaded") { b._context = b._context || b.canvas.getContext("2d"); b.clear(); var c = b._context; c.beginPath(); c.strokeStyle = "rgba(255,255,255,1)"; c.lineWidth = 1; c.moveTo($gamePlayer.screenX(), $gamePlayer.screenY()); c.lineTo($gameMap._events[10].scrolledX() * 48 + 24, $gameMap._events[10].scrolledY() * 48 + 36); c.stroke(); c.closePath(); SceneManager._scene._spriteset._pictureContainer.children[11]._refresh(); } $gameVariables.setValue(165, t); //ゲージの方向 //################ 釣り中 #################### } else if ($gameSwitches.value(189)) { //引く if (Input.isPressed("ok") || TouchInput.isLongPressed() || TouchInput.isTriggered()) { var rad = ($gameVariables.value(163) / 180) * 3.14; //0-3.14 var power = $gameVariables.value(164) / 363; //0~1 var maxR = 2500; var homeX = $gamePlayer._x * 48; var homeY = $gamePlayer._y * 48; var t = $gameVariables.value(165); var castTime = 60; t -= 0.2 / power; //引く速度をどの距離でも一定にする //終了フラグ if (t < 0.01) { //TODO 下に同じのあるけどまとめる時間ないから var screenX = homeX / 48; var screenY = homeY / 48; if (screenX < 13) { screenX = 0; } else if ($dataMap.width - 14 < screenX) { screenX = $dataMap.width - 27; } else { screenX -= 13; } if (screenY < 7) { screenY = 0; } else if ($dataMap.height - 8 < screenY) { screenY = $dataMap.height - 15; } else { screenY -= 7; } $gameMap._displayX = screenX; $gameMap._displayY = screenY; //見える範囲の一番上のY座標 $gameSwitches.setValue(193, false); $gameSwitches.setValue(189, false); $gameScreen.erasePicture(12); $gameTemp.reserveCommonEvent(1183); $gameMap._events[10]._realX = 0; $gameMap._events[10]._x = 0; $gameMap._events[10]._realY = 0; $gameMap._events[10]._y = 0; } else { if (castTime < t) { t = castTime; $gameSwitches.setValue(188, false); $gameSwitches.setValue(189, true); } var screenX = homeX + (maxR * power * Math.cos(rad) * t) / castTime; var screenY = homeY + (maxR * power * Math.sin(rad) * t) / castTime; screenX /= 48; screenY /= 48; $gameMap._events[10]._realX = screenX; $gameMap._events[10]._x = screenX; $gameMap._events[10]._realY = screenY; $gameMap._events[10]._y = screenY; if (screenX < 13) { screenX = 0; } else if ($dataMap.width - 14 < screenX) { screenX = $dataMap.width - 27; } else { screenX -= 13; } if (screenY < 7) { screenY = 0; } else if ($dataMap.height - 8 < screenY) { screenY = $dataMap.height - 15; } else { screenY -= 7; } $gameMap._displayX = screenX; $gameMap._displayY = screenY; //見える範囲の一番上のY座標 //糸 var b = SceneManager._scene._spriteset._pictureContainer.children[11].bitmap; if (b && b._loadingState == "loaded") { b._context = b._context || b.canvas.getContext("2d"); b.clear(); var c = b._context; c.beginPath(); c.strokeStyle = "rgba(255,255,255,1)"; c.lineWidth = 1; c.moveTo($gamePlayer.screenX(), $gamePlayer.screenY()); c.lineTo($gameMap._events[10].scrolledX() * 48 + 24, $gameMap._events[10].scrolledY() * 48 + 36); c.stroke(); c.closePath(); SceneManager._scene._spriteset._pictureContainer.children[11]._refresh(); } $gameVariables.setValue(165, t); //ゲージの方向 } } //################### 食いつき中 ################# } else if ($gameSwitches.value(190)) { var t = $gameVariables.value(162); var id = $gameVariables.value(166); var ev = $gameMap._events[id]; if (t) { ev._x += ($gameMap._events[10]._x - ev._x) / t; ev._y += ($gameMap._events[10]._y - 4 / 48 - ev._y) / t; ev._realX = ev._x; ev._realY = ev._y; ev.CBR_fish.rotation = Math.atan2($gameMap._events[10]._y - ev._y, $gameMap._events[10]._x - ev._x) - 3.14 / 2; t--; if (t < 0) { t = 0; } $gameVariables.setValue(162, t); //フィーッシュ! } else { //AudioManager.playBgs({"name":"mizushaba","volume":90,"pitch":100,"pan":0}); $gameSwitches.setValue(193, false); $gameSwitches.setValue(190, false); $gameSwitches.setValue(191, true); $gameTemp.reserveCommonEvent(1180); ev._moveSpeed = 8; $gameVariables.setValue(162, null); $gameVariables.setValue(177, 500); //糸パワー $gameScreen.showPicture(13, "_fish_icon", 0, 0, 0, 100, 100, 255, 0); } //####################### 格闘中 ####################### } else if ($gameSwitches.value(191)) { var id = $gameVariables.value(166); var ev = $gameMap._events[id]; var bui = $gameMap._events[10]; var obj = $gameVariables.value(162); if (!obj) { var rad = 2 * 3.14 * Math.random(); var rang = 3 + 4 * Math.random(); obj = { count: 100 + 100 * Math.random(), rad: rad, //向き rang: rang, targetX: ev._x + rang * Math.cos(rad), targetY: ev._y + rang * Math.sin(rad), power: 0.4, //0.2-1 引いた時どれだけ陸に近付けるか どんどん下がる string: 0.5, //0-1 範囲超えたら切れる scrollSpeedX: 0, scrollSpeedY: 0 }; } if (obj.count < 0) { obj.count = 40 + 70 * Math.random(); obj.string += 0.4; //動く時少し糸ゲージの負担が増える obj.power -= 0.01; var rad = 2 * 3.14 * Math.random(); var rang = 7 + 8 * Math.random(); obj.targetX = ev._x + rang * Math.cos(rad); if (obj.targetX < 0) { obj.targetX += 8; } else if ($dataMap.width < obj.targetX) { obj.targetX -= 8; } obj.targetY = ev._y + (rang / 2) * Math.sin(rad) + 5; if ($dataMap.height < obj.targetY) { obj.targetY -= 10; } ev.CBR_fish.rotation = Math.atan2(obj.targetY - ev._y, obj.targetX - ev._x) - 3.14 / 2; } ev._x += (obj.targetX - ev._x) / obj.count; ev._y += (obj.targetY - ev._y) / obj.count; var homeX = $gamePlayer._x; var homeY = $gamePlayer._y; //引く var stringLife = $gameVariables.value(177); // 0 - 1000 //ここで難易度を設定 if (Input.isTriggered("ok") || TouchInput.isTriggered()) { var yowari = 0.01; //メダカは楽に if (ev.CBR_fish.fishId == 1) { yowari *= 3; //ナマズは結構難しく } else if (ev.CBR_fish.fishId == 3) { yowari *= 0.5; //ナイルパーチは結構難しく } else if (ev.CBR_fish.fishId == 4) { yowari *= 0.3; //タコも } else if (ev.CBR_fish.fishId == 5) { yowari *= 0.3; } obj.power -= yowari; if (obj.power < 0.04) { obj.power = 0.04; } var r = 5 / 48 / obj.power; var rad = Math.atan2(homeY - ev._y, homeX - ev._x) + 3.14; ev._y -= r * Math.sin(rad); obj.targetY -= r * Math.sin(rad); ev._x -= r * Math.cos(rad); obj.targetX -= r * Math.cos(rad); stringLife += 50; //糸の寿命 } // x: 48 * 11 + Math.random() * 48 * 4, // y: 48 * 15.2 + Math.random() * 48 * 7.5, ev._x = ev._x.clamp(11, 11 + 4); ev._y = ev._y.clamp(3, 15.2 + 7.5); //イベントとブイの移動 ev._realX = ev._x; ev._realY = ev._y; bui._x = ev._x; bui._y = ev._y; bui._realX = ev._x; bui._realY = ev._y; var screenX = ev._x; var screenY = ev._y; $gameMap._events[10]._realX = screenX; $gameMap._events[10]._x = screenX; $gameMap._events[10]._realY = screenY; $gameMap._events[10]._y = screenY; if (screenX < 13) { screenX = 0; } else if ($dataMap.width - 14 < screenX) { screenX = $dataMap.width - 27; } else { screenX -= 13; } if (screenY < 7) { screenY = 0; } else if ($dataMap.height - 8 < screenY) { screenY = $dataMap.height - 15; } else { screenY -= 7; } //スクロールスピード なんかブルブル震えるけどもういいや var saX = screenX - $gameMap._displayX; var saY = screenY - $gameMap._displayY; if (10 / 48 < saX) { obj.scrollSpeedX += 1 / 48; if (10 / 48 < obj.scrollSpeedX) { obj.scrollSpeedX = 10 / 48; } $gameMap._displayX += obj.scrollSpeedX; } else if (saX < -10 / 48) { obj.scrollSpeedX -= 1 / 48; if (obj.scrollSpeedX < -10 / 48) { obj.scrollSpeedX = -10 / 48; } $gameMap._displayX += obj.scrollSpeedX; } else { if (1 / 48 < obj.scrollSpeedX) { obj.scrollSpeedX -= 1 / 48; } else if (obj.scrollSpeedX < 1 / 48) { obj.scrollSpeedX += 1 / 48; } } if (10 / 48 < saY) { obj.scrollSpeedY += 1 / 48; if (10 / 48 < obj.scrollSpeedY) { obj.scrollSpeedY = 10 / 48; } $gameMap._displayY += obj.scrollSpeedY; } else if (saY < -10 / 48) { obj.scrollSpeedY -= 1 / 48; if (obj.scrollSpeedY < -10 / 48) { obj.scrollSpeedY = -10 / 48; } $gameMap._displayY += obj.scrollSpeedY; } else { if (1 / 48 < obj.scrollSpeedY) { obj.scrollSpeedY -= 1 / 48; } else if (obj.scrollSpeedY < 1 / 48) { obj.scrollSpeedY += 1 / 48; } } //何かの拍子でスクロールがは見出ないように if ($gameMap._displayX < 0) { $gameMap._displayX = 0; } if ($gameMap._displayY < 0) { $gameMap._displayY = 0; } else if ($dataMap.height - Graphics._height / 48 < $gameMap._displayY) { $gameMap._displayY = $dataMap.height - Graphics._height / 48; } //糸 var b = SceneManager._scene._spriteset._pictureContainer.children[11].bitmap; if (b && b._loadingState == "loaded") { b._context = b._context || b.canvas.getContext("2d"); b.clear(); var c = b._context; c.beginPath(); c.strokeStyle = "rgba(255,255,255,1)"; c.lineWidth = 1; c.moveTo($gamePlayer.screenX(), $gamePlayer.screenY()); c.lineTo($gameMap._events[10].scrolledX() * 48 + 24, $gameMap._events[10].scrolledY() * 48 + 36); c.stroke(); c.closePath(); SceneManager._scene._spriteset._pictureContainer.children[11]._refresh(); } //お魚ゲージの色 stringLife -= 3; //ナイルパーチは下がりにくく if (ev.CBR_fish.fishId == 4) { stringLife += 1; } var r = 0; var g = 0; var b = 0; if (stringLife <= 500) { b = 255 - (stringLife / 500) * 255; g = (stringLife / 500) * 255; } else { g = 255 - ((stringLife - 500) / 500) * 255; r = ((stringLife - 500) / 500) * 255; } $gameScreen.tintPicture(13, [r, g, b, 0], 0); obj.count--; $gameVariables.setValue(162, obj); $gameVariables.setValue(177, stringLife); //釣れたら if (Math.sqrt((homeX - ev._x) * (homeX - ev._x) + (homeY - ev._y) * (homeY - ev._y)) < 100 / 48) { var b = SceneManager._scene._spriteset._pictureContainer.children[11].bitmap; if (b && b._loadingState == "loaded") { b._context = b._context || b.canvas.getContext("2d"); b.clear(); } AudioManager.fadeOutBgs(0); $gameSwitches.setValue(191, false); $gameSwitches.setValue(192, true); AudioManager.playSe({ name: "", volume: 90, pitch: 150, pan: 0 }); $gameVariables.setValue(162, 50); if (ev._characterName == "!$_fish") { ev.setImage("!$_fish_riku", 6); } else { ev.setImage("!$_fish_riku", 6); } ev.CBR_fish.rotation = 0; ev._moveSpeed = 3; AudioManager.playSe({ name: "Water1", volume: 90, pitch: 100, pan: 0 }); $gameMap._events[10]._realX = 0; $gameMap._events[10]._x = 0; $gameMap._events[10]._realY = 0; $gameMap._events[10]._y = 0; } //糸が切れたら if (1000 < stringLife || stringLife < 0) { var b = SceneManager._scene._spriteset._pictureContainer.children[11].bitmap; if (b && b._loadingState == "loaded") { b._context = b._context || b.canvas.getContext("2d"); b.clear(); } AudioManager.fadeOutBgs(0); $gameSwitches.setValue(191, false); $gameSwitches.setValue(185, true); $gameVariables.setValue(162, 50); ev.CBR_fish.rotation = 0; AudioManager.playSe({ name: "Blow5", volume: 90, pitch: 100, pan: 0 }); $gameMap._events[10]._realX = 0; $gameMap._events[10]._x = 0; $gameMap._events[10]._realY = 0; $gameMap._events[10]._y = 0; } // 釣れたので寄せ中 } else if ($gameSwitches.value(192)) { var t = $gameVariables.value(162); var id = $gameVariables.value(166); var ev = $gameMap._events[id]; if (0 < t) { var homeX = $gamePlayer._x; var homeY = $gamePlayer._y; ev._x += (homeX - ev._x) / t; ev._y += (homeY - ev._y) / t; //視点もここで治そう $gameMap._displayX += Math.max(0, $gamePlayer._x - 13) / t - $gameMap._displayX / t; $gameMap._displayY += Math.max(0, $gamePlayer._y - 7) / t - $gameMap._displayY / t; t--; $gameVariables.setValue(162, t); } else if (t == 0) { $gameVariables.setValue(161, ev.CBR_fish.fishId); t--; $gameVariables.setValue(162, t); $gameTemp.reserveCommonEvent(1181); } //逃げられた } else if ($gameSwitches.value(185)) { var t = $gameVariables.value(162); $gameMap._events[10]._realX = 0; $gameMap._events[10]._x = 0; $gameMap._events[10]._realY = 0; $gameMap._events[10]._y = 0; if (0 < t) { var homeX = $gamePlayer._x; var homeY = $gamePlayer._y; var id = $gameVariables.value(166); var ev = $gameMap._events[id]; ev._moveSpeed = 3; ev._x += (homeX - ev._x) / t; ev._y += (homeY - ev._y) / t; //視点もここで治そう $gameMap._displayX += Math.max(0, $gamePlayer._x - 13) / t - $gameMap._displayX / t; $gameMap._displayY += Math.max(0, $gamePlayer._y - 7) / t - $gameMap._displayY / t; t--; $gameVariables.setValue(162, t); } else if (t == 0) { t--; $gameVariables.setValue(162, t); $gameTemp.reserveCommonEvent(1182); } } } else { //売春用 if (!$gameSwitches.value(181)) { $gamePlayer.update(this.isPlayerActive()); } } $gameTimer.update(this.isActive()); $gameScreen.update(); }; //矢印の原点を指定 Sprite_Picture.prototype.updateOrigin = function () { const picture = this.picture(); if (picture.origin() === 0) { this.anchor.x = 0; this.anchor.y = 0; } else { this.anchor.x = 0.5; this.anchor.y = 0.5; } if (picture._name == "_yaji" || picture._name == "_icon") { this.anchor.x = 0.5; this.anchor.y = 0; } }; // 今は作業途中なのでコメントアウト // //oneone1用フキダシ位置調整 const _Sprite_Balloon_updatePosition = Sprite_Balloon.prototype.updatePosition; Sprite_Balloon.prototype.updatePosition = function () { _Sprite_Balloon_updatePosition.apply(this); if (this.targetObject._characterName == "!$_fish" || this.targetObject._characterName == "!$_tako") { this.x = this._target.x; this.y = this._target.y; } }; // パワー決めるゲージ用 var Sprite_Picture_____update = Sprite_Picture.prototype.update; Sprite_Picture.prototype.update = function () { Sprite_Picture_____update.call(this); this.updateBitmap(); if (this.visible) { this.updateOrigin(); this.updatePosition(); this.updateScale(); this.updateTone(); this.updateOther(); const picture = this.picture(); if (picture.CBR_clip) { const data = picture.CBR_clip; this.setFrame(data.x, data.y, data.w, data.h); } } }; (() => { "use strict"; //フォーカスが外れてもゲームが動く SceneManager.isGameActive = function () { return true; }; })();