2015年4月20日月曜日

まずは抵抗器の画像を作り出すプログラムを



そういえばまだ抵抗器のゲームうpしてなかったなぁと

近日中に!きっと近日中に!


あ、BOOTHとか試してみたい。




さておき、プログラミングのお話です。

えーとりあえず、今回の制作で真っ先に考えたのが、抵抗器の画像を作り出すところです。


まず抵抗器の素体の画像を準備しました。
こんな感じのを。
ちなみに、自分で書きましたよ?
Edgeでドットポチポチ。

透過色もできて便利便利。


それで作った画像をcelloadで仮想画面に読み込んだ後、
別の仮想画面にcelputします。
透過色もきちんと設定したうえでですよ?


そのあと、普通にboxfを使ってカラーコードを入れていきます。

あらかじめ、数値ごとのカラーコードの色のRGB値を配列に格納しておきます。

それを読みだしてcolorに指定します。

で、あとはカラーコードの位置に合わせた座標でboxfするだけです。


これだけで抵抗器の画像が出来上がってしまいました!



ゲーム本編を作る前に、抵抗器の画像を生成するエンジンを作ろうと
それだけのスクリプトは書きました。
後でそれをコピペしてごちゃごちゃやって作ってます。

というわけでその抵抗器の画像を生成するスクリプトの方を。

ちなみに私はモジュールとかわかんないっす。

celload "r0.gif",1
celdiv 1,64,32
screen 0,250,330
dim cnum,10,3//有効数字(a,b)aは数字、bは0→r、1→g、2→bを表す
cnum(0,0)=000:cnum(0,1)=000:cnum(0,2)=000//黒
cnum(1,0)=200:cnum(1,1)=080:cnum(1,2)=000//茶
cnum(2,0)=255:cnum(2,1)=000:cnum(2,2)=000//赤
cnum(3,0)=255:cnum(3,1)=150:cnum(3,2)=000//橙
cnum(4,0)=255:cnum(4,1)=255:cnum(4,2)=000//黄
cnum(5,0)=000:cnum(5,1)=200:cnum(5,2)=000//緑
cnum(6,0)=000:cnum(6,1)=000:cnum(6,2)=255//青
cnum(7,0)=180:cnum(7,1)=000:cnum(7,2)=180//紫
cnum(8,0)=150:cnum(8,1)=150:cnum(8,2)=150//灰
cnum(9,0)=255:cnum(9,1)=255:cnum(9,2)=255//白
dim cjou,8,3//乗数数字aは数字+2、bは上に同じ
cjou(0,0)=220:cjou(0,1)=220:cjou(0,2)=225//銀
cjou(1,0)=230:cjou(1,1)=180:cjou(1,2)=034//金
cjou(2,0)=000:cjou(2,1)=000:cjou(2,2)=000//黒
cjou(3,0)=200:cjou(3,1)=080:cjou(3,2)=000//茶
cjou(4,0)=255:cjou(4,1)=000:cjou(4,2)=000//赤
cjou(5,0)=255:cjou(5,1)=150:cjou(5,2)=000//橙
cjou(6,0)=255:cjou(6,1)=255:cjou(6,2)=000//黄
cjou(7,0)=000:cjou(7,1)=200:cjou(7,2)=000//緑
dim cgos,4,3//誤差aは0→土1、1→土2、2→土5、3→土10、bは上に同じ
cgos(0,0)=200:cgos(0,1)=080:cgos(0,2)=000//茶
cgos(1,0)=255:cgos(1,1)=000:cgos(1,2)=000//赤
cgos(2,0)=230:cgos(2,1)=180:cgos(2,2)=034//金
cgos(3,0)=220:cgos(3,1)=220:cgos(3,2)=225//銀
buffer 2,64,32//抵抗器画像合成用バッファ
*reset
r=0:x=0
randomize
screen 0,250,330
color 
mes "適当な抵抗値"
input r
pos 65,20
mes "*10^
pos 100,20
input x
pos 0,40
button "実行",*main
stop
*main
buffer 2,64,32
celput 1,0
r1=r\10
r2=r/10
gos=rnd(4)
color cnum(r2,0),cnum(r2,1),cnum(r2,2)
boxf 18,3,20,28
color cnum(r1,0),cnum(r1,1),cnum(r1,2)
boxf 25,3,27,28
color cjou(x+2,0),cjou(x+2,1),cjou(x+2,2)
boxf 32,3,34,28
color cgos(gos,0),cgos(gos,1),cgos(gos,2)
boxf 42,3,45,28
gsel 0
rot=rnd(10)
pos 0,60
if rot!=0{
celput 2,0,2,2
}else{
celput 2,0,2,2,M_PI
}


コメントは面倒なので入れてないです。
短いし読める人は読めるよね?ってことで

上の画像をDLしてこのスクリプトと同じフォルダに入れれば動くはず

よかったら試してみてくださいね!


ちなみにHSPですよ。なんか書くの忘れてました。

0 件のコメント:

コメントを投稿