2009-05-01から1ヶ月間の記事一覧

role-playing game starterkit続き

キーボード操作がめんどくさくなったのでPCにxbox360コントローラ挿してやる。 ちゃんとQuestをこなしてなかった(敵を倒した後、報酬を貰いに戻らないとか)ので、 必要なイベントが発生せず、Questがまったく進行してなかった。 言われた通りにやり残してい…

Role playing game続き

とにかく手当たり次第にスターターキットをやってみようと思い、まずはrole playing gameをがっつりとやり始める。 以下、ネタバレです。 味方は warrior (戦士)、wizard (魔法使い)、barbarian (野蛮人、というかゴリキャラ)、 paladin (騎士)、red mage (…

XNA Startarkit Role-Playing Game

Role-Playing Game というものをやり始めたのだが、 とても巨大なプログラムだ。 テキストデータはすべてXML、 キャラクターの画像+アニメーションはおおむね6フレームx8方向=48コマのPNGで描かれている。 Dhruva Interactive というインドのゲーム開発会社…

いろんなTile

Platformerに鍵とはしごを実装するという課題を出したのだが、 はしごはTileにLadderというTileCollisionタイプを追加していろいろいじってたらだいたいできた。 Playerクラスのなかで、IsOnLadderとかプロパティ作り、 IsOnLadderなときに上矢印または下矢…

相対パスと絶対パス

levelPath = String.Format("Levels/{0}.txt", ++levelIndex); levelPath = Path.Combine(StorageContainer.TitleLocation, "Content/" + levelPath); StorageContainer.TitleLocationは実行ファイルがある絶対パスを返すらしい。 実行ファイルのフォルダパ…

private static readonly

private static readonly Point InvalidPosition = new Point(-1, -1); というものが気になってしまった。 private const Point InvalidPosition = new Point(-1, -1); じゃないのかと。 しかしnewできるものはconst宣言できないというので、ははあ、ならば…

プロパティのなぞその2

public Vector2 Velocity { get { return velocity; } private set { Velocity = value; } } Vector2 velocity; このように書くとスタックオーバーフローのランタイムエラーが出る。 正解は public Vector2 Velocity { get { return velocity; } private set…

PlatformerのXNA2.0への移植

相変わらずPlatformerをいじっている。 XNA2.0には GraphicsDevice.Viewport.TitleSafeArea というものがない。 TitleSafeAreaというのはつまりビューポートの中で、アナログディスプレイで表示したときに、 テキストを表示して良い安全範囲ということだろう…

Platformer雑感

Platformerをいったんばらしてもう一度組み直すということをやっている。 スターターキットではなくて新しいプロジェクトWindows Game (3.0)として作り直している。 とりあえず、PCだけで動けば良いので、 いじりやすいようにそれ以外の要素をとっぱらってい…

素材のプロパティの確認

Platformer : パワーアップの追加 で、sounds/monsterkilled.wmaをContentに追加するとあるが、 ただ追加しただけでは、 そのコンテントのプロパティのcontent processorがSong - XNA Frameworkになっており、 実行時エラーになる。 これを他のサウンドファ…

foreach

前回、Platformerにはfor文しか使われてないなどと書いたのだが、 明らかな認識ミスでやはり主にforeachが使われていた。 たとえばLevel.csのDraw()メソッドの中の foreach (Gem gem in gems) gem.Draw(gameTime, spriteBatch); とか foreach (Enemy enemy i…

プロパティのなぞ

PlatformerのAnimation.csというのを読んでいたが、 なぜ public Texture2D texture; としないで、 public Texture2D Texture { get { return texture; } } Texture2D texture; のように書くのだろうか。 publicな変数は体裁として極力プロパティとして公開…

学科横断的なもの。

XNAの授業には工学部のメディア画像学科から3人、コンピュータ応用学科から1人が履修している。 彼らは、わざわざ他学部履修してくるだけあって、それなりにプログラミングができる。 うちの学科の学生にもややできる学生が混ざっている。 なかなか面白い授…

当たり判定

去年はxnaとsource sdkとwordpressをいきなり授業に導入したりして異様に忙しかった。 今年はそこまで忙しくはないのだが、 去年の手直しというかチューニングはまだかなり必要で、 それなりに精神的に追い詰められる。 いろいろ悩んでいるとやはりxnaという…

nummapbrushes == MAX_MAP_BRUSHES

source sdkはsteamで自動アップデートするので、 もしかすると、 だんだんと高いスペックのPCを要求するようにアップデートされているのかもしれない。 授業中不具合でまくる。 PCを四年も使ったのがよくない。 nummapbrushes == MAX_MAP_BRUSHES というエラ…

gimpとinkscape

wikiのページが増えてきたのでカテゴリー化した。 Gimp、 Inkscape。

C#のプロパティというもの。

これは、starterkit: Platformerの中のLevel.csというソースの一部なのだが、 public Rectangle GetBounds(int x, int y) { return new Rectangle(x * Tile.Width, y * Tile.Height, Tile.Width, Tile.Height); } /// /// Width of level measured in tiles.…

MediaWiki拡張のSpamBlacklistとConfirmEdit

最近学科Wikiへのspamが鬱陶しくなってきたので、 匿名投稿を禁止しよう思ったのだが、 MediaWikiにはそんな機能はないようだ。 広域ブロック というもので一部のIPアドレス以外制限かけようかと思ったのだが、 マスクの長さが16以上なきゃだめとか、 ちと目…

インタラクティブメディア学科ガイド

東京工芸大学 芸術学部 インタラクティブアメディア学科 ガイド というページを立ち上げました。

今年のsource sdkの授業

090501、 090508と、 比較的スローペースでやってる。 去年は、terroristとcounter terroristを早い段階で配置して対戦に適したマップとは何か、 などというところ、つまりcounter-strike固有なマップ制作のところまで一気に行った。 今年は、そういうのは一…

恭喜 int.t-kougei.ac.jp

新しい学科のドメインが動き出しました。 http://www.int.t-kougei.ac.jp/ です。 で、実験を兼ねて、さっそくwordpress2.7.1でブログ http://www.int.t-kougei.ac.jp/~nagae/ を立ててみた。 まったく新規に。 問題なく動いているような。 なんかもっさりし…