Hatena::Groupnadesiko

雪乃☆雫のなでしこ日和

2009-05-24

なでしこの苗を買ったよ!

| 22:14

 あかりちゃんと、かほりちゃんです★

 矮性で横に株が広がるタイプなので、グラウンドカバーによさそうです♪

 さて、サイコロは、もう少し作りこむつもりですが、一通り動くようになったのでUPしておきます。

#------------------------------------------------------------
#   ちょぼいち
#さいころ1個を振り、出た目に賭ける賭博。賭け者は1から6の好きな目に賭け、
#当たれば4~5の配当が払われ、負けると全額没収される。
#------------------------------------------------------------


#-----母艦設計------------------------------------------------
!母艦設計=「母艦の可視はオフ母艦のタイトルは「さいころ」
母艦のWは640。母艦のHは480。
母艦を$FFDDAAで画面クリア母艦のスタイルは「枠固定」
母艦オフに最大化ボタン有効変更。
母艦中央移動

『#親部品名,部品名,テキスト,ショートカット,オプション,イベント
なし,ファイルメニュー,ファイル(&F),,,
 -,開くメニュー,開く(&O),Ctrl+O,,
 -,-,,,,
 -,閉じるメニュー,閉じる(&X),Ctrl+X,,終わる
』をメニュー一括作成。

#------------------------------------------------------------

#-----宣言---------------------------------------------------
ダイスサイズとは整数=100
半径とは整数=10

元手とは整数=100
所持金とは整数=元手
賭け金とは整数=0
配当とは整数=4
予想とは整数。

賭場サイズとは整数=300
板サイズとは整数=70
左マージンとは整数=15
上マージンとは整数=15

マウス待ちとは整数オン
出目とは整数。

裏画面とはイメージの可視はオフのWはダイスサイズ*6。のHはダイスサイズ+板サイズ*2。

処理用とはイメージの可視はオフ。


#---サイコロ振るところ----
賭場とはイメージの可視はオフのWは賭場サイズ。のHは賭場サイズ。
賭場を$775533で画面クリア。

#---胴元がしゃべるところ----
テキストウィンドウとはイメージの可視はオフのWは600。のHは100。
テキストウィンドウを$222222で画面クリア。

#---所持金表示----
文字書体は「MS 明朝|24|」。
母艦の左マージン+賭場サイズ+50,上マージン+20へ「所持金:」を文字描画母艦の左マージン+賭場サイズ+170,上マージン+20,50,33へ「{所持金}」を右,下で枠内文字描画母艦の左マージン+賭場サイズ+230,上マージン+20へ「文」を文字描画。

#---勝負ボタン----
勝負ボタンとはボタンのテキストは「勝負!」
のXは左マージン+賭場サイズ+60。のYは上マージン+板サイズ*2+120。
のWは80。のHは30。
文字書体は「MS 明朝|18|」。
の有効はオフ。
勝負ボタンのクリックした時は~
  マウス待ち=オフ。
  勝負ボタンの有効はオフ。
  待ったボタンの有効はオフ。
  サイコロ振る。
  勝ち負け判定。

#---待ったボタン----
待ったボタンとはボタンのテキストは「待った」
のXは左マージン+賭場サイズ+170。のYは上マージン+板サイズ*2+120。
のWは80。のHは30。
文字書体は「MS 明朝|18|」。
の有効はオフ。
待ったボタンのクリックした時は~
  所持金=所持金+掛け金。
  掛け金=0。
  所持金表示。
  勝負ボタンの有効はオフ。
  待ったボタンの有効はオフ。
  「1」で胴元セリフ。


#---お金を賭けるところ----
賭け板とはイメージの可視はオフのWは板サイズ*2。のHは板サイズ*6

賭け板設定とは配列。 #0ボタン表示位置X、1ボタン表示位置Y、2ボタン幅、ボタン高さ
6
  賭け板設定¥回数,0は左マージン+賭場サイズ+50+(板サイズ*((回数-1)%3))。
  賭け板設定¥回数,1は上マージン+80+(板サイズ*((回数-1)/3を切り下げ))
  賭け板設定¥回数,2は板サイズ
  賭け板設定¥回数,3は板サイズ

#---お金を賭ける窓----
賭け窓とはフォーム。賭け窓をウィンドウ背景色画面クリア。
賭け窓の幅は240。賭け窓の高さは180。
賭け窓のXは母艦のX+(母艦の幅-賭け窓の幅)/2。賭け窓のYは母艦のY+(母艦の高さ-賭け窓の高さ)/2。
賭け窓はオフにシステムメニューボタン有効変更。
賭け窓のスタイルは「枠固定」

金額スピンとはスピンエディタ。金額スピンの親部品は賭け窓。
金額スピンのXは50。金額スピンのYは60。
金額スピンの文字サイズは22。
金額スピンの幅は120。金額スピンの高さは30。
金額スピンの最小値は1。

OKボタンとはボタン。OKボタンの親部品は賭け窓。
OKボタンのXは30。OKボタンのYは120
OKボタン文字書体は「MS 明朝|10|」。
OKボタンのテキストは「OK」
OKボタンのクリックした時は~
  掛け金=金額スピンのテキスト。
  所持金=所持金-掛け金。
  塗り色は$FFDDAA。線色は$FFDDAA。線太さは0。
  賭け窓をウィンドウ背景色画面クリア。
  賭け窓の可視はオフ。賭け窓を閉じる。
  所持金表示。
  「2」で胴元セリフ。

キャンセルボタンとはボタンキャンセルボタンの親部品は賭け窓。
キャンセルボタンのXは130。キャンセルボタンのYは120
キャンセルボタン文字書体は「MS 明朝|10|」。
キャンセルボタンのテキストは「キャンセルキャンセルボタンのクリックした時は~
  賭け窓をウィンドウ背景色画面クリア。
  賭け窓を閉じる
  「0」で胴元セリフ。

#------------------------------------------------------------


#-----メインルーチン-------------------------------------------
母艦の可視はオン。

サイコロ準備
ゲーム画面準備

#------------------------------------------------------------

#-----マウス入力待ち-------------------------------------------
母艦マウス移動した時は~
  もし、マウス待ち=オンならば
    賭け板の賭け板設定を母艦へマウスインアウト反映。
  違えば
    戻る母艦のマウス押した時は~
  もし、マウス待ち=オンならば
    もし母艦の押されたボタン=左ならば
      もし、前選択ボタン=0でなければ
        もし、前選択ボタン=1ならば
          予想=3
        違えばもし、前選択ボタン=3ならば
          予想=1
        違えば、
          予想=前選択ボタン
        賭ける
    違えば
      戻る
  違えば
    戻る
#------------------------------------------------------------

#------------------------------------------------------------
*賭ける
  金額スピンの最大値は所持金。
  金額スピンのテキストは所持金。
  文字色ウィンドウ文字色文字書体は「MS 明朝|16|」
  賭け窓の30,20へ「{予想} 番に賭けるよ!」を文字描画。
  賭け窓をモーダル表示。
#------------------------------------------------------------
*所持金表示
  文字書体は「MS 明朝|24|」。文字色は黒。
  母艦の左マージン+賭場サイズ+170,上マージン+20から左マージン+賭場サイズ+170+50,上マージン+20+33へ四角。
  母艦の左マージン+賭場サイズ+170,上マージン+20,50,33へ「{所持金}」を右,下で枠内文字描画。
#------------------------------------------------------------

#-----サイコロを振る-------------------------------------------
*サイコロ振る
    r=6の乱数。出目=r+1。
    x=r*ダイスサイズ。y=0。
    
    処理用をダイスサイズ,ダイスサイズへ画像高速リサイズ。
    裏画面のx,y,ダイスサイズ,ダイスサイズを処理用の0,0へ画像部分コピー。
    処理用を母艦の左マージン+(賭場サイズ/2-ダイスサイズ/2),上マージン+(賭場サイズ/2-ダイスサイズ/2)へ画像合成改。
#------------------------------------------------------------

#-----勝ち負け判定-------------------------------------------
*勝ち負け判定
  もし、出目=予想ならば
    「当たり」と言う。
    所持金=所持金+掛け金*配当。
    所持金表示。
  違えば
    「外れ」と言う。

  もし、所持金≦0ならば
    「破産しました」と言う。
    終わり。
  違えば
    賭場を母艦の左マージン,上マージンへ画像コピー。
    「1」で胴元セリフ。
#------------------------------------------------------------

#-----ゲーム画面準備-------------------------------------------
*ゲーム画面準備

  #---お金を賭けるところ----
  処理用を板サイズ,板サイズ*6へ画像高速リサイズ。
  数を0から5まで繰り返す
    塗り色は$DDAA00。線太さは0。
    x=0
    y=数*板サイズ
    処理用のx,yからx+板サイズ,y+板サイズへ四角
    数で条件分岐
      0ならば
        板数=「三」
      1ならば
        板数=「二」
      2ならば
        板数=「一」
      3ならば
        板数=「四」
      4ならば
        板数=「五」
      5ならば
        板数=「六」
    文字サイズは42。文字色は$000000。文字書体は「MS 明朝」
    処理用のx+5,y+5へ板数を文字描画。

  処理用を賭け板の0,0へ画像コピー。
  処理用を画像ネガポジ。
  処理用を賭け板の板サイズ,0へ画像コピー。
  
  賭場を母艦の左マージン,上マージンへ画像コピー。
  テキストウィンドウを母艦の左マージン,上マージン+賭場サイズ+10へ画像コピー。
  賭け板の0,0を賭け板設定で母艦へマウスオーバーボタン表示。
  「1」で胴元セリフ
#------------------------------------------------------------

#-----胴元のセリフ-------------------------------------------
*胴元セリフ(Sで)
  テキストウィンドウを母艦の左マージン,上マージン+賭場サイズ+10へ画像コピー。
  文字色白色文字書体は「MS 明朝|16|」。
  母艦の左マージン+10,上マージン+賭場サイズ+20へ「【胴元】」を文字描画。
  もし、S=「0」ならば
    母艦の左マージン+30,上マージン+賭場サイズ+50へ「さあ、張った張った!」を100で文字遅延描画

  もし、S=「1」ならば
    母艦の左マージン+30,上マージン+賭場サイズ+50へ「どの目にいくら張るんだい?」を100で文字遅延描画
    マウス待ち=オン。

  もし、S=「2」ならば
    母艦の左マージン+30,上マージン+賭場サイズ+50へ「{予想}に{掛け金}文だな?」を100で文字遅延描画
    母艦の左マージン+30,上マージン+賭場サイズ+75へ「良ければ勝負だ!」を100で文字遅延描画
    勝負ボタンの有効はオン。
    待ったボタンの有効はオン。
    マウス待ち=オフ。
#------------------------------------------------------------


#-----サイコロ画像の準備---------------------------------------
*サイコロ準備
  裏画面を$000000で画面クリア。
    数を0から5まで繰り返す。
    もし、数=0ならば                #1のサイコロ
      線色は$000001。塗り色は$FFFFFF        #地の色は白
      外枠。                    #ダイスの外枠
      線色は$FF0000。塗り色は$FF0000        #目の色は赤
      半径=15。                 #大き目
      中点。
    
    もし、数=1ならば                #2のサイコロ
      線色は$000001。塗り色は$FFFFFF
      外枠。
      線色は$000001。塗り色は$000001
      半径=10。
      左上点。右下点。
    
    もし、数=2ならば                #3のサイコロ
      線色は$000001。塗り色は$FFFFFF
      外枠。
      線色は$000001。塗り色は$000001
      半径=10。
      中点。左上点。右下点。
    
    もし、数=3ならば                #4のサイコロ
      線色は$000001。塗り色は$FFFFFF
      外枠。
      線色は$000001。塗り色は$000001
      半径=10。
      左上点。左下点。右上点。右下点。
    
    もし、数=4ならば                #5のサイコロ
      線色は$000001。塗り色は$FFFFFF
      外枠。
      線色は$000001。塗り色は$000001
      半径=10。
      中点。左上点。左下点。右上点。右下点。
    
    もし、数=5ならば                #6のサイコロ
      線色は$000001。塗り色は$FFFFFF
      外枠。
      線色は$000001。塗り色は$000001
      半径=9。
      左上点。左下点。右上点。右下点。左中点。右中点。

*外枠
  x=数*ダイスサイズ。y=0。
  x2=x+ダイスサイズ。y2=ダイスサイズ。
  裏画面のx,yからx2,y2へ30,30で角丸四角。

*中点
  xx=(x+ダイスサイズ/2)-半径。yy=ダイスサイズ/2-半径
  xx2=(x+ダイスサイズ/2)+半径。yy2=ダイスサイズ/2+半径。
  裏画面のxx,yyからxx2,yy2へ。

*左上点
  xx=(x+ダイスサイズ/4)-半径。yy=ダイスサイズ/4-半径
  xx2=(x+ダイスサイズ/4)+半径。yy2=ダイスサイズ/4+半径。
  裏画面のxx,yyからxx2,yy2へ。

*左下点
  xx=(x+ダイスサイズ/4)-半径。yy=(ダイスサイズ/4)*3-半径
  xx2=(x+ダイスサイズ/4)+半径。yy2=(ダイスサイズ/4)*3+半径。
  裏画面のxx,yyからxx2,yy2へ。

*右上点
  xx=(x+ダイスサイズ/4*3)-半径。yy=ダイスサイズ/4-半径
  xx2=(x+ダイスサイズ/4*3)+半径。yy2=ダイスサイズ/4+半径。
  裏画面のxx,yyからxx2,yy2へ。

*右下点
  xx=(x+ダイスサイズ/4*3)-半径。yy=(ダイスサイズ/4)*3-半径
  xx2=(x+ダイスサイズ/4*3)+半径。yy2=(ダイスサイズ/4)*3+半径。
  裏画面のxx,yyからxx2,yy2へ。

*左中点
  xx=(x+ダイスサイズ/4)-半径。yy=ダイスサイズ/2-半径
  xx2=(x+ダイスサイズ/4)+半径。yy2=ダイスサイズ/2+半径。
  裏画面のxx,yyからxx2,yy2へ。

*右中点
  xx=(x+ダイスサイズ/4*3)-半径。yy=ダイスサイズ/2-半径
  xx2=(x+ダイスサイズ/4*3)+半径。yy2=ダイスサイズ/2+半径。
  裏画面のxx,yyからxx2,yy2へ。

#------------------------------------------------------------

#------------------------------------------------------------
●枠内文字描画({グループ=?}OBJのX,Y,W,HへSをA,Vで)
  xxとは整数。yyとは整数。
  もし、A=左ならば
    xx=X
  違えばもし、A=中央ならば
    xx=X+(W-(Sの文字幅取得))/2
  違えばもし、A=右ならば
    xx=(X+W)-(Sの文字幅取得)
  もし、V=上ならば
    yy=Y
  違えばもし、V=中央ならば
    yy=Y+(H-(Sの文字高さ取得))/2
  違えばもし、V=下ならば
    yy=(Y+H)-(Sの文字高さ取得)
  OBJのxx,yyへSを文字描画。
#------------------------------------------------------------
●画像合成改({グループ}Sを{グループ}DのX,Yへ)
 Cとは整数
//マスク画像はSの透過色を黒色それ以外を白色にしたもの
 マスク画像をイメージとして作成
 マスク画像→可視はオフ
 マスク画像→画像はS→名前
 マスク画像の0,0を画像色取得してCに代入
 マスク画像をCで画像マスク作成
//ソース画像はSの透明色を黒色に変換したもの
 ソース画像をイメージとして作成
 ソース画像→可視はオフ
 ソース画像→画像はS→名前
 マスク画像を画像ネガポジ
 マスク画像をソース画像の0,0へ画像ANDコピー
 マスク画像を画像ネガポジ
//合成実行
 マスク画像をDのX,Yへ画像ANDコピー
 ソース画像をDのX,Yへ画像ORコピー
 マスク画像→壊す
 ソース画像→壊す
#------------------------------------------------------------

●マウスオーバーボタン表示({グループ=?}OBJ1のX,YをAで{グループ=?}OBJ2へ)
  A\0,0=X。A\0,1=Y
  (Aの要素数-1)
    OBJ1のX,Y+(回数-1)*(A¥回数,3),(A¥回数,2),(A¥回数,3)をOBJ2の(A¥回数,0),(A¥回数,1)へ画像部分コピー。


●マウスインアウト反映({グループ=?}OBJ1のAを{グループ=?}OBJ2へ)
  (Aの要素数-1)
    もし、((OBJ2→マウスX)>(A¥回数,0))かつ
      ((OBJ2→マウスX)<(A¥回数,0)+(A¥回数,2))かつ
      ((OBJ2→マウスY)>(A¥回数,1))かつ
      ((OBJ2→マウスY)<(A¥回数,1)+(A¥回数,3))ならば
        選択ボタン回数。
    違えばもし、(回数=Aの要素数)かつ(選択ボタン=0)ならば
      選択ボタンは0。
    ここまで

  もし、前選択ボタン<>選択ボタンならば
    もし、前選択ボタン>0ならば
      OBJ1の(A\0,0),(A\0,1)+(前選択ボタン-1)*(A¥(前選択ボタン),3),(A¥(前選択ボタン),2),(A¥(前選択ボタン),3)をOBJ2の(A¥(前選択ボタン),0),(A¥(前選択ボタン),1)へ画像部分コピー。
    もし、選択ボタン>0ならば
      OBJ1の(A\0,0)+(A¥(選択ボタン),2),(A\0,1)+(選択ボタン-1)*(A¥(選択ボタン),3),(A¥(選択ボタン),2),(A¥(選択ボタン),3)をOBJ2の(A¥(選択ボタン),0),(A¥(選択ボタン),1)へ画像部分コピー。
  前選択ボタン=選択ボタン
  選択ボタン=0
  描画処理反映

#------------------------------------------------------------

 あと、またまた新発見!

 太字とか斜体とかの文字スタイルの指定の仕方がわかりました。

文字書体は「フォント名|サイズ|スタイル」

 のように、「|」で区切って指定できるようです。

 文字書体文字サイズも一緒に指定できるなんて、便利じゃないですか~♪

 スタイルは「太字斜体」みたいに続けて書くことで、複数指定できるようです。

トラックバック - http://nadesiko.g.hatena.ne.jp/snowdrops89/20090524