1181722
Tonyu BBS
[再読み込み] [ホームページ] [使いかた] [ワード検索] [管理用]

おなまえ

Eメール
題  名  
コメント(http(s)://などのURLが含まれていると投稿できないことがあります)
添付プログラム
※プログラムに関する質問は、そのプログラムを添付して送ると対応が早くできます
添付方法...
削除キー (自分の記事を削除時に使用。英数字で8文字以内)
文字色
ダッシュについて質問です。 投稿者 : En−d(p14042-adsan10honb5-acca.tokyo.ocn.ne.jp)
- 2005/05/18(Wed) 20:58 No.8211
 


Download:8211.lzh 8211.lzh 過去ログになかったので質問します。
Aキー入力中ダッシュ、
一定時間以上入力し続けたらダッシュ状態解除、
空中でAキーを入力してもダッシュしないが、
ダッシュジャンプは出来る、という
プログラムを作りたいのです。

ダッシュジャンプは出来たのですが、
空中でAキーを押してもダッシュ状態になってしまいます。
どのようにすれば修正できるでしょうか?
教えてください。お願いします。


Re: ダッシュについて質問です。 投稿者 : xsb007(YahooBB221044056135.bbtec.net)
- 2005/05/18(Wed) 21:17 No.8213
 
  //ダッシュ(右向き)
  
  if(getkey(65) && $map.getAt(x+16,y)!=$pat_Block+0 
     && ($map.getAt(x,y+24)==$pat_Block+0 || cmd)  ){
    
    cmd++;
にしてください。


ありがとうございました! 投稿者 : En−d(p14042-adsan10honb5-acca.tokyo.ocn.ne.jp)
- 2005/05/18(Wed) 21:58 No.8214
 
ありがとうございました!
おかげさまで思う通りになりました。
えと、加えたのは
「&& ($map.getAt(x,y+24)==$pat_Block+0 || cmd)」
ですよね?

どうしてこれを加えると問題が解決したのでしょう?
「|| cmd」の部分が特によくわからないです・・・。

敵が倒せません・・・ 投稿者 : よー(p1081-ipbf211kyoto.kyoto.ocn.ne.jp)
- 2005/05/16(Mon) 17:57 No.8194
 


何故か、自機が踏んでも敵が倒せません。
ソースは以下の通りです。

extends SpriteChar;
vx=-2; // 進行方向
a=newAnimation(); // AnimationAdapterを作成
a.loop($pat_Teki+0,$pat_Teki+2,10); // 敵の3つのパターンを往復するアニメーション
function appearTeki2() {
   if (rnd( 50 )==0) appear(new Teki2(x,y,$pat_Teki2+0));
}
while(1) {
  
  if (crashTo($Jiki)) {
      // 自機とぶつかったら
      if ( $Jiki.y < y-8 && $Jiki.vy>0 ) {
        // 自機は敵より少し上にいて、下方向に速度をもっているならば
        die(); // 敵が死ぬ
          $Jiki.vy=-5; // 自機がはねあがる
  } else {
         $Jiki.die(); // そうでなければ自機が死ぬ
      }
  }
    
    x+=vx; // 進行方向へ進む
  if (vx<0) f=1; else f=0; // vx が負(左向き)なら反転
 
    
 while(x<$screenWidth) {
   x=x+2;
   appearTeki2();
   update();
 }
 while(x>0) {
   x=x-2;
   appearTeki2();
   update();
 }
}
Jiki=自機 Teki=敵 Teki2=敵が投げる武器です。
よろしくお願いします。


Re: 敵が倒せません・・・ 投稿者 : xsb007(YahooBB221044056135.bbtec.net)
- 2005/05/16(Mon) 19:02 No.8195
 
while(1) {
  
////////////// *A* //////////////////////////
  if (crashTo($Jiki)) {
      // 自機とぶつかったら
      if ( $Jiki.y < y-8 && $Jiki.vy>0 ) {
        // 自機は敵より少し上にいて、下方向に速度をもっているならば
        die(); // 敵が死ぬ
          $Jiki.vy=-5; // 自機がはねあがる
  } else {
         $Jiki.die(); // そうでなければ自機が死ぬ
      }
  }
    
    x+=vx; // 進行方向へ進む
  if (vx<0) f=1; else f=0; // vx が負(左向き)なら反転
////////////// *A*ここまで ////////////////////////// 
    
 while(x<$screenWidth) {
   x=x+2;
   appearTeki2();
   /*A*/
   update();
 }
 while(x>0) {
   x=x-2;
   /*A*/
   appearTeki2();
   update();
 }
 
}
としてしまうと、*A* の部分が画面左で折り返す瞬間しか実行されません。
*A*の部分を、functionにして、/*A*/のところ(2か所とも)で呼び出すようにしてください。


Re: 敵が倒せません・・・ 投稿者 : よー(p1081-ipbf211kyoto.kyoto.ocn.ne.jp)
- 2005/05/16(Mon) 20:43 No.8198
 
頑張ってみたのですが、だめです。
何故か、敵の出した武器を踏むと倒せてしまい、本体は倒せないし、自機が当たっても自機は死にません。

さっきの通りやった後の敵のソースです。↓

while(1) {
  
  function
  if (crashTo($Jiki)) {
      // 自機とぶつかったら
      if ( $Jiki.y < y-8 && $Jiki.vy>0 ) {
        // 自機は敵より少し上にいて、下方向に速度をもっているならば
        die(); // 敵が死ぬ
          $Jiki.vy=-5; // 自機がはねあがる
  } else {
         $Kazu.die(); // そうでなければ自機が死ぬ
         $projectManager.loadPage($page_start);
      }
  }
    
    x+=vx; // 進行方向へ進む
  if (vx<0) f=1; else f=0; // vx が負(左向き)なら反転
  function
 
    
 while(x<$screenWidth) {
   x=x+2;
   appearTeki2();
   function
   update();
 }
 while(x>0) {
   x=x-2;
   function
   appearTeki2();
   update();
 }
}


↑の通りです。どうでしょう・・・?


Re: 敵が倒せません・・・ 投稿者 : xsb007(YahooBB221044056135.bbtec.net)
- 2005/05/16(Mon) 21:19 No.8199
 
functionにするというのは単にfunctionに置き換えるのではなく、function fname(){} にいれることです。

extends SpriteChar;
vx=-2; // 進行方向
a=newAnimation(); // AnimationAdapterを作成
a.loop($pat_Teki+0,$pat_Teki+2,10); // 敵の3つのパターンを往復するアニメーション
function appearTeki2() {
   if (rnd( 50 )==0) appear(new Teki2(x,y,$pat_Teki2+0));
}
while(1) {
 function atari() { 
  if (crashTo($Jiki)) {
      // 自機とぶつかったら
      if ( $Jiki.y < y-8 && $Jiki.vy>0 ) {
        // 自機は敵より少し上にいて、下方向に速度をもっているならば
        die(); // 敵が死ぬ
          $Jiki.vy=-5; // 自機がはねあがる
  } else {
         $Jiki.die(); // そうでなければ自機が死ぬ
      }
  }
    
    x+=vx; // 進行方向へ進む
   if (vx<0) f=1; else f=0; // vx が負(左向き)なら反転
 } 
    
 while(x<$screenWidth) {
   x=x+2;
   atari();
   appearTeki2();
   update();
 }
 while(x>0) {
   x=x-2;
   atari();
   appearTeki2();
   update();
 }
}


Re: 敵が倒せません・・・ 投稿者 : よー(p1081-ipbf211kyoto.kyoto.ocn.ne.jp)
- 2005/05/17(Tue) 10:43 No.8203
 
何度もすみません!!
文法エラーになってしまって・・・

 extends SpriteChar;
function onDie() {
   appear(new Teki2(x , y ,$pat_Enemy1+0));
}
vx=-2; // 進行方向
a=newAnimation(); // AnimationAdapterを作成
a.loop($pat_Enemy1+0,$pat_Enemy1+1,10); // 敵の2つのパターンを往復するアニメーション
function appearTeki2() {
   if (rnd( 50 )==0) appear(new Teki2(x,y,$pat_maze+4));
}
while(1) {
  
  function fname(){
  
  if (crashTo($Jiki)) {
      // 自機とぶつかったら
      if ( $Jiki.y < y-8 && $Jiki.vy>0 ) {
        // 自機は敵より少し上にいて、下方向に速度をもっているならば
        die(); // 敵が死ぬ
          $Jiki.vy=-5; // 自機がはねあがる
  } else {
         $Jiki.die(); // そうでなければ自機が死ぬ
      }
  }
    
    x+=vx; // 進行方向へ進む
  if (vx<0) f=1; else f=0; // vx が負(左向き)なら反転
}
 
    
 while(x<$screenWidth) {
   x=x+2;
   appearTeki2();
   function fname(){
   update();
 }
 while(x>0) {
   x=x-2;
 }
       appearTeki2();
   update();
 }
}

どうですか・・・?
すみません、よろしくお願いします。

ファイル添付の仕方がわからない・・・(汗


Re: 敵が倒せません・・・ 投稿者 : N@N(actkyo136178.adsl.ppp.infoweb.ne.jp)
- 2005/05/17(Tue) 17:03 No.8204
 
Download:8204.zip 8204.zip function 関数の名前(){//中身}
というのは、枝分かれみたいなもので、
関数の名前();
と書いて「呼び出す」と、//中身 の部分をその場で通ることができます。
そういう意味で、これはプログラムの最初か最後に書いておくほうがよいでしょう。1回書けば何度でも呼び出せます。

サンプルを組み上げてみました。enemyに、修正したプログラムが書かれています。


Re: 敵が倒せません・・・ 投稿者 : N@N(actkyo136178.adsl.ppp.infoweb.ne.jp)
- 2005/05/17(Tue) 17:12 No.8205
 
ファイル添付の仕方ですが、
@(無い場合は)圧縮ソフトを手に入れる。
 「圧縮ソフト」などで検索すると、関係するページが見つかると思います。
A圧縮ソフトの設定を「zip形式」にして、添付したい作品のフォルダ全体を圧縮する。
B圧縮後の大きさが200kB以下であることを確認して(右クリック→プロパティで分かります)、書き込むときに参照ボタンで選択する。
こんな流れになると思います。
圧縮ソフトの詳しい使い方は、そのマニュアルを参照してください。ファイルが大きすぎる時は、音声ファイルなどを除いてみてください。


Re: 敵が倒せません・・・ 投稿者 : よー(p1081-ipbf211kyoto.kyoto.ocn.ne.jp)
- 2005/05/18(Wed) 17:03 No.8210
 
ありがとうございました。 おかげ様で丸くおさまりました(笑

拡散について 投稿者 : taba(YahooBB219051012048.bbtec.net)
- 2005/05/16(Mon) 19:57 No.8196
 


今作っているゲームは絶対に完成させたいので
質問させてください;;
前回はN@Nさんに拡散弾の飛ぶ方向を教えていただきました。
今回気付いたことなのですが、拡散後の弾が同方向に
2つでてるのです、プログラムは以下の通りです。

拡散前の弾
extends SpriteChar;
muki=$jiki3.f;  
time2=0;
time=0; 
while(1) {
  time++;
  time2++;
  if (muki==0) x+=5;
  if (time==30){ a=appear(new tama3sann(x,y,$pat_bb+15));
    a.vy=-1;  // vyを設定
    a.muki=muki;//mukiを設定
    a=appear(new tama3sann(x,y,$pat_bb+15));
    a.vy=-0.5;
    a.muki=muki;//mukiを設定
    a=appear(new tama3sann(x,y,$pat_bb+15));
    a.vy=0;
    a.muki=muki;//mukiを設定
    a=appear(new tama3sann(x,y,$pat_bb+15));
    a.vy=0.5;
    a.muki=muki;//mukiを設定
    a=appear(new tama3sann(x,y,$pat_bb+15));
    a.vy=1; 
    a.muki=muki;//mukiを設定
 die();  }//自機が右を向いた時に発射された弾
  if (muki==1) {x-=5;f=1;}
  if (time2==30){ a=appear(new tama3sann(x,y,$pat_bb+30));
    a.vy=-1;  // vyを設定
    a.muki=muki;//mukiを設定
    a=appear(new tama3sann(x,y,$pat_bb+30));
    a.vy=-0.5;
    a.muki=muki;//mukiを設定
    a=appear(new tama3sann(x,y,$pat_bb+30));
    a.vy=0;
    a.muki=muki;//mukiを設定
    a=appear(new tama3sann(x,y,$pat_bb+30));
    a.vy=0.5;
    a.muki=muki;//mukiを設定
    a=appear(new tama3sann(x,y,$pat_bb+30));
    a.vy=1;
    a.muki=muki;//mukiを設定
  die(); }//自機が左を向いた時に発射された弾
  if ($map.getAt(x,y)==$pat_aa+0) die(); 
  update();
}

拡散後の弾

extends SpriteChar;
while(x>0) {
 if (muki==0) x=x+7;
y=y+vy; f=0;// この行を追加。 vy だけ縦に移動
if (muki==1)x=x-7; y=y+vy; 
 if ($map.getAt(x,y)==$pat_aa+0) die(); 
  update();
}

おかしいように見えないのですが
どこがいけないのでしょう?


Re: 拡散について 投稿者 : xsb007(YahooBB221044056135.bbtec.net)
- 2005/05/16(Mon) 21:27 No.8200
 
extends SpriteChar;
muki=$jiki3.f;  
f=0;
time=30; 
while(1) {
  time--;
  if (muki==0) x+=5;
  if (muki==1) {x-=5; angle=180;}

/////////////// *S* /////////////////////////  
  if (time==0){ 
    a=appear(new tama3sann(x,y,$pat_bb+15));
    a.vy=-1;  // vyを設定
    a.muki=muki;//mukiを設定
    a=appear(new tama3sann(x,y,$pat_bb+15));
    a.vy=-0.5;
    a.muki=muki;//mukiを設定
    a=appear(new tama3sann(x,y,$pat_bb+15));
    a.vy=0;
    a.muki=muki;//mukiを設定
    a=appear(new tama3sann(x,y,$pat_bb+15));
    a.vy=0.5;
    a.muki=muki;//mukiを設定
    a=appear(new tama3sann(x,y,$pat_bb+15));
    a.vy=1;
    a.muki=muki;//mukiを設定
    die();
  }
/////////////// *E* /////////////////////////

  if ($map.getAt(x,y)==$pat_aa+0) die(); 
  update();
}


// *S* と *E* の間が二回繰り返されています。 //
// そこは一回でいいです。                    //


Re: 拡散について 投稿者 : taba(YahooBB219051012048.bbtec.net)
- 2005/05/17(Tue) 19:57 No.8206
 
できました!ありがとうございました。
これから質問することが多くなりそうですが
よろしくお願いしますm(_ _)m

涙ス 投稿者 : DEI(i219-165-199-170.s02.a023.ap.plala.or.jp)
- 2005/05/14(Sat) 18:34 No.8185
 


Download:8185.lzh 8185.lzh すいません!!
このタイプで横に動きながら敵を出し
30発ぐらいで死ぬボスの作り方が分かりません・・・・
誰か教えてください・・・


Re: 涙ス 投稿者 : DEI(i219-165-199-48.s02.a023.ap.plala.or.jp)
- 2005/05/15(Sun) 13:21 No.8186
 
スイマセン!!
extends SpriteChar;
vx=2; // 進行方向
a=newAnimation(); // AnimationAdapterを作成
a.loop($pat_Enemy1+0,$pat_Enemy1+1,10); // 敵の2つのパターンを往復するアニメーション
while (1) {
  if (crashTo($snowMan)) {
    // 自機とぶつかったら
    if ( $snowMan.y < y-8 && $snowMan.vy>0 ) {
      // 自機は敵より少し上にいて、下方向に速度をもっているならば
      die(); // 敵が死ぬ
      $snowMan.vy=-5; // 自機がはねあがる
    } else {
      $snowMan.die(); // そうでなければ自機が死ぬ
      $projectManager.loadPage($page_start);
   }
  }
  for (t in $chars) {//$tamaというオブジェクトがないためページ内の弾を検知
    if (t is Tama && crashTo(t)) {
      die();  //死亡
      t.die();//弾も消去
    }
  }
  if ($map.getAt(x+vx,y)==$pat_Block+0 || $map.getAt(x+vx,y+32)!=$pat_Block+0) {
    // 進行方向のマップパターンがブロック、または斜め下がブロックでなかったら
    a.pause(); // 待機前にアニメーションを止める
    updateEx(30); // 30フレーム待機
    a.resume(); // 待機後にアニメーション再開
    vx=-vx; // 進行方向を反転する
  }
  x+=vx; // 進行方向へ進む
  if (vx<0) f=1; else f=0; // vx が負(左向き)なら反転
  update();
}
のなかに
function appearEnemy() {
   if (rnd(70)==0) appear(new ;(x,y,$pat_Sample+2));
}

function atariHantei() {
  for (t in $chars) {
   if ( t is Tama && crashTo(t) ) {
     // もし弾 t にぶつかったら
     life=life-1;  //体力をへらす
     t.die();      //当たった弾をけす
     if (life<1) die();   //もし体力がなくなったら死ぬ
   }
  }
}
をどこに入れるといいのですか?
教えてください!!


Re: 涙ス 投稿者 : xsb007(YahooBB221044056135.bbtec.net)
- 2005/05/15(Sun) 21:21 No.8192
 
Download:8192.lzh 8192.lzh こんなもんでしょうか?


Re: 涙ス 投稿者 : DEI(i60-42-219-197.s02.a023.ap.plala.or.jp)
- 2005/05/16(Mon) 21:57 No.8201
 
xsb007さんありがとうございました!!

質問です。 投稿者 : よー(p1081-ipbf211kyoto.kyoto.ocn.ne.jp)
- 2005/05/15(Sun) 19:30 No.8190
 


横スクロールアクションを作っていて、キーボードの↓を押すとしゃがむようにしようと、記事NO. 5294を参考にして作ってみたのですが、自機が消えたり全く別のオブジェクトが出てきたりします。何故でしょう?
ソースは以下の通りです。

extends SpriteChar;

$map.setBGColor(color(0,200,255)); // 背景色を設定
anim=newAnimation();
while (1) {
  anim.pause();
 
 
 if ($map.getAt(x,y-24)==$pat_Block+0 ) {  //上にブロックがあるとき
  vy=1;  //それ以上、上に行かないようにする
}

if (getkey(39) && $map.getAt(x+16,y)!=$pat_Block+0) {
    x+=3;
    f=0;
    anim.swing($pat_Jiki+0,$pat_Jiki+3,5);
  }
  // ↑ カーソルキー右が押され、さらに右側が壁でなければ右へ移動
  if (getkey(37) && $map.getAt(x-16,y)!=$pat_Block+0) {
    x-=3;
    f=1;
    anim.swing($pat_Jiki+0,$pat_Jiki+3,5);
  }
  // ↑ カーソルキー左が押され、さらに左側が壁でなければ左へ移動
  y+=vy; // vy: y 方向の速度。 yにvy を加える
  if ($map.getAt(x,y+25)==$pat_Block+0 ){ // ブロックに当たっていたら
    
     vy=0; // 落下速度を0にする
     if (getkey(38)) vy=-10; // ↑カーソルキー上を押したらジャンプ
  } else { // ブロックに当たっていなかったら
     vy+=0.5; // 落下速度を上げる
  }
    
 $map.scrollTo(x-$screenWidth/2,0); // 自分が中央になるようにスクロール
 if(getkey(37)) x-=1; // 左
 if (getkey(39)) x+=1;//右
 if (getkey(40)>0) {anim.pause();p=$pat_JikiShagami+11;}

 update();
}

以上です。
『Jiki』と書いてあるのが自機で、『JikiShagami』と書いてあるのが↓キーを押した後のしゃがんだオブジェクトです。
よろしくお願いします。


Re: 質問です。 投稿者 : xsb007(YahooBB221044056135.bbtec.net)
- 2005/05/15(Sun) 20:46 No.8191
 
ヘルプには、anim.pause();してから、p=$pat_JikiShagami+11;すればいいように書いてありますが、ダメです。

正しくはこちら
{anim.play($pat_JikiShagami+11); anim.pause();}


Re: 質問です。 投稿者 : よー(p1081-ipbf211kyoto.kyoto.ocn.ne.jp)
- 2005/05/15(Sun) 22:18 No.8193
 
あ、ありがとうございます! これで出来そうです!

.
[直接移動] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16] [17] [18] [19] [20] [21] [22] [23] [24] [25] [26] [27] [28] [29] [30] [31] [32] [33] [34] [35] [36] [37] [38] [39] [40] [41] [42] [43] [44] [45] [46] [47] [48] [49] [50] [51] [52] [53] [54] [55] [56] [57] [58] [59] [60] [61] [62] [63] [64] [65] [66] [67] [68] [69] [70] [71] [72] [73] [74] [75] [76] [77] [78] [79] [80] [81] [82] [83] [84] [85] [86] [87] [88] [89] [90] [91] [92] [93] [94] [95] [96] [97] [98] [99] [100] [101] [102] [103] [104] [105] [106] [107] [108] [109] [110] [111] [112] [113] [114] [115] [116] [117] [118] [119] [120] [121] [122] [123] [124] [125] [126] [127] [128] [129] [130] [131] [132] [133] [134] [135] [136] [137] [138] [139] [140] [141] [142] [143] [144] [145] [146] [147] [148] [149] [150] [151] [152] [153] [154] [155] [156] [157] [158] [159] [160] [161] [162] [163] [164] [165] [166] [167] [168] [169] [170] [171] [172] [173] [174] [175] [176] [177] [178] [179] [180] [181] [182] [183] [184] [185] [186] [187] [188] [189] [190] [191] [192] [193] [194] [195] [196] [197] [198] [199] [200] [201] [202] [203] [204] [205] [206] [207] [208] [209] [210] [211] [212] [213] [214] [215] [216] [217] [218] [219] [220] [221] [222] [223] [224] [225] [226] [227] [228] [229] [230] [231] [232] [233] [234] [235] [236] [237] [238] [239] [240] [241] [242] [243] [244] [245] [246] [247] [248] [249] [250] [251] [252] [253] [254] [255] [256] [257] [258] [259] [260] [261] [262] [263] [264] [265] [266] [267] [268] [269] [270] [271] [272] [273] [274] [275] [276] [277] [278] [279] [280] [281] [282] [283] [284] [285] [286] [287] [288] [289] [290] [291] [292] [293] [294] [295] [296] [297] [298] [299] [300] [301] [302] [303] [304] [305] [306] [307] [308] [309] [310] [311] [312] [313] [314] [315] [316] [317] [318] [319] [320] [321] [322] [323] [324] [325] [326] [327] [328] [329] [330] [331] [332] [333] [334] [335] [336] [337] [338] [339] [340] [341] [342] [343] [344] [345] [346] [347] [348] [349] [350] [351] [352] [353] [354] [355] [356] [357] [358] [359] [360] [361] [362] [363] [364] [365] [366] [367] [368] [369] [370] [371] [372] [373] [374] [375] [376] [377] [378] [379] [380] [381] [382] [383] [384] [385] [386] [387] [388] [389] [390] [391] [392] [393] [394] [395] [396] [397] [398] [399] [400] [401] [402] [403] [404] [405] [406] [407] [408] [409] [410] [411] [412] [413] [414] [415] [416] [417] [418] [419] [420] [421] [422] [423] [424] [425] [426] [427] [428] [429] [430] [431] [432] [433] [434] [435] [436] [437] [438] [439] [440] [441] [442] [443] [444] [445] [446] [447] [448] [449] [450] [451] [452] [453] [454] [455] [456] [457] [458] [459] [460] [461] [462] [463] [464] [465] [466] [467] [468] [469] [470] [471] [472] [473] [474] [475] [476] [477] [478] [479] [480] [481] [482] [483] [484] [485] [486] [487] [488] [489] [490] [491] [492] [493] [494] [495] [496] [497] [498] [499] [500] [501] [502] [503] [504] [505] [506] [507] [508] [509] [510] [511] [512] [513] [514] [515] [516] [517] [518] [519] [520] [521] [522] [523] [524] [525] [526] [527] [528] [529] [530] [531] [532] [533] [534] [535] [536] [537] [538] [539] [540] [541] [542] [543] [544] [545] [546] [547] [548] [549] [550] [551] [552] [553] [554] [555] [556] [557] [558] [559] [560] [561] [562] [563] [564] [565] [566] [567] [568] [569] [570] [571] [572]
- 以下のフォームから自分の投稿記事を修正・削除することができます -
処理 記事No パスワード

- Joyful Note -