|
2012/4/1(Sun) 23:36:06|NO.45696
出来ればそういう機能に触れたい意味もあってHSPletを使えればと思ったのですが・・・
以下に一応、例にあげた簡単なホッケーゲームのソースをしるしておきます
hidari.bmp
migi.bmp
は玉が自分の陣地に落ちた時に”ドガーッ”っと表示される小さい画像です。
#cmpopt optprm 0
*saisyo
cls 0 : hiding=0 : miging=0 : nitoku=0 : ititoku=0 : sens=10 : hayasa=2 : hajime=0
randomize
color 200,200,200 : boxf 0,0,640,200
objsize 100,23 :
pos 0,20 : chkbox "赤(ひだり)がCPU",kikuing
pos 0,60 : chkbox "緑(みぎ)がCPU",iuing
color ,, : pos 0,0 : mes "一人用" : pos 140,0 :
mes "遅さ(1〜20くらい)"
input hayasa
mes "何点でおわり?"
input sens
pos 390,0 : mes "やりかた\n\n左の人は AとZ でやる\n\n右の人は ↑と↓ でやる"
color r,g,b : boxf 250,270,387,330 : color ,, : pos 270,290 :
button "Go!",*fasuo
itiy=200
niy=200
kabenain=200
repeat
randomize
iro=rnd(10)
if iro<=5 : r+=rnd(10) : if r>=255 : r=0
if (iro>=6)|(iro<=8) : b+=rnd(20) : if b>=255 : b=0
if iro=9 : g+=rnd(30) : if g>=255 : g=0
if (r+b+g)<=50 : r+=40 :
await 1
loop
stop
*fasuo
cls 4
*fasu
borux=320
boruy=240
borutate=rnd(5) : borutate++;borutate=rnd(7) : borutate++
spend=rnd(3) : spend+=3 ;spend=rnd(5) : spend+=3
if win=1 : houkou=0 : else : houkou=1
if houkou=1 : gosub*ser
if houkou=0 : gosub*sern
sum=0
win=0
*main
gosub*sonota
gosub*kibodo
gosub*kibodokeisan
gosub*borukeisan
gosub*sinihantei
gosub*kaku
if (ititoku-sens=0)|(nitoku-sens=0) : gosub *kaku : pos 0,0 : color 255,255,255 : mes "終了" : await 400 : dialog "もっかい",, : if stat=1 : goto*saisyo : stop
await hayasa
if sum=1 : goto*fasu
if hajime<1 : await 1000 : hajime+=1
goto*main
*sonota
miging--
hiding--
return
*kibodo
if kikuing!1 : getkey a,65
if kikuing!1 : getkey z,90
if iuing!1 : getkey ue,38
if iuing!1 : getkey sit,40
if kikuing=1 : gosub*cpsiku
if iuing=1 : gosub*cpsikun
return
*cpsiku
a=0 : z=0
if kabenai-itiy<20 : a=1
if kabenai-itiy>10 : z=1
return
*cpsikun
ue=0 : sit=0
if kabenain-niy<20 : ue=1
if kabenain-niy>10 : sit=1
return
*kibodokeisan
if a=1 : itiy-=7
if z=1 : itiy+=7
if ue=1 : niy-=7
if sit=1 : niy+=7
if itiy<0 : itiy=0
if itiy>450 : itiy=450
if niy<0 : niy=0
if niy>450 : niy=450
return
*borukeisan
if houkou=0 : borux+=spend : else : borux-=spend
boruy+=borutate
if boruy<0 : boruy=0 : borutate=borutate*-1
if boruy>475 : boruy=475 : borutate=borutate*-1
if (borux<20)&(borux>0)&(boruy-itiy>-5)&(boruy-itiy<30) : houkou=0 : gosub*sell
if (borux>615)&(borux<635)&(boruy-niy>-5)&(boruy-niy<30) : houkou=1 : gosub*buy
return
*sell
aga=rnd(5) : aga+=5
if a=1 : borutate-=aga
if z=1 : borutate+=aga
if spend<=17 : spend++
kabenai=220
borux=20
*sern
dodkn=(640-borux)/spend-1
kabenain=borutate*dodkn+boruy
goto*sikanatin
*sikanatin
if kabenain<=0 : kabenain=kabenain*-1
if kabenain>=480 : kabenain=kabenain-((kabenain-480)*2)
if (kabenain<=480)&(kabenain>=0) : return
goto*sikanatin
*buy
aga=rnd(5) : aga+=5
if ue=1 : borutate-=aga
if sit=1 : borutate+=aga
if spend<=17 : spend++
kabenain=220
borux=610
*ser
dodk=borux/spend-1
kabenai=borutate*dodk+boruy
goto*sikanati
*sikanati
if kabenai<=0 : kabenai=kabenai*-1
if kabenai>=480 : kabenai=kabenai-((kabenai-480)*2)
if (kabenai<=480)&(kabenai>=0) : return
goto*sikanati
*sinihantei
if borux<-5 : sum=1 : nitoku++ : win=1 : hiding=100 : hidy=boruy
if borux>640 : sum=1 : ititoku++ : miging=100 : migy=boruy
return
*kaku
redraw 0
color ,,
boxf 0,0,640,480
pos 0,hidy-30
if hiding>0 : picload "hidari.bmp",1
pos 540,migy-30
if miging>0 : picload "migi.bmp",1
color 255,255,
boxf 320,240,325,245
color 255,,
boxf 20,itiy,0,itiy+30
color ,255,
boxf 620,niy,640,niy+30
color 255,128,
boxf borux,boruy,borux+5,boruy+5
pos 260,20
color 255,30,30
font "HGSゴシックE",50,2
mes ""+ititoku+" : "+nitoku+""
sysfont
if spend=18 : spp="Max!!!" : else : spp=spend
if borutate<0 : hrhb=borutate*-1 : else : hrhb=borutate
mes "Info Speed : "+spp+"\n 振り幅 : "+hrhb
redraw 1
return
| |