07/01/31 04:58:41 pIpsohpY.net
>>226
>シムシティとかみたいなアイコンボタンにしてみたくてね。
シムシティのアイコンボタンは知らないが、基本的にHSPで表示できる画像なら何でもボタンに出来る
ボタンオブジェクトの絵を差し替える方法もあるけど、ゲームなら自前で作った方がいいと思う
screen 1 :picload dir_exe+"\\sample\\demo\\hsplogo8.bmp" :screen 0 :sizex=80 :sizey=800/16 :bposx=200 :bposy=200
repeat :redraw 0 :color 0,60,60 :boxf
gosub *butsub
butcnt+stat:pos 0,0:color 250,250,250:mes "ボタン "+butcnt+"回"
redraw 1 :await 15 :getkey ml,1 :loop
*butsub
buton=0
if (mousex>bposx) and (mousex<(sizex+bposx)) and (mousey>bposy) and (mousey<(sizey+bposy)){
if ml{cntt=0:if ml!mlbak {buton=1}
color 50,100,150:boxf bposx,bposy,bposx+sizex,bposy+sizey:color 60,70,80:boxf bposx+1,bposy+1,bposx+sizex-1,bposy+sizey-1
pos bposx+2,bposy+4 :gmode 2 :gcopy 1,0,0,sizex,sizey :gmode 6,,,60 :gcopy 1,0,0,sizex,sizey
}else{cntt++
color 50,100,150:boxf bposx,bposy,bposx+sizex,bposy+sizey:color 60,70,80:boxf bposx+1,bposy+1,bposx+sizex-1,bposy+sizey-1
pos bposx+4,bposy+8 :gmode 6,,,255 :gcopy 1,0,sizey*(cntt/8\16),sizex,sizey
pos bposx,bposy :gmode 2 :gcopy 1,0,sizey*(cntt/8\16),sizex,sizey
if (cntt*6\512)<256{gmode 5,,,(cntt*6\256)}else{gmode 5,,,256-(cntt*6\256)}
gcopy 1,0,sizey*(cntt/8\16),sizex,sizey
}
}else{cntt=0
color 50,100,150:boxf bposx,bposy,bposx+sizex,bposy+sizey:color 60,70,80:boxf bposx+1,bposy+1,bposx+sizex-1,bposy+sizey-1
pos bposx+4,bposy+8 :gmode 6,,,255 :gcopy 1,0,0,sizex,sizey
pos bposx,bposy :gmode 2 :gcopy 1,0,0,sizex,sizey
}
mlbak=ml
return buton
もっと単純なのにした方がよかったかな・・・
何やってるか読みたい場合は一命令づつ改行してくれ