TRPGまとめ読んでたら作りたくなってきた
なおJSは実務未経験
テキストRPGをHTMLとJSで作ってみようと思うんだが
1名前は開発中のものです。
2020/07/09(木) 18:10:53.88ID:C2sLSK4a2名前は開発中のものです。
2020/07/09(木) 18:14:37.90ID:C2sLSK4a プレイヤーの変数は名前とHPと攻撃力
配列に戦闘とイベントをランダムで入れてその配列を進めていく
配列に戦闘とイベントをランダムで入れてその配列を進めていく
3名前は開発中のものです。
2020/07/09(木) 18:26:05.78ID:C2sLSK4a とりあえずver0.01作った
4名前は開発中のものです。
2020/07/09(木) 18:27:03.38ID:C2sLSK4a <ぼでぃ>
<スパン>HP:</スパン><スパン id="HP"></スパン>
<スパン>攻撃力:</スパン><スパン id="ATTACK"></スパン>
<スパン>フロア:</スパン><スパン id="FLOOR"></スパン>
<スクリプト>
let HP = 10;
let ATTACK = 1;
let FLOOR = 0;
let PROGRESS=[];
const status = () =>{
document.querySelector("#HP").textContent = HP;
document.querySelector("#ATTACK").textContent = ATTACK;
document.querySelector("#FLOOR").textContent = FLOOR + 1;
}
status();
</スクリプト>
</ぼでぃ>
<スパン>HP:</スパン><スパン id="HP"></スパン>
<スパン>攻撃力:</スパン><スパン id="ATTACK"></スパン>
<スパン>フロア:</スパン><スパン id="FLOOR"></スパン>
<スクリプト>
let HP = 10;
let ATTACK = 1;
let FLOOR = 0;
let PROGRESS=[];
const status = () =>{
document.querySelector("#HP").textContent = HP;
document.querySelector("#ATTACK").textContent = ATTACK;
document.querySelector("#FLOOR").textContent = FLOOR + 1;
}
status();
</スクリプト>
</ぼでぃ>
5名前は開発中のものです。
2020/07/09(木) 18:31:55.39ID:C2sLSK4a 戦闘シーケンスどうやって作るか
とりあえずモンスターのHPと攻撃力設定しておく
交互に攻撃してHPゼロになったら戦闘シーケンス終了
装備とかクリティカルヒットとか回避はあとあと考えるか
攻撃はとりあえずプレイヤー先攻がデフォ
とりあえずモンスターのHPと攻撃力設定しておく
交互に攻撃してHPゼロになったら戦闘シーケンス終了
装備とかクリティカルヒットとか回避はあとあと考えるか
攻撃はとりあえずプレイヤー先攻がデフォ
6名前は開発中のものです。
2020/07/09(木) 19:08:28.94ID:C2sLSK4a const indicate = (text) =>{ document.querySelector("#INDICATE").innerText += text+"\n" }
let PLAYER=[NAME,HP,AP];
let MONSTERS = [["ゴブリン",3,1]];
const getAnyMonster = (MONSTERS) =>{ return MONSTERS[0] }
const battle = (PLAYER,MONSTER) =>{
const attack = () =>{
let PLAYER_HP = PLAYER[1];
const PLAYER_AP = PLAYER[2];
let MONSTER_HP = MONSTER[1];
const MONSTER_AP = MONSTER[2];
while (
Math.sign(PLAYER_HP) === 1 &&
Math.sign(MONSTER_HP) === 1
) {
console.table(PLAYER_HP,PLAYER_AP,MONSTER_HP,MONSTER_AP)
PLAYER_HP = PLAYER_HP - MONSTER_AP;
indicate(`${PLAYER[0]}のHP`+PLAYER_HP);
MONSTER_HP = MONSTER_HP - PLAYER_AP;
indicate(`${MONSTER[0]}のHP`+MONSTER_HP);
}
indicate(`戦闘は終了した`);
}
attack();
}
battle(PLAYER,getAnyMonster(MONSTERS));
let PLAYER=[NAME,HP,AP];
let MONSTERS = [["ゴブリン",3,1]];
const getAnyMonster = (MONSTERS) =>{ return MONSTERS[0] }
const battle = (PLAYER,MONSTER) =>{
const attack = () =>{
let PLAYER_HP = PLAYER[1];
const PLAYER_AP = PLAYER[2];
let MONSTER_HP = MONSTER[1];
const MONSTER_AP = MONSTER[2];
while (
Math.sign(PLAYER_HP) === 1 &&
Math.sign(MONSTER_HP) === 1
) {
console.table(PLAYER_HP,PLAYER_AP,MONSTER_HP,MONSTER_AP)
PLAYER_HP = PLAYER_HP - MONSTER_AP;
indicate(`${PLAYER[0]}のHP`+PLAYER_HP);
MONSTER_HP = MONSTER_HP - PLAYER_AP;
indicate(`${MONSTER[0]}のHP`+MONSTER_HP);
}
indicate(`戦闘は終了した`);
}
attack();
}
battle(PLAYER,getAnyMonster(MONSTERS));
7名前は開発中のものです。
2020/07/09(木) 19:23:27.12ID:C2sLSK4a8名前は開発中のものです。
2020/07/09(木) 19:24:09.77ID:C2sLSK4a でモンスターの配列をディープコピー
let MONSTERS = [["ゴブリン",3,1]];
const getAnyMonster = (MONSTERS) =>{
const EntityMONSTER = R.clone(MONSTERS);
return EntityMONSTER[0];
}
let MONSTERS = [["ゴブリン",3,1]];
const getAnyMonster = (MONSTERS) =>{
const EntityMONSTER = R.clone(MONSTERS);
return EntityMONSTER[0];
}
9名前は開発中のものです。
2020/07/09(木) 19:26:28.62ID:C2sLSK4a 戦闘を何度も繰り返したいときはこんな感じ?
const battle = (PLAYER,MONSTER) =>{
const attack = () =>{
while (
Math.sign(PLAYER[1]) === 1 &&
Math.sign(MONSTER[1]) === 1
) {
console.table(PLAYER[1],PLAYER[2],MONSTER[1],MONSTER[2])
PLAYER[1] = PLAYER[1] - MONSTER[2];
indicate(`${PLAYER[0]}のHP`+PLAYER[1]);
MONSTER[1] = MONSTER[1] - PLAYER[2];
indicate(`${MONSTER[0]}のHP`+MONSTER[1]);
}
indicate(`戦闘は終了した`);
}
attack();
}
PROGRESS=[battle, battle, battle, battle, battle, battle, battle];
PROGRESS.forEach(SEQUENCE=>{
SEQUENCE(PLAYER,getAnyMonster(MONSTERS));
})
const battle = (PLAYER,MONSTER) =>{
const attack = () =>{
while (
Math.sign(PLAYER[1]) === 1 &&
Math.sign(MONSTER[1]) === 1
) {
console.table(PLAYER[1],PLAYER[2],MONSTER[1],MONSTER[2])
PLAYER[1] = PLAYER[1] - MONSTER[2];
indicate(`${PLAYER[0]}のHP`+PLAYER[1]);
MONSTER[1] = MONSTER[1] - PLAYER[2];
indicate(`${MONSTER[0]}のHP`+MONSTER[1]);
}
indicate(`戦闘は終了した`);
}
attack();
}
PROGRESS=[battle, battle, battle, battle, battle, battle, battle];
PROGRESS.forEach(SEQUENCE=>{
SEQUENCE(PLAYER,getAnyMonster(MONSTERS));
})
10名前は開発中のものです。
2020/07/09(木) 19:27:00.30ID:C2sLSK4a データ構造はこんなもん
let NAME = "Hiroyuki";
let HP = 11;
let AP = 2;
let FLOOR = 0;
let PROGRESS=[];
let NAME = "Hiroyuki";
let HP = 11;
let AP = 2;
let FLOOR = 0;
let PROGRESS=[];
11名前は開発中のものです。
2020/07/09(木) 19:35:48.27ID:C2sLSK4a モンスター複数にしてランダムでモンスター出るようにした
let PLAYER=[NAME,HP,AP];
let MONSTERS = [["ゴブリン",3,1],["骸骨剣士",5,2],["ドワーフ",6,1]];
const shuffleArray = array => {
for (let i = array.length - 1; i > 0; i--) {
let r = Math.floor(Math.random() * (i + 1));
let tmp = array[i];
array[i] = array[r];
array[r] = tmp;
}
return array
}
const getAnyMonster = (MONSTERS) =>{
const EntityMONSTER = R.clone(MONSTERS);
return shuffleArray(EntityMONSTER)[0];
}
let PLAYER=[NAME,HP,AP];
let MONSTERS = [["ゴブリン",3,1],["骸骨剣士",5,2],["ドワーフ",6,1]];
const shuffleArray = array => {
for (let i = array.length - 1; i > 0; i--) {
let r = Math.floor(Math.random() * (i + 1));
let tmp = array[i];
array[i] = array[r];
array[r] = tmp;
}
return array
}
const getAnyMonster = (MONSTERS) =>{
const EntityMONSTER = R.clone(MONSTERS);
return shuffleArray(EntityMONSTER)[0];
}
12名前は開発中のものです。
2020/07/09(木) 19:41:06.61ID:C2sLSK4a モンスター複数っていうかモンスターの種類が複数で出現は1体ずつ
あと死亡状態確認の関数も定義した
const deathCheck = () =>{ if(Math.sign(PLAYER[1]) !== 1){ indicate(`${PLAYER[0]}は死亡した`) } }
あと死亡状態確認の関数も定義した
const deathCheck = () =>{ if(Math.sign(PLAYER[1]) !== 1){ indicate(`${PLAYER[0]}は死亡した`) } }
レスを投稿する
ニュース
- 性売買「買う側」処罰化と同時に「売る側は処罰せず、支援の対象に」Colabo主催の集会にて★2 [パンナ・コッタ★]
- 【文春】元TOKIO・国分太一(51)「女性スタッフ2名への“わいせつ事案”」日テレ事情聴取の全貌が分かった! [Ailuropoda melanoleuca★]
- 【高市関税キター!!】個人輸入・少額輸入品への税優遇見直しへ…1万円以下の輸入品にも消費税を課す方針★2 [1ゲットロボ★]
- 立憲・塩村あやか氏 12歳タイ人少女の事件を受け、人身売買を厳罰化する法案を提出へ 「日本人が買って…恥ずかしかったですね」 [少考さん★]
- 【インバウンド】中国政府、日本行き航空便の減便指示、来年3月末まで「当面の措置」外交情勢によって見直しも★2 [1ゲットロボ★]
- トランプ米大統領声明「高市首相は非常に賢く、非常に強い。素晴らしい指導者になるだろう」「私は素晴らしい関係を築いている」 [お断り★]
- 日本人「な、なぜだ?なぜこの件で日本を助けてくれる国が0カ国なんだ?」。日本人ようやく気付く [805596214]
- 高市早苗、ネトウヨを裏切るwwwwwww「すまん、外国人の不動産規制やっぱ無理だわ」 [246620176]
- 【文春砲】国分太一降板の原因は女性スタッフへのわいせつ [579392623]
- 近過ぎてしまって見えなくなった考え過ぎて分からなくなった
- 夜の闇にまぎれ僕等低空で飛び続けた
- こういうギャグみたいなおっぱいで抜けるやつwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
