アクションrpg
投稿者 : 時雨(ZQ196231.ppp.dion.ne.jp)
- 2005/06/22(Wed) 09:33
No.8376
|
|
|
|
|
テイルズのように剣で当てると敵にダメージを与え そのダメージを敵の頭上で表記したいのですが ドロウテキストではダメなのでしょうか?
|
Re: アクションrpg
投稿者 : N@N(actkyo105075.adsl.ppp.infoweb.ne.jp)
- 2005/06/22(Wed) 20:34
No.8377
|
|
|
|
たとえば、ダメージを受けるオブジェクト($jikiとします)に
//ここから function damage(_n){ ct=60; dmg=_n; } //ここまではextends ******* の次の行あたりに
//ここから ct--; if (ct>=0){ drawText(x,y-40,dmg,$clRed); } //ここまではwhileループ内に と書いておき、ダメージを与えるオブジェクトが、与える時に $jiki.damage(n);//nはダメージ数値 を実行すれば、ダメージを与えてから1秒間、自機の上にその数値が表示されます。 表示時間を延ばしたいときは、ct=の値を増やしてください。 ダメージを受けるたびに表示は更新され、複数表示されることはありません。
|
Re: アクションrpg
投稿者 : 時雨(ZQ194171.ppp.dion.ne.jp)
- 2005/06/23(Thu) 12:03
No.8378
|
|
|
|
Re: アクションrpg
投稿者 : 時雨(ZQ190002.ppp.dion.ne.jp)
- 2005/06/24(Fri) 18:44
No.8379
|
|
|
|
↓を押している間しゃがみ ↓→同時押しでしゃがみ歩き という動きにしたいのですが 立ち歩きとしゃがみ歩きの絵のサイズが違うので yに誤差が生じます。 しゃがみ時にその誤差を埋める為 ジャンプ時の落下の処理をします すると再び立ち歩きをする時に地面に埋まった状態で歩いてしまうのです。 どうか力をかして下さい
|
Re: アクションrpg
投稿者 : 時雨(ZQ190002.ppp.dion.ne.jp)
- 2005/06/24(Fri) 19:02
No.8380
|
|
|
|
extends SpriteChar; $map.setBGColor(color(0,200,255));
life=30; // あらかじめ自機のstatusをきめておく maxlife=30; st=10; df=10; lv=1; ex=0; maxex=10;
a=newAnimation();//略
while (1) { if(EX>=maxEX){ //レベルアップの処理 maxEX=maxEX*2; maxlife+=10; life=maxlife; Lv+=1; st+=2; df+=1; }
ct--; if (ct>=0){ drawText(x,y-40,hp,$clRed); }
a.pause(); if ($map.getAt(x,y-50)==$pat_map+0 ) { //上にブロックがあるとき vy=1; //それ以上、上に行かないようにする }
if (getkey(39) && $map.getAt(x+16,y)!=$pat_map+0&& $map.getAt(x+16,y-46)!=$pat_map+0&& $map.getAt(x+16,y+20)!=$pat_map+0&& $map.getAt(x+16,y-16)!=$pat_map+0) { x+=3; f=0; a.swing($pat_jiki+0,$pat_jiki+7,3); } // ↑ カーソルキー右が押され、さらに右側が壁でなければ右へ移動 if (getkey(37) && $map.getAt(x-16,y)!=$pat_map+0&& $map.getAt(x-16,y-46)!=$pat_map+0&& $map.getAt(x-16,y+20)!=$pat_map+0&& $map.getAt(x-16,y-16)!=$pat_map+0) { x-=3; f=1; a.swing($pat_jiki+0,$pat_jiki+7,3); } // ↑ カーソルキー左が押され、さらに左側が壁でなければ左へ移動 if(getkey(40)){if($map.getat(x,y+40)==$pat_map+0){ vy=0;}else{vy+=2;p=$pat_jikis+0;} }
if(getkey(40)&&(getkey(39))&& $map.getat(x+16,y)!=$pat_map+0&& $map.getat(x+16,y-36)!=$pat_map+0&& $map.getat(x+16,y+20)!=$pat_map+0&& $map.getat(x+16,y-16)!=$pat_map+0){ x-=2; f=0; a.swing($pat_jikis+0,$pat_jikis+7,4); }
if(getkey(40)&&(getkey(37))&& $map.getat(x-16,y)!=$pat_map+0&& $map.getat(x-16,y-36)!=$pat_map+0&& $map.getat(x-16,y+20)!=$pat_map+0&& $map.getat(x-16,y-16)!=$pat_map+0){ x+=2; f=1; a.swing($pat_jikis+0,$pat_jikis+7,4); }
tb+=1; if(getkey(90)==1 && tb>15){ if(f==0){appear(new BUKI(x,y,$pat_BUKI1+0,0));} if(f==1){appear(new BUKI(x,y,$pat_BUKI1+0,1));} tb=0; } y+=vy; // vy: y 方向の速度。 yにvy を加える if ($map.getAt(x,y+50+vy)==$pat_map+0 ) { // ブロックに当たっていたら vy=0; // 落下速度を0にする if (getkey(88)) vy=-10; // スペースキーを押したらジャンプ } else { // ブロックに当たっていなかったら vy+=0.5; // 落下速度を上げる if(vy>15){ vy=15; } } $map.scrollTo(x-$screenWidth/2,y-$screenHeight/2); // スクロールする update(); }
|
Re: アクションrpg
投稿者 : BISS(i60-47-186-148.s02.a005.ap.plala.or.jp)
- 2005/06/25(Sat) 00:10
No.8381
|
|
|
|
えぇと、if($map.getat(x,y+40)==$pat_map+0が接地しているかの判定ですよね? とすると、プログラムの下の方に
while($map.getat(x,y+41)==$pat_map+0){ //埋まっているか y-=1; }
と追加してみてはどうですか?
|
Re: アクションrpg
投稿者 : 時雨(ZQ190002.ppp.dion.ne.jp)
- 2005/06/25(Sat) 01:19
No.8382
|
|
|
|
添付
投稿者 : nuntora(proxy13.rdc1.kt.home.ne.jp)
- 2005/06/26(Sun) 01:50
No.8387
|
|
|
|
プログラムも長いようですので、ファイルを添付していただけましたら、より的確な判断ができると思います。 もし、ファイルが重すぎて載せきれないようであれば、効果音を削っていただいたり、もしくは必要なオブジェクトだけを載せたプログラムを一つ作成していただけませんでしょうか。
|
|