FC2ブログ

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

魔法少女は再び旅に出る 制作状況8

ゲームで使用するステージはまだ1つもできていませんが、
今日は、作ったステージを読みだすための機能を実装していました

これから作るステージの数は、おおよそ40ほどです
スポンサーサイト

「WPF」 フォームにWPF要素を表示

using System;
using System.Windows;
using System.Windows.Shapes;
using System.Windows.Media;
using System.Windows.Controls;
using System.Windows.Interop;

using System.Linq;

namespace Project1
{
internal static class Program
{
[STAThread]
private static void Main()
{
//フォームを作成
var form = new System.Windows.Forms.Form();

//表示するVisualオブジェクト
var visual = new TextBlock { Background = Brushes.Wheat, Text = "test" };

//フォームに子要素を追加するための構造体を作成
var hsp = new HwndSourceParameters(null, 200, 200);
//フォームのハンドルを指定
hsp.ParentWindow = form.Handle;
//ウィンドウスタイルを指定
//0x40000000は、子要素を作成
//0x10000000は、作成した子要素を見えるようにする
hsp.WindowStyle = 0x10000000 | 0x40000000;

//フォームに子要素を表示
var hwndSource = new HwndSource(hsp);
//表示するVisualオブジェクト
hwndSource.RootVisual = visual;

//ウィンドウに表示する文字列を変えられる
form.Text = "あいうえお";
//フォームの表示
form.ShowDialog();

}
}
}

「WPF」 HwndSourceを使用してウィンドウの作成

using System;
using System.Windows;
using System.Windows.Shapes;
using System.Windows.Media;
using System.Windows.Controls;
using System.Windows.Interop;

namespace Project1
{
internal static class Program
{
[STAThread]
private static void Main()
{
//表示させたいVisualオブジェクト
DrawingVisual visual = new DrawingVisual();
//アプリ実行用
Application app = new Application();

//ウィンドウのデータ
//
//・コンストラクタの詳細
//第一引数 ウィンドウの名前
//第二引数 ウィンドウの横幅
//第三引数 ウィンドウの縦幅
HwndSourceParameters hsp = new HwndSourceParameters("表示テスト", 300, 300);

//ウィンドウを表示
HwndSource hwndSource = new HwndSource(hsp);
//表示するVisualオブジェクト
hwndSource.RootVisual = visual;
//ウィンドウを閉じる時の処理
hwndSource.Disposed += (sender, e) =>
{
//ウィンドウを閉じる際に必ず呼び出すこと
//(アプリケーションが終了しないため)
app.Shutdown();
};
//ウィンドウを、アプリ終了まで表示
app.Run();


//アプリ終了時に、メモリ使用量を確認
Console.WriteLine(GC.GetTotalMemory(false));
}
}
}

魔法少女は再び旅に出る 制作状況7

今日もプログラミングしました。
ステージは全然できていません。

画像は全てできた、と思ってたら、
実は足りなかった、ということがあったり、
画像を修すべきだったりする状況になりました

先はかなり長いですが、がんばって作業します

今回の新要素として、
条件を満たして装備の入手や、
装備の付け替えでを実装予定です

魔法少女は再び旅に出る 制作状況6

ストーリーを決めました。



   これは、はるかな昔での出来ごとである

 かつて、強大なる力を持つ魔王「デーモン」が、
世界を滅ぼすために邪悪なる怪物どもを創造し、
各地に混乱をもたらす。
 主人公である魔法少女「キャプテン・まほ」は、
魔王を倒すべく立ち上がる旅に出た。

 苦難に満ちた長い旅であったが、
ついに魔王の元へとたどり着き、
魔王との激しい戦いを繰り広げた。

 長い死闘の果てに、
ついにキャプテン・まほは魔王を封印し、
世界を救うことができた。
 キャプテン・まほは故郷に帰還し、
長い休息を得る。

   これが、遠い昔で起きた惨劇である



 ある日のできごと。
世界中で、倒されたはずの怪物どもが闊歩しはじめ
再び混乱につつまれた。

 そう、魔王デーモンが封印を打ち破り、
再び世界を滅ぼし始めたのだ。
 キャプテン・まほは、魔王をもう一度倒すべく、
魔法少女は再び旅に出る。


「WPF」 RenderTargetBitmapの使い方

using System;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Media;
using System.Windows.Media.Imaging;

namespace Project1
{
internal static class Program
{
[STAThread]
private static void Main()
{
Window window = new Window();
Image image = new Image();

//Visualオブジェクトを作成
DrawingVisual dv = new DrawingVisual();

//DrawingContextオブジェクトを作成
using (DrawingContext dc = dv.RenderOpen())
{
//DrawingVisualオブジェクトに描画
dc.DrawEllipse(Brushes.Black, null, new Point(100, 100), 30, 30);
}

//RenderTargetBitmapはVisualオブジェクトを
//ビットマップで描画するクラス
//
//第一引数で横幅を指定
//第二引数で縦幅を指定
//
//第三引数で横方向のDPIを指定(96が基本)
//第四引数で縦方向のDPIを指定(96が基本)
//
//第五引数でピクセルフォーマットを指定
//(PixelFormats.Defaultを指定)
RenderTargetBitmap bitmap = new RenderTargetBitmap(300, 300, 96, 96, PixelFormats.Default);

//Clear関数でビットマップの初期化
bitmap.Clear();
//Render関数でVisualオブジェクトを描画
bitmap.Render(dv);

//画像を表示するようにする
image.Source = bitmap;


//ウィンドウと画像の表示
window.Content = image;
window.ShowDialog();
}
}
}

魔法少女は再び旅に出る 制作状況5

RenderTargetBitmapクラスを使ったら、
テキストのアンチエイリアスの解除ができた

魔法少女は再び旅に出る 制作状況4

WPFでテキストのアンチエイリアスを解除する方法もわからない
作業は少しずつ進めていきます

もう眠いから寝ます

MiniRenderを削除

ライブラリ「MiniRender」を削除しました

魔法少女は再び旅に出る 制作状況3

sharpdxでmp3を再生する方法が、検索しても分らない・・・
今回はWPFで作ることにしよう
プロフィール

みにおん

Author:みにおん
c#でゲームを作る人です
web小説なども書いています

低学歴で馬鹿なのパート従業員
ですが、よろしく

相互リンク・ブロとも募集中です
コメントなどご自由にどうぞ

ホームページを見る
Twitter(個人ページ)
PIXIV(個人ページ)

○自作ゲーム一覧
ふりーむ
フリーゲーム夢幻
100%ふりげストア

・web小説
最後の時の夢

最新記事
最新コメント
月別アーカイブ
カテゴリ
ブロとも一覧
検索フォーム
ブロとも申請フォーム

この人とブロともになる

RSSリンクの表示
リンク
アクセスランキング
QRコード
QR
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。