>234
System3.5だったら、Xでも動かせるエミュレートエンジンがあるよね。
全部VCLで作っていれば問題ないけど、TBitmapでScanlineをガリガリやるんだったら移植は面倒だと思うな。
音楽の再生とかも、Xだと難しいでしょうし。
どの環境でも動くようにしたいのならJAVAで作るしかないのかな?
まあ、Linuxユーザーは少ないことだしまだ作る必要性は無いでしょう。
がんばっている1に色々プレゼントしちゃうぞ。
>アンチエイリアスフォント
Delphiでやってるなら、TABitmapのSuperTextOutで簡単に実装できる。
ウィンドウズでやってくれる技もあるらしいけど・・・・。
>フルスクリーン。
OtherWinList:TList;
をprivateで宣言
enumwindowsprocはForm1:TForm1;のところの下でやっとけばOK。
type TXYWH =record
XYpos:TPoint;
WHSize:TPoint;
HWND :THandle;
end;
を上の方に置く。
function EnumWindowsProc(wnd: HWND; lp: LPARAM): Boolean; stdcall;
var
strClass,strCaption: String;
xypos,whsize:TPoint;
rect:TRect;
procedure adddat(list:TList;hwnd:THandle;xy,wh:TPoint);
var val:^TXYWH;
begin
new(val);
val.HWND:=HWND;
val.XYpos:=xy;
val.WHSize:=wh;
List.Add(val);
end;
begin
Result := True;
GetWindowRect(wnd,rect);
xypos:=Point(rect.Left,rect.Top);
whsize:=Point(Rect.Right-Rect.Left,Rect.Bottom-Rect.Top);
adddat(Form1.OtherWinList,WND,xypos,whsize);
end;
237 :
236:02/03/08 19:46 ID:???
続き
procedure TForm1.FullModeWin;
var
i: integer;
devmode: TDeviceMode;
begin
EnumDisplaySettings(nil,i,devmode);
i:=0;
devmode.dmPelsWidth :=Gameinfo.pWinSize.x;
devmode.dmPelsHeight:=Gameinfo.pWinSize.y;
devmode.dmFields := DM_PELSWIDTH or DM_PELSHEIGHT;
if ChangeDisplaySettings(devmode,CDS_TEST)=DISP_CHANGE_SUCCESSFUL then begin
OtherWinList:=TList.Create;
EnumWindows(@EnumWindowsProc,0);
MainForm.WindowState:=wsMaximized;
ChangeDisplaySettings(devMode, 0);
end;
end;
procedure TForm1.ReTurnFullModeWin;
var val:^TXYWH;
i :Integer;
begin
ChangeDisplaySettings(PDeviceMode(nil)^,0);
MainForm.WindowState:=wsNormal;
for i:=0 to OtherWinList.Count-1 do begin
val:=OtherWinList[i];
MoveWindow(val.HWND,val.XYpos.X,val.XYpos.Y,val.WHSize.X,val.WHSize.Y,True);
Dispose(val);
end;
OtherWinList.Free;
end;
使い方は簡単。FullModeWinでフルスクリーン、戻るときはReturnFullMode。
ビデオ再生、音楽再生の技も教えられるけどどうするよ。
といっても、MCI使うだけなんだけどさ(死