| 
 | ブロック崩し
  投稿者 : 海ンちゅー(sechttp505.sec.ppp.nifty.com) - 2005/01/07(Fri) 16:23 
  No.7646
 |  | 
 |  | 
 
 | 
 | ↑のプロジェクトのことですが、
 ブロックをアニメーションしようとして↓のようにしましたが、
 
 if (pa==$pat_block+14) {
 updateEx(10);
 f=$pat_block+14 ;  // 置換前のキャラクタパターン
 t=$pat_block+15   ;  // 置換後のキャラクタパターン
 // $pat_from を $pat_to に置換
 for (y=0; y<$map.height ; y++) {
 for (x=0; x<$map.width ; x++) {
 if ($map.get(x,y)==f) $map.set(x,y,t);
 }
 }
 }
 if (pa==$pat_block+15) {
 updateEx(10);
 f=$pat_block+15 ;  // 置換前のキャラクタパターン
 t=$pat_block+16   ;  // 置換後のキャラクタパターン
 // $pat_from を $pat_to に置換
 for (y=0; y<$map.height ; y++) {
 for (x=0; x<$map.width ; x++) {
 if ($map.get(x,y)==f) $map.set(x,y,t);
 }
 }
 }
 if (pa==$pat_block+16) {
 updateEx(10);
 f=$pat_block+16 ;  // 置換前のキャラクタパターン
 t=$pat_block+17   ;  // 置換後のキャラクタパターン
 // $pat_from を $pat_to に置換
 for (y=0; y<$map.height ; y++) {
 for (x=0; x<$map.width ; x++) {
 if ($map.get(x,y)==f) $map.set(x,y,t);
 }
 }
 }
 if (pa==$pat_block+17) {
 updateEx(10);
 f=$pat_block+17 ;  // 置換前のキャラクタパターン
 t=$pat_block+18   ;  // 置換後のキャラクタパターン
 // $pat_from を $pat_to に置換
 for (y=0; y<$map.height ; y++) {
 for (x=0; x<$map.width ; x++) {
 if ($map.get(x,y)==f) $map.set(x,y,t);
 }
 }
 }
 if (pa==$pat_block+18) {
 updateEx(10);
 f=$pat_block+18 ;  // 置換前のキャラクタパターン
 t=$pat_block+19   ;  // 置換後のキャラクタパターン
 // $pat_from を $pat_to に置換
 for (y=0; y<$map.height ; y++) {
 for (x=0; x<$map.width ; x++) {
 if ($map.get(x,y)==f) $map.set(x,y,t);
 }
 }
 }
 if (pa==$pat_block+19) {
 updateEx(10);
 f=$pat_block+19 ;  // 置換前のキャラクタパターン
 t=$pat_block+20   ;  // 置換後のキャラクタパターン
 // $pat_from を $pat_to に置換
 for (y=0; y<$map.height ; y++) {
 for (x=0; x<$map.width ; x++) {
 if ($map.get(x,y)==f) $map.set(x,y,t);
 }
 }
 }
 if (pa==$pat_block+20) {
 updateEx(10);
 f=$pat_block+20 ;  // 置換前のキャラクタパターン
 t=$pat_block+14   ;  // 置換後のキャラクタパターン
 // $pat_from を $pat_to に置換
 for (y=0; y<$map.height ; y++) {
 for (x=0; x<$map.width ; x++) {
 if ($map.get(x,y)==f) $map.set(x,y,t);
 }
 }
 }
 なぜかアニメーションしません。
 どうすれば直りますか。
 
 検索キーワード
 ブロック くずし 崩し アニメ
 | 
 
 
 | Re: ブロック崩し
  投稿者 : 海ンちゅー(sechttp505.sec.ppp.nifty.com) - 2005/01/07(Fri) 16:34 
  No.7647
 |  | 
 |  | 
 
 
 | Re: ブロック崩し
  投稿者 : 海ンちゅー(sechttp506.sec.ppp.nifty.com) - 2005/01/07(Fri) 16:39 
  No.7648
 |  | 
 |  | 
 
 
 | Re: ブロック崩し
  投稿者 : N@N(actkyo073214.adsl.ppp.infoweb.ne.jp) - 2005/01/07(Fri) 16:59 
  No.7649
 |  | 
 |  | 
 
 
 | 長いのでまとめられますね。 
 
 //clockは、$pat_block+14から何個目かを表します。
 while(1){
 for (clock=0;clock<=6;clock++){//変数clockを自動的に0〜6→0〜と変化させます。
 updateEx(10);
 for (y=0; y<$map.height ; y++) {
 for (x=0; x<$map.width ; x++) {
 if ($map.get(x,y)==$pat_block+14+bclock){
 $map.set(x,y,$pat_block+14+clock);//変更前だったら一つ進める
 }
 }
 }
 bclock=clock;//次のパターン変更前のclockの値を蓄えます。
 }
 }
 
 updateEx(10);がonBeforeMove内で動いてくれたかどうか・・・多分大丈夫だと思います。シークレットオブジェクトで確認済みです。
 | 
 
 
 | Re: ブロック崩し
  投稿者 : xsb007(YahooBB219171009010.bbtec.net) - 2005/01/08(Sat) 09:36 
  No.7652
 |  | 
 |  | 
 
 
 | onBeforeMoveでやるとちらつくみたいなので、SecretCharでやるしかありません。 
 extends SecretChar;
 
 while (1) {
 for(x=0; x<$map.width; x++) {
 for(y=0; y<$map.height; y++) {
 
 pa=$map.get(x,y);
 pa2=pa-$pat_block;
 
 if (pa2>=14 && pa2<=19) $map.set(x,y,pa+1);
 if (pa2>=21 && pa2<=26) $map.set(x,y,pa+1);
 if (pa2>=28 && pa2<=33) $map.set(x,y,pa+1);
 
 if (pa2==20 || pa2==27 || pa2==34) $map.set(x,y,pa-6);
 }
 }
 UpdateEx(10);
 }
 
 ただ、アニメーションは重いので、遅いマシンのことも考えて、アニメーションをOFFにできるようにするといいかもしれません。
 | 
 
 
 | Re: ブロック崩し
  投稿者 : 海ンちゅー(sechttp501.sec.ppp.nifty.com) - 2005/01/09(Sun) 22:29 
  No.7660
 |  | 
 |  | 
 
 
 | Re: ブロック崩し
  投稿者 : 海ンちゅー(nthkid054162.hkid.nt.ftth.ppp.infoweb.ne.jp) - 2005/01/10(Mon) 11:07 
  No.7663
 |  | 
 |  | 
 
 
 | >>7652 >xsb007さん
 UpdateEx(10);
 を
 UpdateEx(5);
 にして、↑の後に
 Update();
 を入れたら少し早くなりました。
 
 | 
 |