2016/11/07 (月)
吹き出しをいろんな方向に出したい!
なでしこ | |
なでしこには、「吹き出し表示」とか、フォームを「吹き出し変形」とかの便利な機能があって、簡単に吹き出しを出せるので、折角だから(?)と、前回色を塗ったキャラ達に、色々しゃべらせて遊んでたんだけど、吹き出しの向きっていうのは変えられないみたいなんだよね。
二人並べて漫才なんかさせようとしたら、吹き出しの向きが同じじゃ、不都合だよね~。
画像通り変形を使って、自前でなんとかするしか無いのかね?
・・・とゆーわけで、なんとかしてみたんだけど、どうだろう。
#----------------------------------------------------------------------- # 任意の方向へ吹き出し表示 # なでしこの「吹き出し表示」やフォームの「吹き出し変形」は、 # 左上にしか出来無いっぽいので、各方向の吹き出しを作る。 #----------------------------------------------------------------------- #『吹き出し作成』 #・フォームを「方向」へW,Hで吹出作成。 # 「上」「下」「左」「右」「右上」「右下」「左上」「左下」の八方向。 # ※「方向」は矢印の向きではなく、吹き出し自体の出る向きである事に注意。 # (なでしこ標準の「吹き出し変形」は、「左上」ということになる) # ※吹き出し変形と違い、直近に指定した塗り色の吹き出しとなる。 #----------------------------------------------------------- #『吹出セリフ表示』 #・フォームをSに指定した文章のサイズに合わせて吹出作成して文章を表示。 # 「minW,minH」は、文章が短かった時の、吹き出しの最小サイズ。 # 「方向」は省略すると、直近の指定が有効になります。 #----------------------------------------------------------------------- #----------------------------------------------------------------------- ●吹出作成({グループ=?}FをW,Hで方向へ) xx=0。yy=0。ww=0。hh=0。 方向で条件分岐 右上ならば、 #矢印は左下 Fのポケットは「右上」 x1=0。y1=H。x2=W/8。y2=H/4*3。x3=W/4。y3=H/8*7。 右下ならば、 #矢印は左上 Fのポケットは「右下」 x1=0。y1=0。x2=W/4。y2=H/8。x3=W/8。y3=H/4。 左上ならば、 #矢印は右下(吹出し変形と同じ) Fのポケットは「左上」 x1=W。y1=H。x2=W/4*3。y2=H/8*7。x3=W/8*7。y3=H/4*3。 左下ならば、 #矢印は右上 Fのポケットは「左下」 x1=W。y1=0。x2=W/4*3。y2=H/8。x3=W/8*7。y3=H/4。 上ならば、 #矢印は下向き hh=H/10。Fのポケットは「上」 x1=W/2。y1=H+hh。x2=W/2-W/20。y2=H-H/100。x3=W/2+W/20。y3=H-H/100。 下ならば、 #矢印は上向き hh=H/10。yy=hh。Fのポケットは「下」 x1=W/2。y1=0。x2=W/2-W/20。y2=hh+H/100。x3=W/2+W/20。y3=hh+H/100。 左ならば、 #矢印は右向き ww=W/10。Fのポケットは「左」 x1=W+ww。y1=H/2。x2=W-W/100。y2=H/2-H/20。x3=W-W/100。y3=H/2+H/20。 右ならば、 #矢印は左向き ww=W/10。xx=ww。Fのポケットは「右」 x1=0。y1=H/2。x2=ww+W/100。y2=H/2-H/20。x3=ww+W/100。y3=H/2+H/20。 Fの可視はオフ。 FのクライアントWはW+ww。FのクライアントHはH+hh。 Fを$00FF00で画面クリア。 線スタイルは透明。 Fのxx,yyからxx+W,yy+Hへ円。1秒待つ。 Fの「{x1},{y1},{x2},{y2},{x3},{y3}」へ多角形。 F→画像通り変形。 Fの可視はオン。 #----------------------------------------------------------- ●吹出セリフ表示({グループ=?}FにSを{整数=100}minW,{整数=50}minHで{文字列=「」}方向へ) Aとは文字列=「」。Bとは文字列=「」。 Sで反復 Bはそれ。 もし(Aの文字数)<(Bの文字数)ならば、A=B。 swとは整数=Aの文字幅取得。shとは整数=(Sの文字高さ取得)*(Sの要素数) fwとは整数=(Aの文字幅取得)*1.5。fhとは整数=(Sの文字高さ取得)*(Sの要素数)*1.8 もし、fw<minWならば、fw=minW。#</pp> もし、fh<minHならば、fh=minH。#</pp> sxとは整数=fw/2-sw/2-10 syとは整数=fh/2-sh/2 もし、方向=空ならば、方向=F→ポケット。 もし、方向=空ならば、方向=左上。 もし、方向=右ならば、sx=sx+fw/10 #矢印の長さ分 もし、方向=下ならば、sy=sy+fh/10 Fをfw,fhで方向へ吹出作成。 Fのsx,syへSを文字表示。 #----------------------------------------------------------------------- #以下はテスト !母艦設計=「母艦の可視はオフ」 長明=「行く川の流れは絶えずしてしかも元の水にあらず{改行}{改行}淀みに浮かぶうたかたは、かつきえかつうかみて{改行}{改行}久しく止まりたるなし」 芭蕉=「月日は百代の過客にして、行き交ふ年もまた旅人なり。{改行}船の上に生涯を浮かべ、馬の口とらへて老いを迎ふる者は、日々旅にして旅を栖とす。{改行}古人も多く旅に死せるあり。」 平家=「祇園精舎の鐘の声、{改行}諸行無常の響きあり。{改行}{改行}沙羅双樹の花の色、{改行}盛者必衰の理をあらはす。{改行} おごれる人も久しからず、{改行}ただ春の夜の夢のごとし。{改行}{改行}たけき者も遂にはほろびぬ、{改行}ひとへに風の前の塵に同じ。」 吹出方向=「上,下,左,右,右上,右下,左上,左下」を「,」で区切ったもの。 ふきだしとはフォーム。 これをダブルクリックした時は~終了 #----------------------------------------------------------- ふきだしの位置は「{400},{200}」 #塗り色は赤色 #吹出方向で反復。 # ふきだしを300,200でそれへ吹出作成。 # 2秒待つ 塗り色は$EEBBCC。文字サイズは10。 長明をふきだしに吹出セリフ表示。 3秒待つ。 塗り色は$BBCCEE 芭蕉をふきだしに「右上」へ吹出セリフ表示。 3秒待つ。 塗り色は$BBEECC 平家をふきだしに「左」へ吹出セリフ表示。 3秒待つ。 塗り色は$FFFF99 吹出方向で反復。 文字サイズは24 ふきだしにそれを300,200でそれへ吹出セリフ表示。 2秒待つ #-----------------------------------------------------------------------
モノスゴク無理矢理系で、単に楕円に多角形で三角の矢印をくっつけているだけ;;;
こんな方式だから、吹き出しに枠を付けるのは無理そうだけど、吹き出し変形もまあそうだから、いっかー。
本気の吹き出しを出したければ、ふつーに画像を用意して画像通り変形すればいいだけだもね~。
でも、取りあえず、与えた文字列に合わせて、いろんな方向に吹き出しを作成して、しゃべらすことが出来るようになったので、ご満悦~♪
コメントを書く
トラックバック - http://nadesiko.g.hatena.ne.jp/snowdrops89/20161107