ゲームウィンドウサイズ変更ツール コア部分ソース(UWSC)


setSGBWinSize( 720, 1280 )	// ゲームウィンドウを横720ピクセル、縦1280ピクセルに変更
// ↑ここまでメインルーチン

//
// スマイルゲームビルダーのゲームウィンドウサイズ変更
//
// forceClientWidth:	変更後のゲームウィンドウ幅(ピクセル)
// forceClientHeight	変更後のゲームウィンドウ高さ(ピクセル)
//
procedure setSGBWinSize( forceClientWidth, forceClientHeight )

	// ゲームウィンドウのIDを取得
	sgbWinID = GetId( , "kmyWGLWindowClass" )
	if sgbWinID < 0 then
		// ゲームウィンドウが見つからなければ終了
		exitexit
	endif

	// クライアント領域の幅が forceClientWidth になるようウィンドウ幅を計算
	sgbWin_Width = Status( sgbWinID, ST_WIDTH )
	sgbWin_CLWidth = Status( sgbWinID, ST_CLWIDTH )
	new_sgbWin_Width = sgbWin_Width - sgbWin_CLWidth + forceClientWidth

	// クライアント領域の高さが forceClientHeight になるようウィンドウ高さを計算
	sgbWin_Height = Status( sgbWinID, ST_HEIGHT )
	sgbWin_CLHeight = Status( sgbWinID, ST_CLHEIGHT )
	new_sgbWin_Height = sgbWin_Height - sgbWin_CLHeight + forceClientHeight

	// 現在のゲームウィンドウの中心位置を計算
	sgbWinCenterX = Status( sgbWinID, ST_X ) + sgbWin_Width / 2
	sgbWinCenterY = Status( sgbWinID, ST_Y ) + sgbWin_Height / 2

	new_sgbWin_X = sgbWinCenterX - new_sgbWin_Width / 2
	new_sgbWin_Y = sgbWinCenterY - new_sgbWin_Height / 2

	// 現在のゲームウィンドウの中心を維持してウィンドウサイズを変更
	Acw(	sgbWinID,_
		new_sgbWin_X,_
		new_sgbWin_Y,_
		new_sgbWin_Width,_
		new_sgbWin_Height )

fend

ゲームウィンドウサイズ変更ツール コア部分ソース(Autoit)



setSGBWinSize( 720, 1280 )		;ゲームウィンドウを横720ピクセル、縦1280ピクセルに変更
; ↑ここまでメインルーチン

;
; スマイルゲームビルダーのゲームウィンドウサイズ変更
;
; forceClientWidth:	変更後のゲームウィンドウ幅(ピクセル)
; forceClientHeight	変更後のゲームウィンドウ高さ(ピクセル)
;
Func setSGBWinSize( $forceClientWidth, $forceClientHeight )

	; ゲームウィンドウの位置とサイズを取得
	$sgbWinParam = WinGetPos("[CLASS:kmyWGLWindowClass]", "" )
	if @error = 1 then
		exit
	endif
	; ゲームウィンドウのクライアント領域のサイズを取得
	$sgbWinClientParam = WinGetClientSize("[CLASS:kmyWGLWindowClass]", "" )

	; クライアント領域の幅・高さが$forceClientWidth, $forceClientHeightになるよう
	; 新しいウィンドウサイズを計算
	$newSgbWinWidth = $sgbWinParam[2] - $sgbWinClientParam[0] + $forceClientWidth
	$newSgbWinHeight = $sgbWinParam[3] - $sgbWinClientParam[1] + $forceClientHeight

	; ゲームウィンドウの中心座標を計算
	$sgbWinCenter_x = $sgbWinParam[0] + $sgbWinParam[2] / 2
	$sgbWinCenter_y = $sgbWinParam[1] + $sgbWinParam[3] / 2

	; ウィンドウの中心座標を維持してウィンドウサイズを変更
	WinMove(	"[CLASS:kmyWGLWindowClass]", _
			"", _
			$sgbWinCenter_x - $newSgbWinWidth / 2, _
			$sgbWinCenter_y - $newSgbWinHeight / 2, _
			$newSgbWinWidth, _
			$newSgbWinHeight )

EndFunc