さてソースAに続いてソースBの公開です
ソースは・・・
*sets
cls
font"",20
mes "操作は簡単\n"
mes "操作方法は"
mes "移動・・・カーソルキー左右"
mes "攻撃・・・マウス左クリック"
mes "ジャンプ・・・マウス右クリック\nだ"
button "戦闘開始",*starts
stop
*starts
cls
mes "難易度を指定して下さい"
button"超簡単",*ve
button"簡単",*ea
button"普通",*usu
button"難関",*h
button"超難関",*vh
stop
*henn
boxf
hard=limit (hard,1,50)
hp1=100
hp2=100
p1x=100
p1y=240
p2x=300
p2y=240
nv1=0
nv2=0
*rss
screen 0,400,300
randomize
repeat
redraw 0
color 0,0,0
boxf
nnv1=300-nv1*5
nnv2=300-nv2*5
if nv1!0:nv1+1:pos 130,0:color 255,255,255:mes "残り"+nnv1+"(金縛りCPU)":if nv1=60:nv1=0
if nv2!0:nv2+1:pos 130,25:color 255,255,255:mes "残り"+nnv2+"(金縛り1P)":if nv2=60:nv2=0
ffm1=300-fm1*5
ffm2=300-fm2*5
if fm1!0:fm1+1::pos 130,50:color 255,255,255:mes "残り"+ffm1+"(FM1P)":if fm1=60:fm1=0
if fm2!0:fm2+1:pos 130,75:color 255,255,255:mes "残り"+ffm2+"(FMCPU)":if fm2=60:fm2=0
if hp1>=150:hp1=150
if hp2>=150:hp2=150
hpz1=hp1:hpz2=hp2
if hpz1>100:hpz1=100
if hpz2>100:hpz2=100
c=c+1
counte=counte+1
dam=rnd(20)
dam=dam+1
color 255,255,0
line 0,280,400,280
pos p1x,p1y
gmode 2
gmode 2:gcopy 1,0,p1m*40,40,40
pos p2x,p2y
gmode 2:gcopy 1,160,p2m*40,40,40
color 255,0,0
pos 0,0
boxf 0,0,100,20
color 0,255,0
pos 0,0
boxf 0,0,hpz1,20
pos 0,35
color 255,255,255
mes "YOUR HP"+hp1
color 255,0,0
boxf 300,0,400,20
color 0,0,255
boxf 300,0,hpz2+300,20
pos 0,35
color 255,255,255
pos 300,35
mes "CPU'S HP"+hp2
stick ky,5
if nv2=0:if ky&1:p1x=p1x-8:p1m=1:if fm1!0:p1x-5
if nv2=0:if ky&4:p1x=p1x+8:p1m=0:if fm1!0:p1x+5
p1x=limitf (p1x,0,360)
if nv2=0:if ky&256:if ((abs(p1x-p2x)<=30)&p1y=p2y):pos p2x,p2y:gmode 2:gcopy 1,80,0,40,40:wait 50:hp2-dam
if nv2=0:if ky&512:p1y=100:c=0
if c=25:p1y=240
if hp2<=0:make2+1:dialog "CPUさんの負けです\n",,"CPU負け"+make2+"回目です":goto *chks
jumpcode=rnd(20)
atackchk=rnd(hard)
movechk=rnd(10)
houkou=rnd(25)
if houkou=0:hkc+=1:if hkc=2:hkc=0
if p2y!240:jumpcode=1
if nv1=0:if atackchk=0:if ((abs(p1x-p2x)<=30)&p1y=p2y):pos p1x,p1y:gmode 2:gcopy 1,80,0,40,40:wait 50:hp1-dam;2P攻撃済み
if nv1=0:if jumpcode=0:counte=0:p2y=100;2Pジャンプ済み
if counte=25:p2y=240;2Pジャンプ終了済み
if nv1=0:if movechk!0&hkc=0&kkb=0&bbb=0:p2x-8:p2m=0:if fm2!0:p2x-5;左移動判断
if nv1=0:if movechk!0&hkc=1&kkb=0&bbb=0:p2x+8:p2m=1:if fm2!0:p2x+5;右移動判断
if nv1=0:if movechk!0&kyu<p2y&kkb=1:p2x-8:p2m=0:if fm2!0:p2x-5;左移動判断kkb有り
if nv1=0:if movechk!0&kyu>p2y&kkb=1:p2x+8:p2m=1:if fm2!0:p2x+5;右移動判断kkb有り
if nv1=0:if movechk!0&kyu<p2y&bbb=1:p2x-8:p2m=0:if fm2!0:p2x-5;左移動判断bbb有り
if nv1=0:if movechk!0&kyu>p2y&bbb=1:p2x+8:p2m=1:if fm2!0:p2x+5;右移動判断bbb有り
p2x=limitf (p2x,0,360);壁
if hp1<=0:make1+1:dialog "Playerさん,負けました\n",,"Player負け"+make1+"回目です":goto *chks
if kkb=0|bbm=0|ques=0|kbb=0|fmb=0:a=rnd(80)
if kkb=0|bbm=0|ques=0|kbb=0:hl=rnd(2)
if kkb=0:kyu=rnd(340)
if bbm=0:bx=rnd(340)
if ques=0:qx=rnd(340):pmp=rnd(21):pmp-=10
if kbb=0:kbx=rnd(340)
if a=0 {
if hl=0:pos kyu,240:kky=240:else:pos kyu,100:kky=100
kyunl=kyu
gmode 2:gcopy 1,120,0,40,40
kkb=1
}
if kkb=1 {
pos kyunl,kky
gmode 2:gcopy 1,120,0,40,40
}
if ((abs(p1y-kky)<=40)&(abs(p1x-kyunl)<=40)):hp1=hp1+30:kkb=0:kyu=0:kky=0
if ((abs(p2y-kky)<=40)&(abs(p2x-kyunl)<=40)):hp2=hp2+30:kkb=0:kyu=0:kky=0
if a=1 {
if hl=0:pos bx,240:bby=240:else:pos bx,100:bby=100
byunl=bx
gmode 2:gcopy 1,120,40,40,40
bbb=1
}
if bbb=1 {
pos byunl,bby
gmode 2:gcopy 1,120,40,40,40
}
if ((abs(p1y-bby)<=40)&(abs(p1x-byunl)<=40)):hp1=hp1+pmp:bbb=0:bbu=0:bby=0
if ((abs(p2y-bby)<=40)&(abs(p2x-byunl)<=40)):hp2=hp2+pmp:bbb=0:bbu=0:bby=0
if a=2 {;qbh
if hl=0:pos qx,240:qqy=240:else:pos qx,100:qqy=100
qxunl=qx
gcopy 1,80,40,40,40
qqq=1
}
if qqq=1 {
pos qxunl,qqy
gcopy 1,80,40,40,40
}
if ((abs(p1y-qqy)<=40)&(abs(p1x-qxunl)<=40)):hp1=hp1-30:qqq=0:qqy=0
if ((abs(p2y-qqy)<=40)&(abs(p2x-qxunl)<=40)):hp2=hp2-30:qqq=0:qqy=0
if a=3 {;kbb
if hl=0:pos kbx,240:kby=240:else:pos kbx,100:kby=100
kbyunl=kbx
gcopy 1,200,0,40,40
kbb=1
}
if kbb=1 {
pos kbyunl,kby
gcopy 1,200,0,40,40
}
if ((abs(p1y-kby)<=40)&(abs(p1x-kbyunl)<=40)):nv1=1:kbb=0:kby=0
if ((abs(p2y-kby)<=40)&(abs(p2x-kbyunl)<=40)):nv2=1:kbb=0:kby=0
if a=4 {;fmb
if hl=0:pos fmx,240:fmy=240:else:pos fmx,100:fmy=100
fmxunl=fmx
gcopy 1,200,0,40,40
fmb=1
}
if fmb=1 {
pos fmxunl,fmy
gcopy 1,200,40,40,40
}
if ((abs(p1y-fmy)<=40)&(abs(p1x-fmxunl)<=40)):fm1=1:fmb=0:fmy=0
if ((abs(p2y-fmy)<=40)&(abs(p2x-fmxunl)<=40)):fm2=1:fmb=0:fmy=0
wait 5
redraw 1
loop
*chks
cls
button "もう一回",*starts
button "終わる",*e
stop
*ve
hard=30
goto,*henn
*ea
hard=15
goto,*henn
*usu
hard=5
goto,*henn
*h
hard=3
goto,*henn
*vh
hard=1
goto,*henn
*atim
cls 4
font"",20
color 255,255,255
gcopy 1,120,0,40,40
pos 50,0
mes"救急箱・・・とるとHPが30回復"
pos 0,50
gcopy 1,120,40,40,40
pos 50,50
mes"?BOX・・・とるとHPが-10から+10までの間で増減する\n変わらないことも・・・"
pos 0,100
gcopy 1,80,40,40,40
pos 50,100
mes"爆弾・・・とるとHPが-30・・・"
pos 0,150
gcopy 1,200,0,40,40
pos 50,150
mes"金縛り・・・とると相手が3秒の金縛りにおそわれる\nとれば勝ったも同然?"
pos 0,200
gcopy 1,200,40,40,40
pos 50,200
mes"高速移動・・・とると3秒間高速移動ができる"
button"OK",*tit
stop
です
長いですね・・・
END