2006.08.24 Thursday | 21:25

  左右に動くだけの世界 ふるいむかし


Game.h
#include "windows.h"
#include "DxLib.h"

typedef int (__cdecl *LOOPPROC)( int );

class Game  
{
public:
	int Start( LOOPPROC );
	BOOL Init( void );
	void WindowMode( void );
	void SetTitle( LPTSTR lpTitle );
	Game();
	virtual ~Game();

	BOOL err;
	int keypad;
};

typedef int (__cdecl *PLAYPROC)( void );

class Play  
{
public:
	void Draw( void );
	void Position( int x, int y );
	int Check( PLAYPROC, Game &env );
	void Image( LPTSTR lpPath );
	Play();
	virtual ~Play();

	int ImgHandle;
	BOOL left;
	BOOL right;
	int x;
	int y;

};


メイン
#include "DxLib.h"
#include "Game.h"
#include "Play.h"

// ゲーム環境クラス
Game env;

// プレイヤークラス
Play me;

// ループ Callback 関数
int GameLoop( int keypad );
// プレイヤー処理 Callback 関数
int PlayCheck( void );

// ********************************************************
// 開始処理
// ********************************************************
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,
						LPSTR lpCmdLine, int nCmdShow )
{
	
	// タイトル設定
	env.SetTitle( "ゲームプログラミング" );
	// ウインドウモード設定
	env.WindowMode();

	// 初期化
	if ( !env.Init( ) ) {
		return -1 ;
	}

	// プレイヤー画像のロード
	me.Image( "play.bmp" );
	// プレイヤー初期位置
	me.Position( 300, 400 );

	// 処理開始
	int ret;
	ret = env.Start( (LOOPPROC)GameLoop );

	return 0;
}

// ********************************************************
// ゲーム用ループ
// 終わる時は return false;
// ********************************************************
int GameLoop( int keypad )
{
	// プレイヤーの処理
	me.Check( (PLAYPROC)PlayCheck, env );

	return true;
}

// ********************************************************
// プレイヤー処理関数
// ********************************************************
int PlayCheck( void )
{
	// 右へ移動
	if ( me.right ) {
		me.x += 3;
	}
	// 左へ移動
	if ( me.left ) {
		me.x -= 3;
	}

	me.Draw();
	
	return 0;
}


Game クラス
#include "Game.h"

// ********************************************************
// コンストラクタ
// ********************************************************
Game::Game()
{
}
// ********************************************************
// デストラクタ
// ********************************************************
Game::~Game()
{
	if ( !Game::err ) {
		// DXライブラリ使用の終了処理
		DxLib_End() ;				
	}
}

// ********************************************************
// 開始直前処理
// ********************************************************
void Game::SetTitle( LPTSTR lpTitle )
{
	SetMainWindowText( lpTitle ) ;
}
void Game::WindowMode( void )
{
	ChangeWindowMode( true ) ;
}

// ********************************************************
// 開始処理
// ********************************************************
BOOL Game::Init( void )
{
	this->err = false;
 	if( DxLib_Init() == -1 ) {
		this->err = true;
		return false;
	}
	return true;
}

// ********************************************************
// 開始処理
// ********************************************************
int Game::Start( LOOPPROC loop )
{
	// 描画先画面を裏画面にセット
	SetDrawScreen( DX_SCREEN_BACK ) ;

	while( 1 ) {
		// Windows Message 処理
		if ( ProcessMessage() != 0 ) {
			return 0;
			break;
		}
		// ESC で強制終了
		if ( CheckHitKey( KEY_INPUT_ESCAPE ) == 1 ) {
			return 1;
		}
		// 画面を初期化する
		ClearDrawScreen() ;

		this->keypad = GetJoypadInputState( DX_INPUT_KEY_PAD1 );
		if ( loop( keypad ) == false ) {
			return 2;
		}

		// 裏画面の内容を表画面に反映させる
		ScreenFlip() ;
	}

	return 0;
}


Play クラス
#include "Game.h"

Play::Play()
{

}

Play::~Play()
{

}

void Play::Image( LPTSTR lpPath )
{
	this->ImgHandle = LoadGraph( lpPath );
}


int Play::Check( PLAYPROC play, Game &env )
{
	this->right = false;
	if( env.keypad & PAD_INPUT_RIGHT ) {
		this->right = true;
	}

	this->left = false;
	if( env.keypad & PAD_INPUT_LEFT ) {
		this->left = true;
	}
	
	return play();
}

void Play::Position( int x, int y )
{
	this->x = x;
	this->y = y;
}

void Play::Draw( void )
{
	DrawGraph( this->x , this->y , this->ImgHandle , TRUE );
}




2006.08.23 Wednesday | 17:56

  STYLE float ふるいむかし

<TD class=MyCell colspan=10>
	<a href="javascript:location='this.php'"
		style='float:right'>再表示</a>
	<INPUT type=submit name=send
		value="マスタメンテ作成"
		style='width:120px'
	>
	&nbsp;&nbsp;&nbsp;
	<INPUT type=submit name=send
		value="問合せ作成"
		style='width:120px'
	>
</TD>


最初左上
以降通常

再表示    




2006.08.23 Wednesday | 16:07

  Access2000 クエリー TOP n 件 ふるいむかし

http://support.microsoft.com/default.aspx?scid=kb;ja;231802

要するに「最大レコード数」プロパティ



2006.08.23 Wednesday | 09:12

  SQLServer 変更不可型 ふるいむかし

ALTER COLUMN

指定された列を変更することを指定します。
互換性レベルが 65 以下の場合、ALTER COLUMN は使用できません。
詳細については、「sp_dbcmptlevel」を参照してください。

次の列は変更できません。

text 型、image 型、ntext 型、または timestamp 型の列。

但し、他の型で互換性のある型から変更は可能



2006.08.22 Tuesday | 18:20

  キャラクタコード一括変換ソフト ふるいむかし

http://www.vector.co.jp/soft/win95/util/se135907.html


GUI であるが、コマンドラインより指定してバッチ処理可能



2006.08.22 Tuesday | 16:01

  SQLServer NTEXT ふるいむかし

Unicode のみの照合順序の Unicode データまたはNTEXT データを、
DB-Library (例 ISQL) または ODBC バージョン 3.7 以前を使用して
いるクライアントに送信できません。

Warning: mssql_query() [function.mssql-query]: message: Unicode data
 in a Unicode-only collation or ntext data cannot be sent to clients 
using DB-Library (such as ISQL) or ODBC version 3.7 or earlier. 

This is because you are using column types of like ntext instead of 
text.  There are 2 solutions.

1.  Change all ntext column types to text or
2.  Your query must look like: SELECT CAST(field1 AS TEXT) AS field1 FROM table 


1) TEXT 型で追加
2) update テーブル名 set 新しい列 = 古い列
3) alter table テーブル名 drop column 古い列
4) sp_rename 'テーブル名.今の列名', '新しい列名', 'COLUMN'



<< 20/24 >>