アニメーションいぢいぢ(1)

3月29日、今日は日付が変わる前の日記です。もふもふ。

今日はずいっとWPFをもそもそしてましたー

ウィンドウの拡大

ウィンドウを大きくするとゲーム画面もそれに応じて大きくなるってやつ、ありますよね
レイアウトいろいろいじったりして対応しようとしてたんですが、
どうもフォントが自動で拡大されない…ぐぬぬ

なんて思ってたらViewBoxなる素敵なものを発見しました。やったね。


メッセージ表示なウィンドウ(コントロール)

ゲームといえばメッセージ表示が必要!ってことで、いじってました。
文字に色とかつけたいなーって思って RichTextBoxを使ってみました。

が、これ使うの初めてで苦戦しましたのん。
どうやらHtmlみたいなのでかかにゃかいけないのですが、string型に放り込んだxamlをFlowDocumentに変換しようとするとに例外が飛び出しやがりまして、原因がわかりませんでした。
結局、FlowDocumentのBlocksに文字を放り込んだBlockをぶっこみました。

public void SetMyText(FlowDocument fd){
    string[] str = new string[]{
        "にくまんにくまんにくまんにくまん",
        "あんまんあんまんあんまんあんまんあんまん",
        "もきゅもきゅもきゅもきゅもきゅもきゅもきゅもきゅもきゅもきゅ"};

    fd.Blocks.Clear();
    foreach(var i in str){
        fd.Blocks.Add(new Paragraph(new Run(i)));
    }
}

f:id:ofuton_usagi:20150329231910p:plain

で、思ったことたち

  1. 改行毎にParagraphいるの…
  2. xamlから変換できてないから、シナリオ書くときにFlowDocument以下の要素でxaml書く感じにできない…
  3. 徐々に文字を出していくやつ、あれどうしよう…

徐々文字は保留。xamlの文字列から変換はまた後日ためしてみるよ…


アニメーション

またもやWPFで使ったことのなかった機能、アニメーション!
回転させたり色変えたり移動させるとかは標準でできるみたいです!やったー!
でも画像の差し替えによるアニメーションは工夫しないと無理みたいです!ア゛ア゛ア゛ア゛

とりあえずいろいろ試してるところなのですが、
現状はTick毎に呼んでくれるイベントハンドラがあったので、そこで画像差し替えをしております。

ただ、FpS?何それぅ?って感じのゲームなので、描画とか動作タイミングとかはすべて自動でおまかせしてる現状。うん、さすがにそれじゃアニメーションだとまずいよね…。
1秒間ごとに切り替え、とかの指定にしなきゃね…。

現状はObjectAnimationUsingKeyFrames使えばいけるかも…?っていうテキトーな期待を抱いておるとろこ。書いてて眠くなってきたや

f:id:ofuton_usagi:20150329231606g:plain