首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

WPF/Silverlight 遊戲開發教程 (二十三-1):自適應窗口化與全螢幕切換 — 架構擴展性的試金石

     編輯:關於C語言

優秀架構的考驗:窗口/全螢幕自適應切換是否只需局部微調。本節實現兩種切換模式,驗證前 22 節搭建平台的擴展性。

模式一:僅調整可視範圍 (不縮放物件)

記錄四個尺寸變量:

ScreenWidth = SystemParameters.PrimaryScreenWidth;
ScreenHeight = SystemParameters.PrimaryScreenHeight;
WindowWidth = 800;
WindowHeight = ScreenHeight * WindowWidth / ScreenWidth; // 依螢幕比例計算,支援寬屏

切換邏輯極簡:

if (mode == "全螢幕")
{
    this.WindowStyle = WindowStyle.None;
    this.WindowState = WindowState.Maximized;
    btn.Content = "窗口";
}
else
{
    this.WindowStyle = WindowStyle.SingleBorderWindow;
    this.WindowState = WindowState.Normal;
    btn.Content = "全螢幕";
}

WPF 僅修改 WindowStyle 與 WindowState 即可,無需調用 Windows API 變更系統解析度。

窗口/全螢幕切換效果圖

模式二:等比例縮放所有物件 (下節詳解)

所有遊戲物件 (角色、地圖、障礙物) 依比例放大/縮小,需將 GridSize 拆分為 GridSizeX/Y 適應寬屏非正方單元格。此模式對架構擴展性要求更高,下節將展示二十幾行代碼完美實現。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved