drawdxspriteでの演出について
投稿者 : ツキヒ(YahooBB218113030065.bbtec.net)
- 2004/04/04(Sun) 10:52
No.5876
|
|
|
|
|
質問です。
drawdxspriteを使った触れるとちょっと拡大した物が現われるというのをやっているのですが、そこを一工夫してみたいのですが出来るでしょうか?ようするに、普通だとパッといきなり現われるのを少しづつもやもやな感じに登場させたいのですが・・・・・
例えば、drawdxspriteの透明度alphaを透明から徐々に見えるように増やしていって、10秒間くらいしたのちに再び0にして見えなくするという方法がいいと思うんですけれど、どうすればいいでしょうか?
この下のプログラムがその現われるそのものの命令です。
//置手紙の発見! //置手紙に触れたら・・・ if($map.getAt(x,y-15+vy)==$pat_okaimono+15) { //表示する残り時間を設定 i=60; } //残り時間内であれば if(i>0) { drawDxSprite(x+0,y-80,$pat_okaimono+16,0,1,0,220,2,2); //表示し、残り時間を減らす i--; }
|
Re: drawdxspriteでの演出について
投稿者 : でぶちん(ntkyto001047.kyto.nt.isdn.ppp.infoweb.ne.jp)
- 2004/04/04(Sun) 13:09
No.5877
|
|
|
|
alpha=表示時間/600*255; if(表示時間<600){ 表示時間++; }else{ 表示時間=0; } をどっかに書けばいいと思います。 残り時間が1秒という関係で何処に書けばいいかがよく分かりませんでした(汗
|
Re: drawdxspriteでの演出について
投稿者 : ツキヒ(YahooBB218113030065.bbtec.net)
- 2004/04/04(Sun) 13:56
No.5879
|
|
|
|
でぶちんさん、ありがとうございます。
早速試した所(適当にどこかに入れてみました。)・・・主人公の身体がほわわって出てくるわけですが、肝心のものの変化がない みたいです。場所がむずかしいですね、どこに入れればよいのやら。
「残り時間が1秒という関係で」とはどのようなことなのでしょう?
同じ風に消し方の方も同じような命令でで消えてくれるのでしょうか?
|
Re: drawdxspriteでの演出について
投稿者 : でぶちん(ntkyto002041.kyto.nt.isdn.ppp.infoweb.ne.jp)
- 2004/04/04(Sun) 14:36
No.5882
|
|
|
|
いろいろ付け足しておきます。 その主人公がDxSpriteの場合は、物と透明度が一緒になるので、物だけを透明にしたりする場合は↓のようにする必要があります。
if(i>0) { drawDxSprite(x+0,y,80,$pat_okaimono+16,0,1,0,物体alpha,2,2); //表示し、残り時間を減らす i--; }
最初に「物体alpha」を220にするなら、while文の前に 物体alpha=220; と書けばいいです。
>>残り時間が1秒という関係で i=60; となっていたので恐らくここは600になると思います(違ったらすみません)。 その場合、さっきレスで書いた文はなかった事にして(ぉ)、
i=600;//i=60;をこれに直す 物体alpha=255-i/600*255; if(i<=0){ i=600; }
これをwhile文の中の何処かに書けばいけると思います。
|
Re: drawdxspriteでの演出について
投稿者 : ツキヒ(YahooBB218113030065.bbtec.net)
- 2004/04/04(Sun) 18:42
No.5883
|
|
|
|
5883.lzh
すいません、ぜんぜん効果が現われないのですがどうしてなのでしょう?
前回のほうが透明になって徐々に現われる主人公(やりたいこととは違いましたが)のような変化が見られました。今回のは、特に変化がありません。while文の中の何処かに入れて実行して見ましたがこれといった変化なしです。
何がいけないのでしょう?
プログラムを添付してみますので見ていただけたならわかるでしょうか?
|
Re: drawdxspriteでの演出について
投稿者 : いりゴマ(YahooBB220058112121.bbtec.net)
- 2004/04/04(Sun) 19:46
No.5884
|
|
|
|
drawDxSprite(x+0,y-80,$pat_okaimono+16,0,1,0,220,2,2); を、 drawDxSprite(x+0,y-80,$pat_okaimono+16,0,1,0,600-i,2,2); にすればそれっぽくできます。 消える直前に完全に不透明にするのであれば、 drawDxSprite(x+0,y-80,$pat_okaimono+16,0,1,0,255-i/600*255,2,2); でいけます。 それとi=60;をi=600;にしておいてください。
|
Re: drawdxspriteでの演出について
投稿者 : ツキヒ(YahooBB218113030065.bbtec.net)
- 2004/04/04(Sun) 22:11
No.5890
|
|
|
|
いりゴマさん、ありがとうございます。 もわもわと現われるようにはなりました。が、問題がありまして、一番初めのこの命令を使うかもしれません。
drawDxSprite(x+0,y-80,$pat_okaimono+16,0,1,0,220,2,2);
問題というのは、アクションゲームであるために、徐々に現われる演出はいいのですが、あまりゆったりすぎてゲームのテンポが崩れてしまうというのと、消えるときの演出がないというのです。この二つが改善されるのであれば使いたいのですが難しいでしょうか?
そのためにi=60;という数値にしたのです。こちらの方が、徐々に現われるという演出はないもののゲームのテンポにはよいのではないかという判断の元で決めました。
少しでも早くというのは難しいのでしょうか?
|
Re: drawdxspriteでの演出について
投稿者 : でぶちん(ntkyto002031.kyto.nt.isdn.ppp.infoweb.ne.jp)
- 2004/04/05(Mon) 11:23
No.5893
|
|
|
|
5893.zip
恐らく10秒でalphaを255という速さでするため、220から始めて1秒間で約25増やすという動作をさせたかったんだと思われます(245になってしまうが 違ってても参考になれば嬉しいです。
・・・なんか人にばかり教えてて自分の問題が全然解決してない気もするが・・・
|
Re: drawdxspriteでの演出について
投稿者 : いりゴマ(YahooBB220058112121.bbtec.net)
- 2004/04/05(Mon) 14:28
No.5894
|
|
|
|
drawDxSprite(x+0,y-80,$pat_okaimono+16,0,1,0,600-i*10,2,2); か、 drawDxSprite(x+0,y-80,$pat_okaimono+16,0,1,0,255-i/60*255,2,2); でどうでしょう。
|
Re: drawdxspriteでの演出について
投稿者 : ツキヒ(YahooBB218113030065.bbtec.net)
- 2004/04/05(Mon) 17:42
No.5895
|
|
|
|
でぶちんさん、いりゴマさんありがとうございます。
でぶちんさんの添付されましたプログラムを見てみましたが、どのように変わったのか分かりませんでした。 すいません勉強不足です。でも、「こういう使い方もあるんだな!」と、いうのを知りました。
いりゴマさんのこのプログラム drawDxSprite(x+0,y-80,$pat_okaimono+16,0,1,0,600-i*10,2,2); に近いかなと思われますので使わせていただきたいと思います。近いかなというのは出現する時には透明から 現われるんですが消えるときは一瞬で消えるからですが、それは出来ますか? それとも一瞬で消える方がいいでしょうか?うーん・・・
本当はゲームのシステムなんかよりも、ゲームのおもしろさなどで作らなきゃいけないのに、尚且つ、自分では このようなプログラムも作れないのに助けていただきましてありがとうございました。 もっともっと勉強しないといけないなと思いました。
|
|