FC2ブログ

スポンサーサイト

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

魔法少女は4度目の旅に出る 完成版公開

詳細ページを開く
完成版公開です

・2016/01/04
記事を修正しました
スポンサーサイト

「SharpDX」フォントを読み込んで描画

using System;
using DX = SharpDX;
using DX2D = SharpDX.Direct2D1;
using DXWrite = SharpDX.DirectWrite;
using System.Windows;
using System.Windows.Interop;

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

window.MouseDown += (sender, e) =>
{
var hwnd = new WindowInteropHelper(window).Handle;

var dx2dFactory = new DX2D.Factory();
var dx2dRender = new DX2D.WindowRenderTarget(dx2dFactory, new DX2D.RenderTargetProperties(), new DX2D.HwndRenderTargetProperties { Hwnd = hwnd, PixelSize = new DX.Size2(300, 300) });


//文字描画のための用意
var dxWriteFactory = new DXWrite.Factory();
//フォントを読み込む
//今回はtest.ttfを読込
var fontFile = new DXWrite.FontFile(dxWriteFactory, "test.ttf");
var fontFace = new DXWrite.FontFace(dxWriteFactory, DXWrite.FontFaceType.Truetype, new DXWrite.FontFile[] { fontFile }, 0, DXWrite.FontSimulations.None);



//表示させる文字列
var text = "表示テスト";
//文字列を数値化
var ary = new int[text.Length];
for (var i = 0; i < ary.Length; i++) ary[i] = (int)text[i];
var inde = fontFace.GetGlyphIndices(ary);



//文字列描画用オブジェクトの作成
var glyph = new DXWrite.GlyphRun();
//使用するフォント
glyph.FontFace = fontFace;
//文字サイズ
glyph.FontSize = 30;
//表示する文字列
glyph.Indices = inde;


dx2dRender.BeginDraw();
dx2dRender.Clear(DX.Color.Wheat);


//文字列の描画
dx2dRender.DrawGlyphRun(new DX.Vector2(100, 100), glyph, new DX2D.SolidColorBrush(dx2dRender, DX.Color.Black), DX2D.MeasuringMode.GdiClassic);


dx2dRender.EndDraw();
};

window.SizeToContent = SizeToContent.WidthAndHeight;
window.Content = new FrameworkElement { Width = 300, Height = 300 };
window.ShowDialog();
}
}
}

「SDL」キーの正確な判定

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using SDL2;

namespace てすと
{
class Class1
{
static void Main()
{
if(SDL.SDL_Init(SDL.SDL_INIT_EVERYTHING) < 0) throw new Exception();
SDL.SDL_CreateWindow("てすと", 100, 100, 300, 300, SDL.SDL_WindowFlags.SDL_WINDOW_SHOWN);

var loop = true;

while (loop)
{
var e = new SDL.SDL_Event();

SDL.SDL_PollEvent(out e);

switch (e.type)
{
case SDL.SDL_EventType.SDL_QUIT:
loop = false;
break;
}

//キー判定の開始
KeyCheck();

SDL.SDL_Delay(1000 / 30);
}

SDL.SDL_Quit();
}


//キー判定を開始する関数
static void KeyCheck()
{
//たぶん使用キーの数
int num = 0;
//キーの状態を示す値をポインタで取得
IntPtr ptr = SDL.SDL_GetKeyboardState(out num);

//ここからポインター使用
//取り扱い注意
unsafe
{
//キー判定をするための定数
//今回はAキーとSキーを判定する
const int key0 = (int)SDL.SDL_Scancode.SDL_SCANCODE_A;
const int key1 = (int)SDL.SDL_Scancode.SDL_SCANCODE_S;

//キーボードの状態をポインタで取得
var p = (sbyte*)ptr.ToPointer();

//p[int型]で、キーが押されているかどうかを判定
//0なら今は押されていない。1なら今は押されている
//
//今キーが押されているかどうかがわかり、
//他のキーの同時押しの判定ができるので使いやすい
Console.WriteLine("Aキー判定 " + p[key0] + " : " + "Sキー判定 " + p[key1]);
}
}

}
}
プロフィール

みにおん

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

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

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

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

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

・web小説
最後の時の夢

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

この人とブロともになる

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