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

おなまえ

Eメール
題  名  
コメント(http(s)://などのURLが含まれていると投稿できないことがあります)
添付プログラム
※プログラムに関する質問は、そのプログラムを添付して送ると対応が早くできます
添付方法...
削除キー (自分の記事を削除時に使用。英数字で8文字以内)
文字色
たまを斜めに飛ばしたいのですが 投稿者 : 伊藤祐輝(i114-184-123-175.s05.a009.ap.plala.or.jp)
- 2013/11/01(Fri) 18:07 No.13648
 


シューティングゲームでたまを斜め右方向と斜め左方向に飛ばしたいのですが、わかりません。
自分でも思いついたことをやってみたり、親にも聞いてみたのですが、できませんでした。
教えてください。お願いします。


Re:画像の一部表示について 投稿者 : リセッタ(ai126213131039.5.tss.access-internet.ne.jp)
- 2013/11/02(Sat) 05:37 No.13651
 
移動の基本は解っていると仮定して、質問は
「動作の異なる(今回は右上と左上?)複数種類の弾(オブジェクト)を飛ばす(生成・実行)する方法が解らない」
でしょうか?

右・左用のオブジェクトを作って生成・実行でよいのでは?

if key(32) {
  appear(new 弾左(x-16,y-32,弾,0));
  appear(new 弾右(x+16,y-32,弾,1));
}

テキストの呼び出し 投稿者 : ゆい(flh1aas140.smn.mesh.ad.jp)
- 2013/09/26(Thu) 23:16 No.13642
 


プログラミング初心者です。
チュートリアルをもとにシューティングを作っています。

自機が破壊されたときにgameoverという文字を
オブジェクトのテキストを使って
ゲームの実行画面に表示したいのですが、
テキストの関数を呼び出す式はどうしたらいいでしょうか?


Re: テキストの呼び出し 投稿者 : ゆい4(flh1aas140.smn.mesh.ad.jp)
- 2013/09/27(Fri) 07:09 No.13643
 

追記です

↓このプログラムだと自機が死んだとき表示になりません。
 
extends TextChar;
while(1){
  while($mychar.isDead())
  {
    update();
  }
}


Re: テキストの呼び出し 投稿者 : ゆい(flh1aas140.smn.mesh.ad.jp)
- 2013/09/27(Fri) 07:11 No.13644
 

追記です

↓このプログラムだと自機が死んだとき表示になりません。
 
extends TextChar;
while(1){
  while($mychar.isDead())
  {
    update();
  }
}


Re: テキストの呼び出し 投稿者 : じんみ(p25210-ipngn701hodogaya.kanagawa.ocn.ne.jp)
- 2013/09/29(Sun) 02:49 No.13645
 
自機が死ぬ直前にテキストクラスを出現させるようにした方が早いかと思われます。
弾を出す要領でやってみましょう。

die();の前にappear(〜 ですね


Re:テキストの呼び出し 投稿者 : リセッタ(ai126194000255.1.tss.access-internet.ne.jp)
- 2013/09/30(Mon) 06:55 No.13646
 
何故駄目なのか?

"update()"メソッドは、次のフレームまで処理を中断する(システムに返す)命令です。
"update()"をしなければ表示を中止したりはしませんし、他のオブジェクトに処理が移れず重くなります。

extends TextChar;
while(1){
  while($mychar.isDead())  // "$mychar"が死んでいれば"update()"メソッドを繰り返す
  {                        // 逆を言えば、"$mychar"が生きていれば"update()"メソッドが呼ばれない。
    update();
  }
}

表示・非表示は、"setVisible()"メソッドで行います。

変更後

extends TextChar;
while(1){
  if($mychar.isDead())
    setVisible(1);
  else
    setVisible(0);
  update();
}

>>die();の前にappear(〜 ですね // by じんみ さん

自分なら$nycharの"onDie()"メソッドで"appear()"を呼びます。
自機の死亡条件の追加等で"die()"する場所が増えても、一々"appear()"も書かなくていい(書き忘れない)ので。

シューティングBOSS 投稿者 : 伊藤祐輝(i114-183-29-52.s05.a009.ap.plala.or.jp)
- 2013/08/25(Sun) 22:12 No.13640
 


シューティングで「決まった時間」または、「決まった敵を倒したとき」にBOSSが出るようにするにはどうしたらよいのでしょうか。


Re:シューティングBOSS 投稿者 : リセッタ(ai126213137004.5.tss.access-internet.ne.jp)
- 2013/08/31(Sat) 08:58 No.13641
 
「決まった時間」がどの様な時間を意味しているかによるけど、
フレーム数を数えるかOS起動からの時間(getTime()メソッド)を使います。
tounyuは、現在時刻を直接知る方法はないので、朝7時になると特別なBOSSが出るとかは出来ません。

次の様な流れになると思います。
1.ゲーム開始時
 開始時間の取得、またはフレーム数の初期化。
2.時間計測
 経過時間=現在時間−開始時間
 フレーム数+1:フレーム数/60 秒(デフォルト)
3.BOSS出現チェック
 出現時間なら、
    [$BOSSn = ] appear(new BOSS_HOGE);  // []は任意、BOSS_HOGEはボスクラス
4. 2.へ戻る

「決まった敵を倒したとき」は、決まった敵のオブジェクトの
onDieメソッドを使います。

  function onDie() {
    [$BOSSm = ] appear(new BOSS_FUGA);  // []は任意、BOSS_FUGAはボスクラス
  } 

画像の一部表示について 投稿者 : sha(em114-49-27-76.pool.e-mobile.ne.jp)
- 2013/07/31(Wed) 02:11 No.13631
 


題名と若干意味が異なるかもしれないのですが、一定座標から一定座標までにオブジェクトを移動(ループ)させつづけたいのです。
その際、一定座標からはみ出た部分は見えないようにしたいのですが、どうすればいいのでしょうか。
ちなみに訳あってzOrderは使えません。
作ろうとしているのはスロットです。

なかなかアイデアが思いつかず、手につきません。
回答お願いします><


Re:画像の一部表示について 投稿者 : リセッタ(em114-48-173-216.pool.e-mobile.ne.jp)
- 2013/08/01(Thu) 23:25 No.13632
 
ドラム部分のマスク用筐体画像のキャラを作成。
ドラム用キャラより、zOrderを小さくしてドラムに被せる。

筐体画像例)

□□□□□□□□□□□□ □透明色
□■■■■■■■■■■□ ■不透明色
□■■■■■■■■■■□
□■□□■□□■□□■□
□■□□■□□■□□■□
□■□□■□□■□□■□
□■■■■■■■■■■□
□■■■■■■■■■■□
□□□□□□□□□□□□

って zOrder 使えない? なんで?訳有ってじゃなくて理由を言ってほしいね。
それによってはやり方が変わると思うし。$Panelやpanelオブジェクトに描画かな? 
ん〜中間パネルにドラム描画後、表示したい分だけ"copyRect()"メソッドで移すてのはどう?


Re: 画像の一部表示について 投稿者 : sha(em114-49-29-243.pool.e-mobile.ne.jp)
- 2013/08/02(Fri) 14:16 No.13633
 
回答有難うございます。
zOrderが使えないと思ってる理由は、九つのリール全てが回る仕組みにしようとしているので、枠がこんな感じなのです。

□□□□□□□□□□□□ □透明色
□■■■■■■■■■■□ ■不透明色
□■□□■□□■□□■□
□■□□■□□■□□■□
□■■■■■■■■■■□
□■□□■□□■□□■□
□■□□■□□■□□■□
□■■■■■■■■■■□
□■□□■□□■□□■□
□■□□■□□■□□■□
□■■■■■■■■■■□
□□□□□□□□□□□□

その為、自分の考えでは、zOrderでやろうとすると、どれかしらの場所に優先されている画像が、めり込んでしまうと思うからです。

"copyRect()"メソッドを使って出来るかやってみます。
ありがとうございました。


Re: 画像の一部表示について 投稿者 : リセッタ(em114-49-15-42.pool.e-mobile.ne.jp)
- 2013/08/02(Fri) 20:54 No.13634
 
枠画像の'zOrder'を'-500'とかにして最前面にして、
リールは0以上の値で対応じゃだめなの?

>zOrderが使えないと思ってる理由は、九つのリール全てが回る仕組み…
>その為、自分の考えでは、…どれかしらの場所に優先されている画像が、めり込んでしまう…

zOrderは3次元での奥行き(Z軸)になり、値が大きい程奥にオブジェクトが居る様に表示されます。
zOrderが同じ値の場合に被る様にあるオブジェクトの場合、表示は、実行順序等により予測不能です。
(どちらが手前に表示されるか?表示の一部もしくは全部が失われるか等。試してみて)
zOrderが異なる値ならば。小さい値のオブジェクトが手前に必ず表示されます。

>どれかしらの場所に優先されている画像が、めり込んでしまう
この場合の優先されている画像が、マスク用の”枠画像”で、一番手前にするわけです。(zOrder=-500)
リール用キャラは、その奥にします。(zOrder=0〜,未設定(null値=0)でも可)

#おまけ リール回転デモ

zOrder           :リール・キャラソース(例
-500   0 1 2 3 4  scaleY :extends DxChar;  //  高さ32ドットのキャラ10個で回転
 |    ・     0.1 :yo=100; yr=50;   // yo;表示中心 yr:リール半径(ドット)
 |   |←|       :while(1) {  // yr=32*10/2π≒50 間隔=360/10=36°
 :   | |    0.7 :  yd=cos(yt); ym=sin(yt);  // yd:縮尺(源) ym:表示位置差分
 :  |   |      :  scaleY=abs(yd);  // 縮尺設定
 :  |↓  |↑  1.0 :  if(yd<0.2) setVisible(0); else setVisible(1);  // 不要部分非表示 ※1
 :  |   |      :  zOrder=yr-floor(yr*yd);  // zOrder設定。要らないかも(^ ^;A
 :   | |    0.7 :  y=yo+ym*yr;  // 表示位置設定
 |   |→|       :  yt=(yt+5)%360;  // 5°回転させる。(360°以内に収める) ※2
 |    ・     0.1 :  update();  // ※1 裏側&縁部分(±78°≒$Math.acos(0.2)以上)
 枠  リール・キャラ    :}  // ※2 回転する角度を大きくすれば速く、小さくすれば遅く廻る。
    オブジェクト群    :

 リールキャラを縦に六つくらいコピぺして、
36°空けて(インスペクタでytに0,36,72.108…を入れて)
F9押下 廻ってる様に見えると思うけど…


Re:画像の一部表示について 投稿者 : リセッタ(em114-49-15-42.pool.e-mobile.ne.jp)
- 2013/08/03(Sat) 01:45 No.13635
 
Download:13635.lzh 13635.lzh 上記おまけのプログラムです。

>どれかしらの場所に優先されている画像が、めり込んでしまう
あ〜、リール径が大きくて、上下で重なるって事かな?
大まかに不要部分の非表示を行って、枠できっちりマスクすればOK。

イメージ
 |     :/ ̄ ̄ ̄\   if(yd<0.2)
 └…………/:     \   setVisible(0);
      | :      |  else
      | :  ・   |   setVisible(1);
      | :      |
 ┌…………\: ___ /  上記の判定の"0.2"を
 |     :×   ×   調整して、非表示にする
 └…………/:  ̄ ̄ ̄ \  (値を大きくすると、
      | :      |  表示される部分は小さく
      | :  ・   |   値を小さくすると、
      | ;      |  表示部分は大きくなる。
 ┌…………\:     /  0〜1を指定。
 |     :\___/   表示範囲≒2*(1-判定値)*yr+α
 |     :        キャラの高さ分大きめ?)
 枠 表示 ← : → 非表示


Re: 画像の一部表示について 投稿者 : sha(em1-112-113-13.pool.e-mobile.ne.jp)
- 2013/08/04(Sun) 20:29 No.13636
 
ご丁寧にプログラムの見本をありがとうございます。
試行錯誤した結果、やはりcopyRect()を使えれば最適という結論に至りました。
ただ、初歩的な質問になってしまうのですが、ヘルプを読んでもcopyRect()の使い方がイマイチ分かりません。


extends PanelChar;//リールの全画像
resize(300,2327);
while(1){
  panel.drawSprite(200,2065,$pat_lille2+0);
  update();
}


extends PanelChar;//一つ目のリール
resize(300,300);
while(1){
  panel.copyRect(0,0,200,200,$lille,0,0,200,200); 
  update();
}

これで一つ目のリールにリールの全画像の一部が表示されません。何が間違っているのでしょうか。


Re: 画像の一部表示について 投稿者 : sha(em1-112-113-13.pool.e-mobile.ne.jp)
- 2013/08/04(Sun) 20:56 No.13637
 
上のソースは古いコードでした
正しくは↓です。リールの全画像のクラスは$lilleです。


extends PanelChar;//一つ目のリール
resize(300,300);
while(1){
 panel.copyRect(0,0,200,200,$lille.Panel,0,0,200,200);
  update();
}


Re: 画像の一部表示について 投稿者 : sha(em114-49-10-164.pool.e-mobile.ne.jp)
- 2013/08/04(Sun) 21:18 No.13638
 
すいません、panelで画像を貼り付けるときの位置を、正確に理解していなかったので発生したみたいです。
掲示板を汚してしまってすいませんでした。
回答ありがとうございました。


Re:画像の一部表示について 投稿者 : リセッタ(em1-112-122-48.pool.e-mobile.ne.jp)
- 2013/08/05(Mon) 03:48 No.13639
 
Download:13639.lzh 13639.lzh

リール表示用クラスのデモです。
”Q”でスタート。
”Z,X,C”でストップです。

落下時のキャラドット反映 投稿者 : ドラゴン(af204008.dynamic.ppp.asahi-net.or.jp)
- 2013/05/03(Fri) 13:57 No.13623
 


今、横スクロールアクションを作っています。

しかし、その場でジャンプしようとすると待機用ドットのまま垂直にジャンプする為、ジャンプ時と落下時のドットを打ちました。


ジャンプ時は

if (getkey(32)) {p=$pat_Untitled+6; vy=-10;}
            
で、ぎこちないながらも出来たのですが落下時がどうすれば良いのかさっぱり分かりません。 
助言よろしくお願いします。


Re: 落下時のキャラドット反映 投稿者 : Unk(ntngno065236.ngno.nt.ftth.ppp.infoweb.ne.jp)
- 2013/05/05(Sun) 21:15 No.13624
 
どのタイミングで画像を入れ替えるのがいいのかよくわかりませんが、

vyがマイナスのときはキャラが上向きに移動していますが、
vyがプラスのときはキャラが下向きに移動していると思います。
なので、

if(vy<0) p=$pat_uemuki+0; #vyが-のとき→上に移動しているとき
if(vy>0) p=$pat_sitamuki+0; #vyが+のとき→下に移動しているとき

とすればいいではないでしょうか。


Re: 落下時のキャラドット反映 投稿者 : ドラゴン(af204008.dynamic.ppp.asahi-net.or.jp)
- 2013/05/06(Mon) 12:19 No.13625
 
Download:13625.txt 13625.txt すいません やはり上手く動作しません。
今下記のようなプログラムになっております。
Untitled→キャラドット
block→床ドット

extends SpriteChar;


$map.setBGColor(color(0,200,255));


p=$pat_Untitled+0;
anim=newAnimation();


while (1) {
  if (getkey(39) && $map.getAt(x+32,y)!=$pat_block+0) 
  if (getkey(39) && $map.getAt(x+32,y)!=$pat_block+2)
  if (getkey(39) && $map.getAt(x+32,y)!=$pat_block+3)
  x+=9;
  if (getkey(37) && $map.getAt(x-32,y)!=$pat_block+0) 
  if (getkey(37) && $map.getAt(x-32,y)!=$pat_block+2)
  if (getkey(37) && $map.getAt(x-32,y)!=$pat_block+3)
  x-=9;
  
  
  anim.swing($pat_Untitled+0,$pat_Untitle+1,20); 
  
  
  
  if (getkey(37)>2) {
    anim.swing($pat_Untitled+2,$pat_Untitled+5,8);
    x=x+1;
    f=1;
  }
  if (getkey(39)>2) {
    anim.swing($pat_Untitled+2,$pat_Untitled+5,8);
    x=x-1;
    f=-1;
  }
  
  if ($map.getAt(x,y+40)==$pat_block+0 )
  {
    vy=0;
    y=trunc(y/65)*65+26;
    
    
    if (getkey(32)) vy=-10; 
  } 
  
  
  if ($map.getAt(x,y+40)==$pat_block+2 )
  {
    vy=0;
    y=trunc(y/65)*65+26;
  }
  
  if ($map.getAt(x,y+40)==$pat_block+3 )
  {
    vy=0;
    y=trunc(y/65)*65+26;
  }
  
  
  if ($map.getAt(x,y-24)==$pat_block+0 )
  {
       
    
  } else { 
    vy=vy+0.5;
   }
  y=y+vy;
  
  update(
  );
   
}


Re: 落下時のキャラドット反映 投稿者 : リセッタ(em114-48-11-111.pool.e-mobile.ne.jp)
- 2013/07/03(Wed) 06:48 No.13630
 
アニメーション中は変数"p"は、基本弄れないよ。

ヘルプ参照
 ※ アニメーションアダプタ動作中は、変数pへの代入をしても効果がありません。pへ代入したい場合は一旦pauseメソッドを呼んでからにしてください

.
[直接移動] [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 -