ロボット、千葉ロッテマリーンズについていいかげんなことを書きます。
×
[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
OpenRTM.NETは.NETフレームワーク上で動作するので,F#からでも使えるはずです.
OpenRTM.NETはここからダウンロードできます.
簡単なサンプルを作ってみました.
ソースはこんな感じ.
#I @"C:\Program Files\SEC\OpenRTM.NET\bin";
#r "OpenRTM.Core.dll";
#r "OpenRTM.Extension.dll";
#r "OpenRTM.IIOP.dll";
#r "OpenRTM.WCF.dll";
#light
open OpenRTM.Core;
open OpenRTM.Extension;
open System;
open System.Collections.Generic;
open System.Linq;
open System.Text
[<Component(Category = "Examples", Name = "Sample")>]
[<DetailProfile(
ActivityType = "DataFlowComponent",
Description = "Hello World Component",
Language = "F#",
LanguageType = "Compile",
MaxInstance = 10,
Vendor = "Nobu",
Version = "1.0.0")>]
[<CustomProfile("CreationDate", "2010/11/20")>]
type Sample() as x =
inherit DataFlowComponent()
override x.OnExecute(exec_handle) =
Console.WriteLine("Hello World");
ReturnCode_t.RTC_OK;
let main() =
let manager = new Manager()
manager.Activate();
let comp = manager.CreateComponent("Sample");
comp.GetComponentProfile().Display();
manager.Run();
do main()
F#も悪くないかも.
にほんブログ村
OpenRTM.NETはここからダウンロードできます.
簡単なサンプルを作ってみました.
ソースはこんな感じ.
#I @"C:\Program Files\SEC\OpenRTM.NET\bin";
#r "OpenRTM.Core.dll";
#r "OpenRTM.Extension.dll";
#r "OpenRTM.IIOP.dll";
#r "OpenRTM.WCF.dll";
#light
open OpenRTM.Core;
open OpenRTM.Extension;
open System;
open System.Collections.Generic;
open System.Linq;
open System.Text
[<Component(Category = "Examples", Name = "Sample")>]
[<DetailProfile(
ActivityType = "DataFlowComponent",
Description = "Hello World Component",
Language = "F#",
LanguageType = "Compile",
MaxInstance = 10,
Vendor = "Nobu",
Version = "1.0.0")>]
[<CustomProfile("CreationDate", "2010/11/20")>]
type Sample() as x =
inherit DataFlowComponent()
override x.OnExecute(exec_handle) =
Console.WriteLine("Hello World");
ReturnCode_t.RTC_OK;
let main() =
let manager = new Manager()
manager.Activate();
let comp = manager.CreateComponent("Sample");
comp.GetComponentProfile().Display();
manager.Run();
do main()
F#も悪くないかも.
にほんブログ村
PR
と言うわけで新企画です.
・・・・なんか中途半端で終わりそうな気配がプンプンしますが.
F#とXNAでゲームを作ってみると言う新企画です.
僕自身,F#を始めたのが5時間ぐらい前で,XNAに関しても全くのド素人なのでむしろ教えて貰うことのほうが多いと思いますがよろしくお願いします.
では,さっそくインストールから始めます.
インストール方法はF#もXNAもインストーラを実行するだけです.
F#はインストール後にPathを通しといた方が良いかも.(勝手にPath通るんだっけ?)
C:\Program Files\FSharp-2.0.0.0\binみたいなところに.
とりあえず,簡単な画面を出すだけのサンプルを作ってみましょう.
ソースはこんな感じ.
#I @"C:\Program Files\Microsoft XNA\XNA Game Studio\v3.0\References\Windows\x86";
#r "Microsoft.Xna.Framework.dll";
#r "Microsoft.Xna.Framework.Game.dll";
#light
open System;
open System.Collections.Generic;
open Microsoft.Xna.Framework;
open Microsoft.Xna.Framework.Audio;
open Microsoft.Xna.Framework.Content;
open Microsoft.Xna.Framework.Graphics;
open Microsoft.Xna.Framework.Input;
open Microsoft.Xna.Framework.Storage;
type MyGame() as x =
inherit Game(IsMouseVisible=true,
IsFixedTimeStep=false)
let m_graphics = new GraphicsDeviceManager(x)
let mutable m_num = 0
let mutable m_bgc = new Color(20uy, 80uy, 80uy)
let mutable charaTexture = null
let mutable spriteBatch = null
do
x.Window.Title <- "sample0"
m_graphics.PreferredBackBufferWidth <- 640;
m_graphics.PreferredBackBufferHeight <- 480;
override x.Initialize() =
base.Initialize()
override x.Update gametime =
m_num <- m_num + 1
base.Update gametime
override x.Draw gametime =
m_graphics.GraphicsDevice.Clear(
m_bgc
)
base.Draw gametime
let main() =
let game = new MyGame()
game.Run()
do main()
作ったら,sample.fsxみたいな名前で保存して,
fsc sample.fsx
とコマンドプロンプトから打つなりしてやれば実行ファイルを作ってくれますし,右クリックしてRun with F# Interactiveをしてやっても実行できるようです.
大体,C#でやるのと同じだと思うので,他を参考にした方が良いかも.
・・・正直,C#でもやったことのない僕が上手く説明出来るとは思えないし.
とりあえず今の進捗状況
キーボードで動画に映っている鼻くそみたいなのを動かしています.
アクションゲームっぽくなってきたかな?
にほんブログ村
・・・・なんか中途半端で終わりそうな気配がプンプンしますが.
F#とXNAでゲームを作ってみると言う新企画です.
僕自身,F#を始めたのが5時間ぐらい前で,XNAに関しても全くのド素人なのでむしろ教えて貰うことのほうが多いと思いますがよろしくお願いします.
では,さっそくインストールから始めます.
インストール方法はF#もXNAもインストーラを実行するだけです.
F#はインストール後にPathを通しといた方が良いかも.(勝手にPath通るんだっけ?)
C:\Program Files\FSharp-2.0.0.0\binみたいなところに.
とりあえず,簡単な画面を出すだけのサンプルを作ってみましょう.
ソースはこんな感じ.
#I @"C:\Program Files\Microsoft XNA\XNA Game Studio\v3.0\References\Windows\x86";
#r "Microsoft.Xna.Framework.dll";
#r "Microsoft.Xna.Framework.Game.dll";
#light
open System;
open System.Collections.Generic;
open Microsoft.Xna.Framework;
open Microsoft.Xna.Framework.Audio;
open Microsoft.Xna.Framework.Content;
open Microsoft.Xna.Framework.Graphics;
open Microsoft.Xna.Framework.Input;
open Microsoft.Xna.Framework.Storage;
type MyGame() as x =
inherit Game(IsMouseVisible=true,
IsFixedTimeStep=false)
let m_graphics = new GraphicsDeviceManager(x)
let mutable m_num = 0
let mutable m_bgc = new Color(20uy, 80uy, 80uy)
let mutable charaTexture = null
let mutable spriteBatch = null
do
x.Window.Title <- "sample0"
m_graphics.PreferredBackBufferWidth <- 640;
m_graphics.PreferredBackBufferHeight <- 480;
override x.Initialize() =
base.Initialize()
override x.Update gametime =
m_num <- m_num + 1
base.Update gametime
override x.Draw gametime =
m_graphics.GraphicsDevice.Clear(
m_bgc
)
base.Draw gametime
let main() =
let game = new MyGame()
game.Run()
do main()
作ったら,sample.fsxみたいな名前で保存して,
fsc sample.fsx
とコマンドプロンプトから打つなりしてやれば実行ファイルを作ってくれますし,右クリックしてRun with F# Interactiveをしてやっても実行できるようです.
大体,C#でやるのと同じだと思うので,他を参考にした方が良いかも.
・・・正直,C#でもやったことのない僕が上手く説明出来るとは思えないし.
とりあえず今の進捗状況
キーボードで動画に映っている鼻くそみたいなのを動かしています.
アクションゲームっぽくなってきたかな?
にほんブログ村