忍者ブログ

神戸電子専門学校ゲームソフト学科の生徒が運営するGESのブログです。

   

[PR]

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

カメラって行列

ども、こんにちわ~

眠いけどがんばっているZAKIです。

もっと別のとこがんばりゃいいのにね


さて、今回のテーマは「カメラって行列なんだよね」です。

今回のは講座というよりは、小話ですw

既に知ってる人は、暖かい目でZAKIの成長を見といてください

ちなみに、2年生向け記事です。

拍手[0回]

PR

const使ってる?

ども、こんばんわ~

割とふらふらしてきたZAKIです

製作実習が終盤に近づいてきました

最初からクライマックスなチームもいるかもしれませんが、体には…気をつけて


さて、今回のテーマは「const」です。

プログラムで意外と使われていないconst修飾子

constを付けるとその変数、構造体に値を代入できなくなります

そんなのどこで使うんだ?と思われるかもしれませんが、意外と役に立つんですよ?

今回はその使い道をざっと紹介

拍手[0回]

部屋探し(L社的な意味で)

ども、こんにちわ~

最近ずっと俺のターンなZAKIです。

何やら偉業を達成しそうな予感


さて、今回のテーマは「部屋探し~L社編」です。

Nカ先生がついてくることで有名なL社さん。

実際に行って聞いてみましたが、やっぱりついてこないそうです。

残念ですね

拍手[0回]

スマートポインタ

ども・・・・・・・・・・会長の和佐田雅史です。
今日はスマートポインタについて講義します。


皆さんはnewやdeleteを知っているでしょうか?
動的に変数の領域を確保する時に

Character Chara = new Character;

とすると変数CharaにCharacter型の領域を作成する事が出来ます。
ようするにcで言うmallocを使っているとお考え下さい。

しかし、newで確保したものは解放しないとメモリリークを起こしてしまいます。
mallocで確保したメモリはfree関数で解放しないといけませんよね?

それと同じ事です。

しかし・・・・プログラマと言えど人間ですのでもしかすると解放処理を忘れてしまうかもしれません。

ですのでスマートポインタ( STLではオートポインタ )という物を使います。

std::auto_ptr< 型引数 > ptrObject;

とすると、参照がなくなった時点で勝手に解放してくれます。
javaのガーベージコレクションとまでは行きませんが便利ですよね?

ただ、中には自分でスマートポインタを作りたいという人が居るかもしれません。
なので一応簡易版をここに乗せておきます。

使いたい人はどうぞ。
※1.動的に確保したObjectのみに適用するようにして下さい
※2.ネームスペース( Wasadaとかptrとか )は自由に書き換えてもらって結構です。

使用例は


Wasada::ptr::auto_ptr< Character > Chara();

Chara->m_hp = 1;


等です。

それではお疲れ様でした。


namespace Wasada
{

namespace ptr
{

// オートポインタ定義
template< typename Type > class auto_ptr
{
private:
 Type* _ptr;
 friend class Type;
 
public:
 // ptrアクセッサ
 Type& operator*() const {return *_ptr;}
 Type* operator->() const {return _ptr;}

 
 // コンストラクタ
 auto_ptr(const Type* ptr)
 {
//  this->_ptr = NULL;
  this->_ptr = ptr;
 }

 auto_ptr()
 {
  this->_ptr = NULL;
  this->_ptr = new Type;
 }


 // デストラクタで勝手に解放
 virtual ~auto_ptr()
 {
  if( this->_ptr )
  {
   delete _ptr;
  }
 }
};

}
}

拍手[0回]

面接04~そろそろ役に立つ事を書く~

fimg_21196276699.png















矢那さんばっかりずるいので俺も使うっっ。
……消しゴムが全消し……
アンドゥは10回まで。
使いづらいことこの上ない絵日記でした。
なんとも言いがたい絵を描いたよ。

面接は基本、受験生:面接官が1:5など。
2:3も有りましたが基本面接官が多いです。
プレッシャー与えて落とそうって所がありますからね。
まずは胆を据わらせるところから始めましょう。
何。簡単です。
面接官より自分が優位だと勘違いしてください。態度に出ない程度に。
嘘です。場慣れするために練習してください。
就職活動の果てに気づく事が一つあります。

生島先生の方が恐い。(面接官的な意味で


ZAKIの記事が蔓延してますねぇ。
毎日ご苦労様です。日記的な意味で。
Ekiyaです。

さて、就職……もうノイローゼになりそうですね。
まぁそう言わず面接のお話で。
今日は聞き及ぶ質問たちをご紹介しましょう。


・自己PR
・使用できる言語
・使ったことのある環境
・制作物について
-----------------------------------------------
・趣味について
・最近のニュース
・故郷について
・最近みた映画とか


……下に行くほど絶妙ですよね。
コレは実際に私が受けたことのある質問です。
境界線辺りからどうやって自分を面白い奴だと思ってもらえるように喋るかっていうのを意識しました。
この面接の質問がスタンダードですかね。多分。

大体大まかな質問はそんな感じだと思ってもらってもいいんですが
やっぱり自分が喋った事に対してのツッコミになる質問が多いんですよ。
例えば
「C言語が使えます」と言えば
「どのぐらい使えますか?」と返ってきます。当たり前ですが。
それは先方が興味を失うまで続きます。
だから面接は応対能力の勝負になります。
そういう意味で人馴れしてないとむつかしいですねぇ……うむ。

まぁ言葉の上で多少技術の証明が出来れば、後試されるのは人格です。
責任感、行動力、面白さ。
そういった物を言葉から探そうとしてきます。

あ、そうだ。こんなのありました。
「技術力をつかった綺麗な作品」
「発想力をつかった面白い作品」

あなたはどちらを作りたいと思いますか?
プログラマなら前者じゃないとダメ?
ちなみに私はその質問には後者で答えましたが。

どちらを選んでもいいんです。ただ自分の意見だけはしっかり言えるようになりましょうね。


ま、この程度でいいかな。
お疲れ様です。
面接に関して下記サイトを見てみると面白いかもしれません。

知財プログラマーによる資格取得への路
http://2.suk2.tok2.com/user/kudoiasi/?c=009

活動時期は私達と同じ時期でよく参考にさせていただいていました。
この方が受けていたのは大手企業ばかりです。
受けろって訳じゃないですよ?
実際にあった質問とかが載ってるので参考になります。
丁度一年前ぐらいの記事が就活です。

ゲーム系って私服可の試験や面接が多いです。(SガとかCプコンとか
私は私服可であれば間違いなく私服で行っていました。
合格通知の電話の度に「服はスーツですか?」って聞いてたぐらいです。
だって、スーツ嫌いなんですもん。
ホント気にする事はないです。ただやっぱスーツで行けばマジメポイントが加算されます。たぶん。
私服の場合もちゃんと自分の気合の入る服を選びましょうね。
ではEkiyaでした~。

拍手[0回]

シーン制御

ども、こんばんわ~

さっき最後まで記事を書いたのに、ブラウザが落ちて記事が消えてしまったZAKIです

涙をこらえながら書き直そうと思います。


さてええぇぇぇぇ今回のおおおおぉぉぉぉテーーーーーーマはああああぁぁぁぁあぁぁぁぁ

シーン制御です。

すんません。マジで悔しいんですorz

さて、シーンとは何でしょうか。

シーンとは、タイトル、キャラセレクト、ゲーム、ゲームオーバー、などなど、ゲームの場面を指します

皆さんはどんな感じで管理していますか?

while(1) {
  if(sceneNo == 0)  {
     Title();
  } else if(sceneNo == 1) {
    CharaSelect();
  } else if(sceneNo == 2) {
    Game();
  } else {
    break;
  }
}

こんな感じですか?

出来てるといえば出来ていますが、Game()関数を実行するとき毎回3回if判定が起こりますね

メインループだけに無駄な処理は避けたいところです

それを防ぐにはいろいろと使い回しの効く憎い奴を使います

そう、ポインタです。

しかも、関数ポインタです。

ああ引かないで待ってがんばるから僕がんばって説明するからぁ

続けて読んでもらえる人。ありがとう。

読んでくれない人、コノヤロウ。

関数ポインタとは関数のアドレスを入れるポインタ変数のことです

関数ポインタの定義はサンプルではmain.hの38行目でやっていますね。

typedef  void *(*LPSCENE)();

この行がそうです

typedefとは新しい型の定義を行います。

この場合はLPSCENEという自作の型を作っています。

説明すると結構長くなるので、詳しくは教科書、ネットで見てみてください。

あ、C言語の教科書あれは必携ですよ

みんな邪険にしますが、あれ見ればほっとんどのことが書いてあるので、実習中は持ってくことをオススメしますよ

あ、すいません。話を戻しますね

残りの部分が関数ポインタの宣言です

この場合は「void *型を返す引数なし」の関数のポインタです。

(*LPSCENE)が型の名前です

typedefが無ければこの部分は、変数名になります

()内の*はポインタであることをさします。

詳しくは教科書およびネットで(ry

関数ポインタ変数の宣言はmain.cppの18,19行目で行っています。

これをシーンの制御に使うので、これをシーン変数と呼びましょう

それじゃ、シーン制御の全体の流れを説明します

  1. シーン変数に最初に処理をする関数のアドレスを入れる(main.cpp 95行目)
  2. シーン変数の中の関数を実行する(main.cpp 112行目)
  3. 2で実行した関数の戻り値をシーン変数に代入しなおす(main.cpp 112行目)
  4. 中身がNULLならループを終了(main.cpp 113行目)
  5. 関数のアドレスなら2へ戻る

と、こんな具合になります

main.cppの112行目pNowLoop()の前に(LPSCENE)としているのはキャストと言う処理です

この場合の意味はpNowLoop()の戻り値(void *型)をLPSCENE型にしろってことです。

戻り値を代入する変数と戻り値の型が全然違うのであわせてやるわけです

ちなみに、void *型は何でも型です

どの型のアドレスでも入れれます

それを任意の型へキャスト変換して使うというのは、ポインタ系の処理ではよくあることなのですが、

型が自由に変えれてしまうため、あまり好ましくはありません

できるなら、使わないほうがいいのですが、いい方法が見つからなかったので使っています

良い子のみんなはいい方法を探してみてね

あとは、各シーン関連の関数で次に処理をさせる関数のアドレスを返してやります

関数のアドレスをさす場合は関数名のみ(()を付けない)とするとアドレス参照できます。

変数でよくやる「&a」と同じような意味です

さて、この方式の場合の制約は、

全てのシーン関連関数はシーン変数の型定義に従わなければならない。(この場合はvoid *を返す引数なし関数)

関数の戻り値は次の処理をする関数のアドレスでなければならない。

です。

このルールを守っておけばこの方法を使うことが出来ます

ちなみに、サンプルではシーン変数を二つ使っています

pNowReleaseは常に初期化に対応した開放関数を保持しておきます

こうすると、初期化処理で失敗して関数でNULLを返した場合、

メイン関数の最後で任意の関数の開放を呼ぶことが出来ます。

そうして、開放忘れを防いでるわけですね

ただ、この場合、正常にループを抜けた時は2回開放関数が呼ばれることになります

それ用の処理を開放関数にしておかないと、同じ変数を2回開放することになっちゃいますよ

追記:dglib始めました。

いきなりVSでって何を考えてるんだ僕は…orz

dglib版をアップしておきました

VS版とは少し違いますが、やり方は一緒です

dglib版の分割コンパイルバージョンでは、各シーンでアニメーションの基本ぽいことをやっています

悩んでいる人は一見の価値ありかも



ふぅ、一応、シーン制御の項目は以上です

前回以上にめちゃ長いですね

分けて丁寧に説明したほうがよかったんですが、

なにぶん、時間が……orz

質問はいつもどおり、コメント、リアル(実習室など)で受け付けています

わからなかったら突撃してみてください

それでは、今回はこの辺で。

あでゅーノシ

 

拍手[0回]

常に貪欲であれ


遊びにおいて好奇心は大切!



つことでやってみました新機能

先週実装されたばかりの「絵日記」です。
使い勝手は正直言って、正式な絵板に慣れている方には「なんじゃこれ」って感じです。
どうやらflashのような仕様ぽいので仕方ないといえば仕方ないのですが。

もう少し、こう、消しゴムは専用にしてほしかったりレイヤーが欲しかったりします。
そしてアニメの機能がいまいちわからない。
これは単に描き手のスキル不足ですね。今回頑張ろうとしましたが途中でミスに気付き、
アンドゥで戻れなくなったので変なダンスしとりますがドンマイドンマイ。


まぁ、お絵かきといえば、お約束の邪神様を祭らないと。
しょうこ巫女のクオリティには及びませんでした。もっと座禅しないとダメなのか。むぅ。

という事でまたもや割り込みいれた矢那でした。
これはグラフィックの記事に入れるべきなのか10秒ほど考えましたが雑記にしときます。
ただいま絶賛ZAKIさんの記事が更新中ですが、他のGESメンバーも遠慮なくどんどこ割り込めばいいと思うよ!

個人的には今日から連載となる記事の「賃貸事情」が役に立ちました。
少しばかり詳しいと自負していた私もフリーレント物件は初めて見ました。
情報って大事ですよね。という事でリンク記事入れときましたので気になる方はこちらもどうぞ!

◆All Abou - ホントに家賃が半年もタダなの?! ただ今フリーレント物件増加中!
http://allabout.co.jp/house/rentalhouse/closeup/CU20030820/index.htm
◆読売新聞 - 「フリーレント」とは“逆礼金”
http://www.yomiuri.co.jp/homeguide/base/20060316hg01.htm
不動産情報:お役立ち情報満載ブログ by KZ - フリーレント?~フリーレントって何なのさ??? 
http://hudosanblog.livedoor.biz/archives/50595581.html






助け合っても 
いいじゃない
スプーだもの

矢那

拍手[0回]

お部屋探し(費用的な意味で)

ども、こんにちわ~

ZAKIです。

本当は「こんにちわ」じゃなくて「こんにちは」なのはわかってます。

わ、わざと何だからね最近知ったわけじゃないんだからね



さて、今回のテーマは「お部屋探し」です。

来年度卒業の人はそろそろ新居を探さないとヤヴァイ時期ではないでしょうか。

そういう僕も、ヤヴァイので今月頭からワタワタと探してるわけですが

なので、今までの経過を参考までにご紹介しようと思います

役に立てばいいなぁ


まずは、ちょっとオススメのポイントを。

実際に問い合わせる場合は、電話するか、実際にお店に行ったほうがいいです

ネットのほうではこんな感じかーぐらいに思っておいたほうがいいですよ

いざ、行ってみると出るわ出るわ

ある仲介会社では10枚くらい見取り図を出して頂いて、いろいろ選べましたし、

地域のことも詳しく話してもらえるので、聞く価値はあるかと

なので、実際に行ってみることをオススメします

あとは、このサイト様を参考にするとよいかと。

失敗しない一人暮らしの部屋探し

最初から詳しく説明してくださっているので、オススメです


んでは、とりあえず、今回は初期費用を中心に話そうと思います

大体部屋の契約までにいくらぐらいかかると思います?

僕が見てきたのは大体こんな感じです。

敷金・礼金 約10万
火災保険 約2万
保証会社 約2万
殺虫消毒費 約2万
仲介手数料 家賃半額
空家賃 入居までの期間

僕の場合は1R,1Kで大阪四つ橋線、阪急神戸線の沿線で探しました。

まぁ数字が出てるとこだけで、大体16万円くらいですね~

家賃5万円(管理費など込み)で3月入居、12月頭に契約をとった場合、

仲介手数料が2.5万、空家賃が20万円。

合計36万円~

て、高っ

はじめ聞いたときは結構するもんだとびっくりしてました

保証会社っていうのは、家賃滞納時に変わりに払ってくれる会社のことでさす。

その分、保証会社に払うときには104%とかちょっと多めにとられます

それがないところもありまして、その場合は、家主が直接とりにくるとからしいです。

殺虫消毒費、火災保険はほとんどの場合あります

そして、金額はそんなに上下しないので、これくらいはかかると思っておいてもいいでしょう

敷金・礼金は実はピンきりなのです。

物件によってなかったり、家賃とか立地条件に比例して上がります

僕が探してきた地区は大体家賃5~6万くらいで、10~20万くらいでした。

やっぱ金額が高いところは、それなりにいいのです

住宅地で静かで、駅やコンビニが近かったりといろいろよかったです。

駅から遠いけども、静かでスーパーや飲食店が近くて高いとかのもありましたねー。

と、まぁ、結構お金のかかるお部屋探し

実は例外もあるんです(ニヤリ

まず、敷金礼金なし

聞いたことがある人は多いと思います

これだけでもだ~いぶ違います。

次に、家賃発生日を遅らせる

フリーレント物件というのがあります。

僕がいった仲介会社では契約金の一部(手付金)を始めに払って、部屋を差し押さえてくれるという方式がありました

もう一つのほうでは、家賃発生日が前の人の退去日の次からとかいうのもありましたね

これでも十数万は浮かせることが出来ますね


部屋に初期にかかるのはこんな感じになりますね~

あとは更に、家具家電や交通費、インターネット接続料などかかりますよ~

僕が探した感じでは最安値が15万円、最高値が47万円となってます

安いほうの理由は簡単。敷金礼金と空家賃が無いからです

高いほうはその逆で、空家賃がかかり、敷金礼金が高いからです

その分、一長一短がありわけですがw

今回はこれで終わりです。

次回続けば、仲介会社ごとにレビューしようかなぁと思ってます。

それではこの辺で。

あでゅーノシ

拍手[0回]

分割コンパイル

ども、こんにちわ~

ここまで来たら割とやけなZAKIです

意味の無い意地を張っています


さて、今回のテーマは「分割コンパイル」です。

ブログタイトルに釣られた人。

どんまい

毎度おなじみサンプルファイルはこちら

大西先生が便利なものを作ってくださってているお陰で、コンパイルのやり方自体は簡単です

いつもcl2にソースファイルを足すだけです

cl2 test.c bunkatu.c dglib.obj

と、DOS窓に書けばコンパイルできます。

それでは、分割したソースの中を解説していきましょう

まず、bunkatu.cから。

1行目にbunkatu.hをインクルードしていますが、今の時点でこれは無くても大丈夫です。

6行目、グローバル変数ですが、staticがついていますね。

この場合、g_cnt変数はのソースからアクセスできなくなります

なので、この変数が原因でバグが出たときは、このソースを調べるだけで済みます

その下の関数も同じ意味で、

バグが出てもその関数を読んでいるのはこのソースのみなので、デバッグが楽になります

その下の2行続いて関数が書いてあるのはプロトタイプ宣言です。

関数が沢山になってくると、他の人が下のほうまで関数を見ていくのは大変です

なので、プロトタイプ宣言でどんな関数があるかを明記しておくとわかりやすいのです

ちなみに、この二つにはstaticがついていないので、外部のソースで呼ばれる可能性があることがわかります

外部からは呼ばれないものにはstaticを付けるというルールがあると、必然的にそういうことがわかるので、

関数を追いかける必要もなくなります

こういうルールを決めた書き方はチーム製作ではオススメです

あとの関数の中身はテスト用なので適当です。

次はbunkatu.hを見てみましょう。

.hのつくソースファイルは「ヘッダ」と呼ばれます。

ソースファイルの頭でインクルードされるのが語源です。

……嘘です

まず、1行目。

これはコメントの通り、1つのソースで1回しかこのヘッダを読まないようにしています

externの宣言しか書いてない場合は大丈夫ですが、

構造体の宣言、define等が書いてあると、インクルードしたソース内で2回これが定義されることになるので、

同じのが2個あるぞーっとコンパイラに起こられます

#pragma onceがあるとこれをコンパイラ防いでくれます

ちなみ、VisualStudio(VC++)のコンパイラ(CLコンパイラ)でしか使えないので、要注意です

さて、その下のexternの関数宣言。

externとはその後ろのものがどこかにあるよー」という宣言です。

なので、その関数を使っているソースで、「そんな関数しらないぞ」というエラーを防げます

ちなみに、staticとexternを同時には使えません

まぁ使用用途をみれば大体わかりますよね

基本的にヘッダはソースファイルと同じ名前にすることが多いです

そのほうが、ヘッダからソースの内容がわかったり、名前からどのソースの宣言があるわかりやすいからです。

あとは、ヘッダを目的の(関数を使いたい)ソースへインクルードしてやれば関数が使えるようになります

VisualStudioプロジェクトのほうでもやり方は一緒で、コンパイル時は普通にF5などを押してやれば動きます。

よくあるエラーについて補足。

未解決の外部シンボル _drawCntが関数 _Main で参照されました。

こういうエラーを僕はリンクエラーとよんでいます。

ソースファイルをコンパイルした後に複数のソースファイルの内容をまとめる作業(リンク)するときに起こるエラーです

コンパイルが終わった後に起こるということは、文法的には間違っていないので、

#includeなど、ヘッダ系でエラーを探します

この場合はmain()関数の中でtest.cが知らない関数(drawCnt)を見つけたときに起こります。

原因としては、
  • cl2をするときにbunkatu.c(main関数の書いてないソースファイル)を付け忘れている
  • test.c(main関数の書いてあるソース)でbunkatu.hをインクルードしていない
  • (または、ソース内でextern修飾子つきのdrawCnt関数のプロトタイプ宣言をしていない)
って、感じだと思います。

なので、これを直してやれば、うまくいくはずです


と、こんな感じで分割コンパイルについて説明してみましたが、どうでしょうか?

わかりづらければ、どんどん質問してくださいね~

あと、GESメンバーならブログ記事で書いてくれてもいいです。

あ、それおもしろいかもw

わからないやつ vs 教えるやつ みたいな論争が起こったらおもしろいなぁ

まぁ、気軽に記事かいたってくださいw

それでは今回はこの辺で。

あでゅーノシ

拍手[0回]

割り込み空気読まない

こんにちは。矢那です。

いつの間にか怒涛の講座更新が続いててびっくりしました。
記事欄が真っ赤に燃えている。頑張りすぎだろオマイラ。もっとやれ!

そんな流れですがここらでちょっと休んでいってはどうでしょうか。
ここは空気を読んだら負けだと思っている。読まずに行きます。


言わずもがな、皆さんの生活に溶け込んだニコニコ動画ですが
人によって様々な使い方をしていますよね。
私は専らBGM専用にしています。最近は3時間越えのBGMがあったりして重宝しています。
そうなると必然と「音楽」タグを回り歩く事になりますが、
今日は私がはまっている動画をご紹介します。




この作者さんのシリーズは最新作を除き、全て10万再生以上。
ランキングにも何度か入っているのでご存知の方も多いでしょうね。

使用しているソフトはこちらhttp://www.musanim.com/)。通称MAMと呼ばれるソフトです。

音のキーに合わせてドットを打つ、オルゴールのようなそれだけのソフトですが
絵で表現するというところに感動しました。しかもメロディが素晴らしい。
作品のチョイスはただの贔屓目です。自分、FF4信者ですから。
メテオ打ってくれてありがとうとうp主に伝えたい。

他にもマリオシーケンサ(マリオペイントのウィンドウズソフト)に見入ったり
わpの愛のテーマ(Vol.MEIKO)を聴きながらワンカップ飲んだりと楽しんでいます。

いつも見ているタグから一歩離れて別のタグで遊んでみるのもどうでしょう。
きっと新しい発見をしたりアイデアが浮かんだりするかもしれませんよ。

こんなのとか、ね。







うん?ミク?矢那さんの中の人の時代は2次元<<<<<3次元です。
ねんどろいどミクに一目惚れしてからは何も目に入らない。うふふあはは。


…話が逸れました。でも同じ音楽カテゴリの派生物だからいいとか言ってみる。

拍手[0回]

dglibをVisualStudioで使ってみよう

ども、こんにちわ~

ZAKIです。

皆さん、いかがお過ごしでしょうか

今日から連続更新が始まります。

よそ見してたら見逃しちゃうぞっ


さて、今回のテーマは「DGLIBをVisualStudioで使ってみよう」です。

みんな大好きDGLIB

そんなDGLIBをVisualStudioを使って有効活用しようというのが今回のテーマなわけです

その前にちょっと注意

僕の環境(VisualStrudio 2003 & 2003用dglib)を使っているので、他の環境でうまくいくかはわかりません

追記:1年生のパソコンを借りて試してみました。うまくいったので画像を一部差し替えてあります。

近いうちに試して、記事を修正するんで、ご了承ください

さて、その方法ですが、

まず、プロジェクトを作成します。

VisualStudio(以下:VS)を立ち上げて、メニューから

「ファイル→新規作成→プロジェクト」を選びます。

こんなウインドウが出ると思うのですが、どうでしょう?

vc1.jpg

左のウインドウ「プロジェクトの種類」から「Visual C++プロジェクト」を選びます。

そうすると右のウインドウ「テンプレート」に色々でてくると思うのですが、

その中から「空のプロジェクト」「Win32プロジェクト」を選びます。

あとは「プロジェクト名」「場所」を入力して、OKを押します。

「場所」についてはどこでもかまいません

自分の好きな場所を選んでください。

そこにプロジェクトフォルダが作られます。

隣の「参照」ボタンから選ぶと楽です

OKを押すと、「Win32プロジェクト」の場合、この画面が出てくると思います。

vs4.jpg

その場合は、左にある「アプリケーションの設定」リンクを選び、

下のチェックボックス「空のプロジェクト」を選びます。

上のラジオボタンは「Windowsアプリケーション」のままでOKです。

「完了」を押して次へ。

そうすると、VSの画面に戻ってきたと思います

さて、今度はプロジェクトのフォルダに「dglib.obj」と「dglib.h」をコピーします

先ほど「場所」で指定した場所の中にある

プロジェクト名がフォルダ名のフォルダへ両ファイルをコピーしてください。

「プロジェクト名.vcpoj」というファイルと一緒の場所ならOKです

vs6.jpg

できたら、再びVSの画面に戻ります。

画面右に「ソリューションエクスプローラー」があるでしょうか?

無ければメニューの「表示→ソリューションエクスプローラー」で表示させてください。

「ソリューションエクスプローラー」の中に「ヘッダーファイル」と書いてあるフォルダがあるでしょうか?

それを「右クリック→追加→既存項目」の追加を選んでください。

ファイルを選ぶダイアログが出てきましたか?

ダイアログでは先ほどコピーしたファイルが見えていると思います。

コピーしたファイルを選んでVSの「ヘッダーファイルフォルダ」に追加しましょう。

とりあえず、これで下準備はOKです

では、ためしにプログラムを作ってみましょう

今度は「ソリューションエクスプローラー」「ソースファイルフォルダ」を右クリックしてください。

「追加→新規項目の追加」を選んでください。

今度は違うダイアログが出たと思います。

vc4.jpg

ファイル名のところに「test.c」と打って下さい

画像が「test.cpp」になっていますが、コレでも問題はありません。

この場合はC++ソースだと認識されます。

testの部分は好きな名前でOKです

そして、「開く」ボタンを押してください。

すると、「ソースファイルフォルダ」にtest.cが追加されたと思います

今度は「ソリューションエクスプローラー」「test.c」をダブルクリック。

すると、いつもの白紙の画面がでてくるので、いつもどおりプログラムを打ってください

出来上がったら、F5ボタンまたはCtrl+F5ボタンで実行してください

エラーがいくらか出てきますが、何とかうまく実行できると思います

どうでしょう?うまくいきましたか?


とりあえず、今回はここまでです。

後々、デバッグポイントだとかを書いていこうと思います

ヒントはF9、F10、F11ボタンです。

それでは、今回はこの辺りで。

あでゅーノシ
 

拍手[0回]

HTMLのお話、その2

こんばんは、文月浩加です。

え?今お前飲み会じゃないのかって?
日記システムにはじかんさしょ(浩加が逮捕されました。


まぁそんなネタはさておき、今回は画像表示と文字表示とリンクです。


 HPを作ろう その2

  =文字の表示と画像の表示とリンク=


まずは下のソースをしっかりコピーしてください。
そして、top.htmlと書いて保存しましょう。

<pre>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=shift-jis">
<title>文字と画像とリンク</title>
</head>

<body>

<p align="center">
 <a href="http://geshp.osonae.com/">
  <img src="http://geshp.osonae.com/image/Gamesoft Entertainment Specialist.jpg" border="0">
 </a>
<br>
<br>
</p>

<p align="center">
<font size="2">
このリンクは、GESのホームページにつながっています。<br>
<br>
</font>
</p>

</body>
</html>


では、それぞれのタグの説明をしていきましょう。


1.<p>~</p>  段落タグ。自動で</P>の直後に改行を挿入してくれます。

2.<br>   半改行。二個つけて始めて一行あきます(ここに注意)

3.<a>~</a>  リンクタグ。言葉のとおり、別のページにつないでくれます。

4.<img>   イメージタグ。画像表示用タグ

5.<font>~</font> フォントタグ。文字のサイズや、色などを調整するタグ。


タグについてはここまででいいのですが…。
今回からちょっと、濃い話を混ぜていきます。

まず、お気づきのとおり、タグだけでは単なる飾りです。
HTMLは基本こんな形式で出来ています。

<要素名 属性名="属性値">内容</要素名>

違うのは<meta>や<br>や<img>などの終了タグが無いものです。

さて、今回重要になってくるのは、この属性という部分です。
属性名はいろいろありますので、とりあえずよく使うものを続きにまとめてみました。

属性の中にある、http://geshp.osonae.com/image/Gamesoft Entertainment Specialist.jpg
でも../image/Gamesoft Entertainment Specialist.jpgとなっているとおや?と思いますね。
こういうものをパスと呼びます。
相対パス絶対パスというものがあります。

相対パス:自分がいるところからさかのぼったもの
絶対パス:最初から最後まできっちりかくもの

アバウトに説明するとこんな感じです。
(アバウトすぎる!って突っ込みはなしの方向で。

../ 一つ上のディレクトリ(フォルダのこと)
つまり、このパスは、別のフォルダから読み出すときに使うパスで
このページtop.htmlhiroディレクトリにある場合
同じ階層のimageディレクトリから読み出すときは一度ホームに上がってしまい
そしてimegeディレクトリから画像を取ってくるわけです。

つまりこんな感じ。

soutai

 

パスはいろんなところで使うので、きちんと覚えておきましょう。


今回はここまで。
次回は<table>タグの説明と、フレームの説明を予定!
予定は未定!<マテ

拍手[0回]

面接03~ぼっこぼこにされてやんよ~

連続更新ダッ!
Ekiyaです。
またしても面接! 何という面接! 忌まわしき面接の記憶たち! 喝ッ!
何処で終わればいいのかよくわからないです。
一先ず言っておきますがコレは前回に入りきらなかった文章です。
長くてすんません。

そしてもう結論いきますが。
練習しようね?
嫌な事言いますけど……経験量ですよやっぱ。
ZAKIが一週間やって時間足りないって言ってましたよ?
練習してない私は二回目で名前言い忘れましたしね……。
さて、今日もお付き合いいただける方は下へ。
無理強いは良くないと思いますのでいつも結論は早く出しますね。


つーわけで……先生ステータスですか。
独断と偏見とオモシロそうだと思う気持ちがコレを書かせますね☆

私のオススメ集団面接メンバーは「生島先生 川上先生 松尾先生」(レベル:初心者から?)
多分私達の時と同じであれば、最初の面接がこの3人だったと思います。
生島先生と松尾先生は言わずと知れた面接練習のプロです。
川上先生はイレギュラー担当です。いえ、個人的にはとても楽しい質問を沢山してくれるので面接面白かったですよ?
ただ苦手な人はよく川上先生のイレギュラーな質問を嫌がります。
本当に的確な意見をくれますしやっぱりこの人たちを最初に相手すべきだと思います。まず最初に頼るべき先生方です。

で、他にも面白そうな面接メンバーと言えば「大西先生 鎌田先生 菖蒲先生」(レベル:技術を鍛えたい方)
大西先生は分かりますよね?
3年生の先生方も混じっています。
気になったらゲームラボにきてみて下さいね。気さくな先生方ですよ。
多分個人で面接練習をお願いする事になるでしょう。
集めれたら凄いです。宇宙に散らばるドラゴンボールっぽいです。

そして恐らく独断と偏見の最強パーティが「生島先生 白石先生 松尾先生」(レベル:最初からクライマックス)
すみません。私は挑戦してませんが恐らく泣かされます。
生島先生は最初から泣かす気ですし、白石先生は普通に社会問題で突っ込んできますし、松尾先生は質問の幅が広いです。
この3人とやって言い負かせたらもう何もやらなくていいと思います。ホント。
まぁでもやっぱり忙しい先生方なので集めるのは難しいかと。


あ、こんなもんですね。
一人ひとりを書いたんですが長くて捨てました。
コレでも十分長いですが。
自分のレベルが低いなと思う場合レベルの高い奴誘って狩りに行って下さい。
あ、違う。面接に行って下さい。
参考になるところは色々あるはずです。
実際は一人の先生にお願いして一対一をお願いする事が多くなるでしょう。

さて、長々と失礼……ってコレが長いの先生が多いせいであって私のせいでは無い気がするんですが妄想ですか? そうですか……(´・ω・`)
毎回編集力ないですねぇ申し訳ない。
読んでくださった方ありがとう御座いました。お疲れ様です。
もう書きたくないけど……まぁ次があればマタアイマショウ?
Ekiyaでした。

拍手[0回]

面接02~面接?いいえ、ケンカです~

第二段?
末端冷え性のEkiyaです。
面接について役にたちそうもないけれど、とりあえず書いてみるコーナーです。
まぁ多分長いので適当に読み飛ばしてくださいね。

今日は体験談……?
えっと……名前と自己紹介をしてくださいといわれて、
名前を言わず自己紹介を始めた事があります。
あの瞬間の自分だけはバカァっていいながら殴ってやりたいですね。
名前が聞こえなかったんですよ……。
失笑とやっちまった感が場を一瞬支配しましたが……フォローできませんでしたね流石に。
空気に気付いて質問を聞きなおしましたが。間違いなくアレは失敗ですね。
そんな感じの失敗談でしたっ!

今日も結論から。
面接ってケンカです。
相手は私達の駄目な所に突っ込んできます。
それをどうやって退けるか、または避けるかが面接の鍵です。
ダメな奴だと思われないための言葉を使っていきましょう。
はい、では興味の無いけど付き合いの良い方はお疲れ様でした。
長文読んでくれる忍耐ある方は下へどうぞ~。


そういえば、学校の面接練習で「技術派」「勢い派」に分かれていました。
私は勢い派。
そのまんま元気がいいから印象に残りやすいという人ですね。
技術派は自分の技術と意見をちゃんと言葉に出来る人です。
技術をしっかり身につけた人がそう呼ばれます。

どの質問に対しても詰まらずに答えるのはどちらも同じ。
出来ない技術を聞かれたとしても、ちゃんとこれから勉強しますと前向きな旨を伝えましょう。

私達は専門学校生です。
売りにできるのは大学生のような幅の広い頭の良さではなく、専門技術です。
2Dや3Dゲームを作ってきた技術は商品管理プログラムを作っていた大学生には負けません。
……作品をちゃんと作ればね?

まぁ自分の作った作品がそれを証明するものになる場合もありますし、
作品審査の無い所もあるのです。

作品提出の無い所はまず筆記試験ですね。
某C社様や某S社様や某N社様はそんな感じでした。(全てゲーム大手企業です
専門学校生にはつらい一般筆記試験をやっと通過して面接です。
当然作ってきたものの内容を問われることになります。
聞かれる手順は大体こうです。

・過去に作ったプログラム作品はありますか?
・また、言語は何ですか?
・複数人での製作ですか?
・自分の担当場所は何処ですか。
・ツールはどんな物を作りましたか?
・そのツールはどのような役目を果たしましたか?
・自分で作ったアルゴリズムはありますか?
・チームメイトなどとどのように接していましたか?
・不具合はどのように発見していましたか?
・不具合について争いが起きた場合どのように対処しますか?

恐らくそんな感じだったかと。
長いと思いますか? 実際矢次に聞かれるのでそんな時間は掛からないですよ。
困りますよね、特に困ったのが自分で作ったアルゴリズムです。
……身に覚えがある人から無い人までそれぞれ答え方があると思うので頑張って下さいね。
この場合答えなければいけないのは処理です。
何をやって、どういう結果が出る物を作ったのか。
中身を説明しろってことですね。
本に書いてあるようなことでも構いません。
中身を全て説明する事ができてかつ最後にそういったものを自分で作りましたと言えれば完璧かと。


人間ですからいつ誰の口からイレギュラーな質問が飛び出すのか良く分かりません。
試験官さんにも会社の方針にもよりますしね。
聞いてみたい質問があったら匿名でもなんでも書き込んでみてください。
誰か答えてくれます。いえ、私も答えますよ?
次回……? えっ何書こう?
では、こたつからぬくぬくとEkiyaでしたー。

拍手[0回]

FPS制御 ~プログラム編~

ども~こんにちわ~

ZAKIでっす

更新に間が空いてしまってすいませんっ

部屋探しに追われている毎日で不動産回りまくってます


さて、今回は「FPS制御~プログラム編~」です。

やっと。って感じですね

前回にも載せましたが、サンプルとドキュメントはこちら

一部表示されないページがあったようなので、修正しました。

申し訳ありませんでした

さて、プログラムの手順は以下の通りです。

  1. 1フレームにかける時間の計算
  2. 現在時間の取得
  3. 処理後の時間の取得
  4. 1フレームの時間との差分を計算
  5. 4の差分次のフレームまで待つ

1についてはFPSを操作したい場合以外なら、プログラムの始めに一度行えばいいでしょう

サンプルではFrameInit()の中でSetFpsValue()で設定しています

中身は1000ミリ秒を60で割っているだけですね

さて、残りはFrameDraw()の中ですね

まず処理関数Proc()を呼ぶ前にSetBeforTime()現在の時間をセットします。

SetBeforTime()の中のtimeGetTime()現在時間をミリ秒単位で取得してきます。

その後Proc()で処理をしてSetNowTime()処理後の時間をセットします。

そして、GetElapsedTime()ウェイト時間を取得します

GetElapsedTime()中にあるassert()は中の式が真なら、処理を中断してエラーを出します

コンパイルモードがDebugでのみ有効なのでReleaseにすればコンパイルされません。(たしか

最後のGetFpsValue()は現在のFPS値を引数に入れて返します

関数を通るたびに回数をカウントして、前の更新から1秒間経てばFPS値を引数に入れます。

この関数を使うにはSetNowTime()を使っている必要があります


大体はこんな感じでしょうか

大体の説明はソース読みつつコメントを読めばわかるかなぁと思います

わかりにくければ、気軽に質問してくださいね

一応DirectX版も作ってありますが、

DirectXではデバイスを作る際の構造体(D3DPRESENT_PARAMETERS)の

PresentationIntervalメンバにD3DPRESENT_INTERVAL_DEFAULT入れれば勝手にやってくれます

なので、まぁ、GetFpsValue()でも使って、「あ、FPS減った」とか見て楽しんで(?)ください

DirectXを使うにはDrawMain.hのマクロ、__NOT_USE_DIRECT__OUTPUT_DOXYGENXのコメントをはずせば動くはずです

DirectX等の初期化のところもコメントを書いていますが、大体入れる値は変わりません

1年生でやりたいと思う人はとりあえず、自分で打って写してみるとわかりよいので、おすすめです

詳しくは本、ネット、最寄の先輩などに突撃してみましょう

それも勉強のうちです

ちなみに今回の記事は赤色の文字がFPS関連の自作関数青色がゲーム処理関係の自作関数

緑色がDirectXなどのAPI等の関数、構造体になっています。

FPS制御はこの記事で終了です。

お疲れ様でした

それでは今回はこの辺りで、

あでゅーノシ

拍手[0回]

ブログ内検索

最新コメント

[01/29 人面犬]
[10/01 8ch]
[09/12 uncle]
[09/10 某卒業生]
[06/07 uncle]

カレンダー

10 2024/11 12
S M T W T F S
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30

テスト

Copyright ©  -- GESブログ --  All Rights Reserved
Design by CriCri / Photo by Geralt / powered by NINJA TOOLS / 忍者ブログ / [PR]