返信


■--マップチップ攻撃について
++ 赤青黄色 (神)…21回          

こんなふざけた性格の自分ですが、珍しく真剣な質問します。
自分もそろそろマップチップや背景を使って見ようと思ったのです。
背景は背景としてまんま使うのは当たり前なんですが、問題はマップチップなのです。
あなたの正男はマップチップを使用してオリジナルボスを作っていますよね?
正直自分がいきなりマップチップでボスを作ることはできても多彩な攻撃と併用できないのは見えていますので聞かせていただきます。
あなたの正男のマップチップはどうやって主人公とのあたり判定を入れているのでしょうか?
あの多彩な動きはどのようにすればできるのでしょうか?
ソースを見ても何らわかりません。
ご迷惑とわかっていながらもすいません。
ぜひお聞きしたいです。
(118.8.199.111).. 2008年11月03日 18:51   No.150001

++ 通りすがり (全知全能の神)…1回       
自分の座標の背景マップチップを取得して、
ボス、及び弾のグラフィックであれば、主人公を殺す処理をしてるようですね。

(125.205.122.53).. 2008年11月03日 22:23   No.150002
++ AGO (管理人)…-34回       
>主人公とのあたり判定
通りすがりさんの言う通り、
"getMapchip(x座標,y座標)"を使い、
主人公座標に重なった背景レイヤーの番号が、
指定範囲のものなら主人公が死ぬ、という
処理を組みましょう。 
もちろん、"踏める状態"の時のボス画像などは
重なったら死亡する範囲には入れてはいけませぬ。
 
>動きはどのように
えーと、これについては説明が難しいというか。
一言で言うと"変数代入して処理実行"なんですが、
これをどう説明するかというのはちと難しいです。
 
とにかく、慣れましょう。慣れです、慣れ。
こればかりは"説明されたらできる"という訳では
ありませぬ。
まず自分でボスのさまざまなアシスト攻撃を
作るなどして、自分で慣れる事が大切です。

(121.82.222.20).. 2008年11月04日 02:15   No.150003
++ 赤青黄色 (神)…22回       
はい、ありがとうございます。
ご迷惑とわかりながらももう一つ聞かせていただきます。たとえば
"getMapchip2(1,1,1)"の場合。
この場合主人公が死ぬという処理はどのようにすればいいのでしょうか。

(118.8.199.111).. 2008年11月04日 06:43   No.150004
++ AGO (管理人)…-33回       
if(getMapchip2(1,1)>0){Applet1.setMyMiss(1)}
 
という感じです。
上記文は"座標(1,1)に0より大きい番号の背景マップチップがある場合、死ぬ"という意味です。
ちなみに0は空白チップなので、死亡する
範囲にいれてはいけないので">0"と表記した、
という次第であります。
 
" if(条件){実行する処理} "というこの形を
作ればオールOKという事です^^

(121.82.222.20).. 2008年11月04日 13:10   No.150005
++ 赤青黄色 (神)…23回       
どうもです。逆立ちしながら感謝したいくらいです。
どこまでできるかわからないけど画像はもとよりスクリプトも頑張ってみます。
ありがとうございました。

(118.8.199.111).. 2008年11月04日 15:43   No.150006
++ ピカチー (支配者の側近)…86回       
うぬ、難しい話ですねぇ。
二人とも頑張れ〜。

(219.115.226.90).. 2008年11月05日 18:40   No.150007
++ 赤青黄色 (神)…24回       
取り合えず都合良く当たり判定のある魔方陣を設置することに成功しました。
これもひとえにAGOさんのおかげですよ。
またわからなくなったらしつこく聞きに来ますがよろしいでしょうか?

(118.8.199.111).. 2008年11月05日 20:05   No.150008
++ AGO (管理人)…-31回       
オールOK、モーマンタイです^^
ただ、自分、クラスファイル等の知識ゼロで
さっぱりな言葉が多いので、答えれる質問の
範囲がかなり狭そうな感じですな。

(121.82.222.20).. 2008年11月05日 20:57   No.150009
++ 赤青黄色 (神)…25回       
まさかのまさかで過去スレをあげ。
えーと聞きに来ましたですよ。
自分今スクリプトつくっちょるんですが、
それで、
自分の頭上にマップチップを召喚。
そこから地面に垂直に落としたいんですがどうすればいいんでしょうか?
お願いします教えてくださいです。

(118.1.31.91).. 2008年11月18日 22:50   No.150010
++ 通りすがり (全知全能の神)…2回       
y..  ■  □  □
y+1 □→■→□
y+2 □  □  ■
こういう風に考えると、わかりやすいのではないでしょうか?
つまり、さっき召還した場所の下に、
そのマップチップを召還する。
そしてさっき召還した場所に、「空白」を表すマップチップを召還する。
垂直に落とすことに限定せず、
真横に飛ばす、斜めに降ろすことに応用することもできるでしょう。

(125.205.102.31).. 2008年11月19日 00:26   No.150011
++ AGO (管理人)…-26回       
>赤青黄色さん
"自分の頭上にマップチップを召喚"に
関してはおそらく説明は不要(?)と思いますので、
問題である"垂直落下の仕方"について説明しましょう。
と、言っても通りすがりさんが事の大部分を
すでに説明してくださっているので簡単な説明で。
 
bk_x=Applet1.getMyX();
bk_y=0;

まずこれを初期設定の所に貼り付け、
 
bk_y++;
Applet1.setMapchip(bk_x,bk_y,21);
Applet1.setMapchip(bk_x,bk_y-1,0);

んでこれを本文(?)に貼り付けてみましょう。
そしたら岩ブロックがだんだんと座標をずらし
堕ちてくると思うんですわ。
 
とにかく、"y座標ずらし→ずらした座標にブロック配置→もとのポジションに空白チップ配置"を
繰り返すような処理をすれば、移動している
ように見えるという訳です。
この原理をもととすれば、あなたの望むマップチップ攻撃も実現可能なはずですお。

(121.83.25.4).. 2008年11月19日 23:44   No.150012
++ 赤青黄色 (神)…26回       
お二人方説明ありがとうございます。
あとちょっと質問なんですが
Applet1.getMyX()++;
これはどういう意味があるのでしょうか?

(118.1.31.91).. 2008年11月21日 07:27   No.150013
++ 啓太郎 (全能の神)…18回       
ひゃあ!!なんだかわけの分からない話ですな・・・
FX作るの諦めようかな・・・

(220.10.82.1).. 2008年11月21日 17:02   No.150014
++ マッハ (全能の神)…10回       
こんにちは。
いきなり横から申し訳ないのですが、
皆さんのやり取りを聞いて私もやってみようと思ったのです。
しかし、やっぱり色々と分からなくて、質問なのですが…。
bk_y=0;
というのはどういう働きなのでしょうか?
いきなり横から入ってきて本当にすみません。

(220.100.72.183).. 2008年11月21日 17:19   No.150015
++ AGO (管理人)…-25回       
>赤青黄色さん
"○○++"の○○に入るのは変数のみだったはず…?
a++とかboss_con++とかred--という感じです。
 
Applet1.getMyX()++;なんてもん入れてもうたら
エラー起こしてしまいますさかいに。
 
 
>マッハさん
変数bk_yはブロックのy座標として使っているもんです。
つまり、初期設定でbk_y=0;と表記しておく事によって、
"ブロックの始めのy座標は0ですよ"とあらかじめ
宣言しているというわけです^^

(121.83.25.4).. 2008年11月21日 18:34   No.150016
++ マッハ (全能の神)…11回       
ありがとうございます。
ですが、Y座標0の地点にブロックが召喚されるだけなのです。
思い当たるミスがあれば教えていただけると助かります。

(220.100.72.183).. 2008年11月21日 19:09   No.150017
++ AGO (管理人)…-24回       
「bk_x=Applet1.getMyX();」「bk_y=0;」が
初期設定(サンプルゲームで言うとfunction init() {})に入っておらず、メインループに
入っているなどが原因と考えられるかも。 
 
bk_x=Applet1.getMyX();とbk_y=0;は一度だけ
読み込まれるようにしなければいかんとです。
1ループごとに何度も読み込まれてしまうと、
ブロックの座標はずっと0のまんまになってまうとです。

(121.83.25.4).. 2008年11月21日 23:42   No.150018
++ マッハ (全能の神)…12回       
ありがとうございます。
見直してみたら、初期化してないというだけのことでした。
わざわざ申し訳ないです。

(220.100.72.183).. 2008年11月22日 13:33   No.150019
++ 赤青黄色 (神)…27回       
お久です。
自分なりに頑張ってみましたが…無理でしたOTL

(118.1.31.91).. 2008年11月23日 06:43   No.150020
++ 啓太郎 (神)…20回       
自分もFX作るのがんばったけど
失敗の連続・・・
とりあえず2.8の正男を更新しまくっている。

(220.10.82.1).. 2008年11月23日 07:57   No.150021
++ フォトン (全能の神)…13回       
AGOさんへ
このスレッドを拝見して、自分なりにですが、マップチップを用いたボスの作り方を簡単に説明したページを勝手に作成させていただきました。
掲示板で事細かに説明をされても、スレッドが立てばその記事は流れてしまいますので、こういうことを説明したページがあれば、そのような心配が無いなと思ったのが動機です。
もっと細かい話は掲示板等で説明するのが一番いい方法だと思っています。
こちら
問題点としましては、このページの設置場所が自分の管理しているサイト上であり、コンテンツの一つであるということです。
本件はこのページを掲載しても良いかどうかの許可をいただきに来ました。

(219.49.75.119).. 2008年11月23日 17:24   No.150022
++ AGO (管理人)…-22回       
どうも、解説ページ作成ご苦労様です。
掲載につきましてはもちろんかまわんとですよ^^
ボス作成やレイヤー攻撃作成の基本を学ぶとして
もってこいページですね、助かります。

(121.83.25.4).. 2008年11月23日 18:12   No.150023
++ マサヤ (神の手下)…47回       
ラッキーだ。
これで大胆な攻撃パターンになる!

(125.194.33.5).. 2008年11月24日 15:11   No.150024
++ 辰屋 (全知全能の神)…7回       
参考にさせていただきます。
(118.243.150.23).. 2008年11月30日 11:34   No.150025
++ チコララシ (全能の神)…11回       
お久しぶりです。
突然割り込んですみませんが、ちょっとした質問があって書き込みました。
自分も見よう見真似でレイヤーを使ったボス戦を作っているのですが・・・
なかなか描画が上手くいかず、滑らかな動きにすることができません。
どのようにすればAGOさんのボス戦のような滑らかな移動や攻撃ができるのでしょうか。
 
あと、一つ謝罪したいことがあります。
レイヤーをボス画像として描画するやり方を参考にしたのにも関わらず、何の報告も無しで真に申し訳ないと思っています。この行為自体許されることなのかどうかも分かりません・・・

(210.234.168.85).. 2008年12月03日 21:59   No.150026
++ AGO (管理人)…-20回       
>滑らかな移動や攻撃
こちら←参考画像
 
"もとの画像(64*64)"と"もとの画像を16ピクセルずらした画像(96*64)"を交互に描画させているだけの事です^^
構文の例(左移動の場合の)としては…
---------------------------
if(kaiga_jyoutai == 0){
Applet1.setMapchip2(bx-1,by,5);
Applet1.setMapchip2(bx,by,6);
Applet1.setMapchip2(bx+1,by,7);
Applet1.setMapchip2(bx-1,by+1,8);
Applet1.setMapchip2(bx,by+1,9);
Applet1.setMapchip2(bx+1,by+1,10);
//もとの画像を16ピクセルずらした画像(96*64)"を描画。
}
else if(kaiga_jyoutai == 1){
bx--;
Applet1.setMapchip2(bx,by,1);
Applet1.setMapchip2(bx+1,by,2);
Applet1.setMapchip2(bx,by+1,3);
Applet1.setMapchip2(bx+1,by+1,4);
Applet1.setMapchip2(bx+2,by,0);
Applet1.setMapchip2(bx+2,by+1,0);
//"もとの画像(64*64)"を描画し、必要な場所に空白チップを配置。
}
kaiga_jyoutai++;
kaiga_jyoutai%=2;
---------------------------
という感じです。
 
突進技や飛び道具技もなめらかに見せてくれるので、
この"16ピクセル移動"はかなり便利な描画処理です^^

(121.84.176.48).. 2008年12月04日 18:59   No.150027
++ チコララシ (全能の神)…12回       
そんな秘密があったんですか!?
やはりこういう素晴らしい発想はAGOさんならではですね。
参考にさせていただきますが、そのまま使うかどうかは分かりません。
丁寧に教えてくださりありがとうございました。

(210.234.168.85).. 2008年12月05日 22:45   No.150028
++ ライディン (全能の神)…12回       
僕にはまったく分からない・・・
難しい話だなぁ・・・
(久しぶりの書き込み)

(58.3.53.34).. 2008年12月06日 11:05   No.150029
++ マサヤ (支配者)…50回       
ライディンさん久しぶりだね
マップチップエネミー作っている俺も参考させていただきまする
ココの掲示板とは別にスクリプト質問掲示板というのを作ってみたらいいんじゃないですか?
あ、いや、別にこれは意見ですけど・・・

(118.110.40.218).. 2008年12月06日 15:02   No.150030
++ マサヤ (支配者)…51回       
あ、上のスレ俺になっちゃったから連スレスマソ
あとマップチップ攻撃じゃないのもスマソ
本題
ビガブラザ戦途中の風のように吸い寄せられる技ってどう書けばいいですか?教えてください。

(118.110.40.218).. 2008年12月10日 17:36   No.150031
++ AGO (管理人)…-18回       
>マサヤさん
Applet1.setMyXReal(x座標);

これを使うんですわ。これは"主人公x座標を
ドット単位でセットする"って言うもんです。
主人公が()内の数値のx座標に強制ワープするといった感じでしょうか。
 
これを使い、"主人公x座標を3ずつ移動させる"等の処理を行わせれば、風の様に吸い寄せられた感がでるといった感じです^^

(121.84.176.48).. 2008年12月11日 19:21   No.150032
++ マサヤ (支配者)…52回       
へ〜・・・じゃなかった
ありがとうございます!
あとレック戦ムズ・・・

(118.110.40.218).. 2008年12月12日 17:36   No.150033
++ 赤青黄色 (神の側近)…32回       
…まさかこんな過去スレをあげることになるとは思いませんでした…。
先に謝っておきます。
過去スレを挙げてすいません。
今回聞きたいことは


画面の固定です。
自分今スクリプトを使った通常面を作ってて、上下に画面が揺れないように固定したいのですがどうすればいいんでしょうか?
えーと、とっても分かりやすく言いますとAGO氏が作った「赤憎む大蛇と遭遇する」
のようにしたいわけなんです。
迷惑かも知れませんが教えていただきたいです。

(123.217.96.190).. 2009年02月04日 20:40   No.150034
++ カービィ (神)…24回       
何のことやらさっぱり
(219.60.148.56).. 2009年02月04日 20:59   No.150035
++ AGO (管理人)…-86回       
>>赤青黄色さん
setScrollArea(最小X座標(0〜164),最小Y座標(0〜20),最大X座標(0〜164),最大Y座標(0〜20))

これはスクロールする範囲を制限するという便利なモノ、これを使うと画面の固定が可能ですヨ。
それぞれの値にはブロック単位を座標を入れましょうとの事。

(121.82.223.35).. 2009年02月04日 21:10   No.150036
++ 赤青黄色 (神の側近)…33回       
どうもです、ありがとうです。


毎回教えてくれて本当どうもですよ、感謝します。

(123.217.96.190).. 2009年02月04日 22:06   No.150037
++ 赤青黄色 (神の側近)…34回       
質問しに来ました。
技をランダムに発動させたいのですができません。
一応スクリプトは動作するんですが途中でえらったり一部の技が発動しなかったりと…。
変数random1=0;をif(time<=41&&time>40){random1=Math.floor(Math.random()*5);}
でかえて、
switch (random1)
{case 1:条件
case 2:条件
case 3:条件
case 4:条件
のように記述してるのですがcase 2などが全く出なかったり、1つのcaseをやってるのにほかのcaseのものも発動したり…。
できれば教えていただけると嬉しいです。

(123.217.96.190).. 2009年02月05日 21:17   No.150038
++ 通りすがり (全知全能の神)…4回       
switch文は、条件文の後にbreakをいれないと
後述した条件全てを実行してしまいますので、
switch (random1)
{case 1:条件 break;
case 2:条件 break;
case 3:条件break;
case 4:条件break;
という風にする必要があります。
逆にこの性質を逆手にとって
if文じゃ手間がかかる作業を省いたりすることもできるんですけどね。
たとえば
if(random1==1 || random1==2){
if(random1==1){条件1}
条件2
} というのを
switch(random1){
case1:条件1
case2:条件2
} としたり…

(125.205.102.31).. 2009年02月06日 00:05   No.150039
++ 赤青黄色 (神の側近)…35回       
回答有難う御座いますぁ。


これで後は音楽選びすれば更新できますんで感謝どす。

(123.217.96.190).. 2009年02月08日 19:21   No.150040


▼返信フォームです▼
Name
Email
ホームページ    
メッセージ
( タグの使用可 )
Forecolor
アイコン   ICON list   Password 修正・削除に使用