2005-04-28から1日間の記事一覧

WAVEFORMATEX構造体

ウェーブフォーム オーディオ データのフォーマットを定義します。 WAVEFORMATEX wave; wave.wFormatTag = WAVE_FORMAT_PCM; // タイプ。「WAVE_FORMAT_PCM」を指定。 wave.nChannels = 2; // チャンネル数(1:モノラル 2:ステレオ) wave.wBitsPerSample = …

サウンドプログラム

初期化 サウンドフォーマットの指定(WAVEFORMATEX構造体に値を設定) 指定したフォーマットのサウンドデバイスが開けるかどうかwaveOutOpen()でチェック wavデータ作成 再生 waveOutOpen()でデバイスチェック・オープン wavバッファ確保 wavヘッダ設定(WAV…

動的にメモリを確保してファイルを開く

#include <stdio.h> #include <stdlib.h> void main() { // ファイルオープン FILE* fp = fopen("hoge.bmp", "rb"); if (!fp) exit(1); // ファイルサイズ計算 fseek(fp, 0, SEEK_END); int size = ftell(fp); // 動的にメモリを確保 unsigned char* p = (unsigned char*)malloc</stdlib.h></stdio.h>…

プリプロセッサ

#include <stdio.h> #define DEBUG 1 int main() { #if DEBUG printf("デバッグ中\n"); #else printf("本番です\n"); #endif return 0; }#define DEBUG 0 にすると、本番環境用のソースコードになります。</stdio.h>

関数ポインタ

続いて、C言語入門講座?です。 #include <iostream> using namespace std; bool (*p)(); // こいつが関数ポインタ bool Init(); bool MainLoop(); bool Finish(); bool Init(){cout << "Initialize..." << endl; p = MainLoop; return false;} bool MainLoop(){cout <</iostream>…

ビット演算

最近、C言語を基礎から勉強中です。 問題:変数nが「偶数」であるかどうかを求める式を書きなさい。 単純に考えると、 if(n % 2 == 0) printf("偶数です。"); でいいような気がするけど、ビット演算を使用すれば もうちょっと速いプログラムが書けるみたい…

ゲーム開発のためのオブジェクト指向3

フライ級 フライ級は共通のコンポーネントを参照することにより、 軽量なクラスを実現することです。 たとえば、トークンに描画機能を持たせる場合に、 各トークンが「グラフィックスオブジェクト」を生成するのは、 リソースの無駄になります。 かといって…