Hatena::Groupnadesiko

雪乃☆雫のなでしこ日和

2016-05-22

とりあえず石を落とすところまで・・・

| 05:24

 は別に、はまったからサイコロに逃げていたとゆーわけではないんだけど・・・(本当!)

 またまたナゾ現象が発生していたのも事実!(ToT)

 関数の中で動的作成したイメージを壊す件は、「壊す」をやめて「VCL_FREE」にしたら、正常動作するようになったと思ってたんだけど、やっぱりダメかもしない

 サイコロくらいならいいんだろうけど、落下する石の合成を何十、何百と繰り返しているうちに、突然エラーも出さずに落ちたりしてね;

 ちなみに、関数内部でイメージ部品を動的作成して壊す(VCL_FREE)のをやめて、普通に外部で静的に作ったイメージ部品を使って画像合成通を動かしたら正常動作している風味なんで、やっぱりここら辺の問題なんだろうとおもう。


 のうちやる気が出たら色々試してみることにして(一発で出る問題と違って、再現にものすご~く時が掛かる上にエラーすら出ないから、もうヤダ><)とりあえずは、画像合成ないで、コピーで済ます方針に変更(爆)

 まあ、石用の裏画面にメイン画面と同じ格子を描いとくってだけのことですw

 ・・・と、ゆうわけでこうなった。

#とりあえず石を落とす。(画像合成不使用版)

#-----母艦設計----------------------------------------------------------
!母艦設計=「母艦の可視はオフ」

#---メニュー----
『#親部品名,部品名,テキスト,ショートカット,オプション,イベント
なし,ファイルメニュー,ファイル(&F),,,
 -,新規メニュー,新しいゲーム(&N),Ctrl+N,,新規ゲーム
 -,-,,,,
 -,成績表メニュー,成績表(&S),Ctrl+S,,成績表表示
 -,成績リセットメニュー,成績リセット(&D),Ctrl+D,,成績リセット
 -,-,,,,
 -,閉じるメニュー,閉じる(&X),Ctrl+X,,終わる
なし,設定メニュー,設定(&O),,,
 -,選択メニュー,コントローラー選択(&C),,,
 --,キーボード選択メニュー,キーボード(&K),,チェック,
 --,ジョイパッド選択メニュー,ジョイパッド(&J),,,
 -,-,,,,
 -,キーボード設定メニュー,キーボードのキー設定(&K),,,
 -,ジョイパッド設定メニュー,ジョイパッドのキー設定(&J),,,
なし,ヘルプメニュー,ヘルプ(&H),,,
 -,ルールメニュー,遊び方(&R),Ctrl+R,,遊び方
 -,-,,,,
 -,バージョンメニュー,バージョン情報(&A),Ctrl+A,,バージョン
』をメニュー一括作成。

#---母艦----
母艦のタイトルは「なでこら」
母艦を$FFBBAAで画面クリア母艦のスタイルは「枠固定」
母艦オフに最大化ボタン有効変更。
母艦のクライアント幅は330。母艦のクライアント高さは480。
母艦中央移動
#-----------------------------------------------------------------------

#-----宣言--------------------------------------------------------------
マス目とは整数=32。

石落下位置Xとは整数=マス目*3。
石落下位置Yとは整数=0-マス目*2。
落下Xとは整数=石落下位置X
落下Yとは整数=石落下位置Y

メインXとは整数=30。
メインYとは整数=50。
スコアXとは整数=メインX/2
スコアYとは整数=メインY/3
右辺ラベルXとは整数=メインX+マス目*6+25
ネクストXとは整数=メインX+マス目*6+40
ネクストYとは整数=メインY+30
レベルYとは整数=メインY+マス目*3+80

石とは配列    #石の種類(形状,色)
石=「●,$DD0000
◆,$FF7700
■,$0077FF
★,$EEEE00
▲,$EE00EE
▼,$00DD00」
#-----------------------------------------------------------
次石とは配列   #次に落下する石
落下石とは配列  #落下中の石

#---裏画面----
石用とはイメージ。
石用について。
  可視はオフ。
  幅はマス目*6。高さはマス目

マス目用とはイメージ
マス目用について
  可視はオフ
  幅はマス目。高さはマス目。
  $332211で画面クリア。

石転用とはイメージ。
石転用について。
  可視はオフ。
  幅はマス目。高さはマス目*3。

メイン合成用とはイメージ
メイン合成用について
  可視はオフ。
  幅はマス目*6。高さはマス目*13。

#---画面----
表画面とはイメージ
表画面について
  Xは0。Yは0。
  幅は母艦のクライアント幅。高さは母艦のクライアント高さ。
  $FFBBAAで画面クリア。

メイン画面とはイメージ
メイン画面について
  可視はオフ。
  幅はマス目*6。高さはマス目*13。

次石表示用とはイメージ
次石表示用について。
  可視はオフ。
  幅はマス目。高さはマス目*3。

落下用とはイメージ
落下用について。
  可視はオフ。
  幅はマス目。高さはマス目*3。
#-----------------------------------------------------------

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

次石決定
次石落下
落下処理
メインループ
#-----------------------------------------------------------------------
*メインループ
  オン
    0.01秒待つ
    落下処理。
#-----------------------------------------------------------------------
*次石決定
  3
    r=6の乱数。次石¥(回数-1)=r。
    x=r*マス目。y=0。
    石用のx,y,マス目,マス目を次石表示用の0,(回数-1)*マス目へ画像部分コピー。
    次石表示用を表画面のネクストX,ネクストYへ画像コピー。

*次石落下
  次石表示用を落下用の0,0へ画像コピー
  落下石=次石。
  次石決定
  落下X=石落下位置X。落下Y=石落下位置Y

*落下処理
  落下用をメイン合成用の落下X,落下Yへ画像コピー。
  メイン合成用を表画面のメインX,メインYへ画像コピー
  メイン画面をメイン合成用の0,0へ画像コピー。
  0.5秒待つ。

  落下Y=落下Y+マス目
#-----------------------------------------------------------------------
*画面準備
  # マス目を描く
  線太さは0。線色は$443322。塗り色は$443322。
  マス目用の0,0から2,マス目-4へ四角。
  マス目用の0,0からマス目-4,2へ四角。
  線太さは0。線色は$221100。塗り色は$221100。
  マス目用のマス目-2,4からマス目,マス目へ四角。
  マス目用の4,マス目-2からマス目,マス目へ四角。

  #マス目をコピー。
  3
    C=回数-1
    マス目用を次石表示用の0,C*マス目へ画像コピー。

  メイン画面初期化
  メイン画面をメイン合成用の0,0へ画像コピー。

  # 表画面
  文字書体は「MS Pゴシック|14|太字」。文字色は$FFFFFF。
  表画面のスコアX+1,スコアY+2へ「すこあ」を文字描画。
  表画面の右辺ラベルX+1,ネクストY-25+2へ「ねくすと」を文字描画。
  表画面の右辺ラベルX+1,レベルY-25+2へ「れべる」を文字描画。
  文字色は$CC3322。
  表画面のスコアX,スコアYへ「すこあ」を文字描画。
  表画面の右辺ラベルX,ネクストY-25へ「ねくすと」を文字描画。
  表画面の右辺ラベルX,レベルY-25へ「れべる」を文字描画。

  メイン画面を表画面のメインX,メインYへ画像コピー。
  次石表示用を表画面のネクストX,ネクストYへ画像コピー。
  スコア表示。
  レベル表示。

  # 石用に石を描く
  6
    C=回数-1
    マス目用を石用のC*マス目,0へ画像コピー。
    文字書体は「MS ゴシック|23|太字」。文字色は石¥C,1。
    石用のC*マス目,0へ石¥C,0を文字表示。

*スコア表示
  文字書体は「MS Pゴシック|14|太字」
  XXとは整数=「すこあ」の文字幅取得+スコアX+2
  線色は$FFDDCC。塗り色は$FFDDCC。文字書体は「MS Pゴシック|18|太字」。文字色は$882211。
  表画面のXX,スコアY-5からメインX+マス目*6,スコアY+23へ四角。

*レベル表示
  レベル=消去数/50を切り下げ
  線色は$FFDDCC。塗り色は$FFDDCC。文字書体は「MS Pゴシック|18|太字」。文字色は$882211。
  表画面の右辺ラベルX,レベルYから右辺ラベルX+65,レベルY+30へ四角。

*メイン画面初期化
  6
    マス目用をメイン画面のマス目*(回数-1),0へ画像コピー。
  13
    メイン画面の0,0,マス目*6,マス目をメイン画面の0,マス目*(回数-1)へ画像部分コピー。
#-----------------------------------------------------------------------

 本当にタダ石を出して落としているだけだけどねぇ~www

(だって、石の固定をせずに、とりあえず移動部分を作って実験していたら、上記の問題が発生したんだもん!)

 だから、石を転させたりキーボードで左右に移動したりの部分はもう出来ているようなもんだけど、画像合成ない版に合わせて書き換えた上で、石を固定して、の石との当たり判定を付けてから、UPするよてい~。

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