成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

易語言中Ex_DirectUI如何自繪掃雷游戲

小編給大家分享一下易語言中Ex_DirectUI如何自繪掃雷游戲,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

清苑網(wǎng)站建設(shè)公司創(chuàng)新互聯(lián)建站,清苑網(wǎng)站設(shè)計制作,有大型網(wǎng)站制作公司豐富經(jīng)驗。已為清苑成百上千家提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\成都外貿(mào)網(wǎng)站制作要多少錢,請找那個售后服務(wù)好的清苑做網(wǎng)站的公司定做!

MineMartix

.版本 2
.支持庫 spec
.程序集 MineMartix, Ex_控件基類, , ExDUI擴展組件_掃雷按鈕
.程序集變量 m_顏色, 整數(shù)型
.程序集變量 m_透明度, 整數(shù)型
.程序集變量 m_Rect, RectF
.程序集變量 m_hIcon, 整數(shù)型, , , 圖像句柄
.程序集變量 m_單擊回調(diào)指針, 整數(shù)型
.程序集變量 m_Mine, 邏輯型
.程序集變量 m_Pos, PointF
.程序集變量 m_Num, 整數(shù)型, , , 周圍雷數(shù)量
.程序集變量 m_pFont, 整數(shù)型, , , 字體指針
.程序集變量 m_GPs, Gdip_文本格式
.程序集變量 m_ClickdColor, 整數(shù)型, , , 點擊后顏色
.程序集變量 m_CurrentColor, 整數(shù)型, , , 當(dāng)前顏色
.子程序 _初始化, , , 當(dāng)基于本類的對象被創(chuàng)建后,此方法會被自動調(diào)用
.子程序 _銷毀, , , 當(dāng)基于本類的對象被銷毀前,此方法會被自動調(diào)用
.子程序 Obj, 整數(shù)型
.參數(shù) hWnd, 整數(shù)型
.參數(shù) msg, 整數(shù)型
.參數(shù) wParam, 整數(shù)型
.參數(shù) lParam, 整數(shù)型
.判斷開始 (msg = #事件_初始化)
 m_pFont = 字體_創(chuàng)建 (“微軟雅黑”, 12)
 m_GPs.創(chuàng)建 (#文本格式標(biāo)志_不換行)
 m_ClickdColor = RGB2ARGB (#黑色, 80)
 重畫 ()
 調(diào)試輸出 (hWnd, msg)
.判斷 (msg = #事件_銷毀)
 圖像_銷毀 (m_hIcon)
.判斷 (msg = #事件_繪畫)
 Paint (hWnd, 1)
.判斷 (msg = #事件_動畫開始)
 動畫類型 (#動畫類型_默認(rèn))
.判斷 (msg = #事件_動畫結(jié)束)
 動畫幀數(shù) (0)
.判斷 (msg = #事件_進入組件)
 動畫幀數(shù) (16, 10)
 Paint (hWnd, 2)
.判斷 (msg = #事件_離開組件)
 動畫幀數(shù) (16, 10)
 Paint (hWnd, 1)
.判斷 (msg = #事件_左鍵按下)
 動畫幀數(shù) (16, 10)
 Paint (hWnd, 3)
.判斷 (msg = #事件_左鍵放開)
 動畫幀數(shù) (16, 10)
 Paint (hWnd, 2)
 .如果真 (m_CurrentColor ≠ #黑色)
  .如果真 (m_單擊回調(diào)指針 ≠ 0)
   調(diào)用子程序_ (m_單擊回調(diào)指針, m_Pos.x, m_Pos.y)
  .如果真結(jié)束
 .如果真結(jié)束
.默認(rèn)
.判斷結(jié)束
返回 (-1)
.子程序 Paint
.參數(shù) hObj, 整數(shù)型
.參數(shù) Status, 整數(shù)型, , 1.正常 2.點燃 2.按下
.局部變量 m_ps, Exs_PaintStruct
.局部變量 color, 整數(shù)型
Ex_BeginPaint (hObj, m_ps, , 真)
.如果真 (Status = 1)
 圖形_填充_矩形 (m_ps.mGraphics, m_ps.Rcf, RGB2ARGB (m_CurrentColor, m_透明度)) ' 畫正常狀態(tài)
.如果真結(jié)束
.如果真 (Status = 2)
 圖形_填充_矩形 (m_ps.mGraphics, m_ps.Rcf, RGB2ARGB (m_CurrentColor, 180)) ' 畫點燃狀態(tài)
.如果真結(jié)束
.如果真 (Status = 3)
 圖形_填充_矩形 (m_ps.mGraphics, m_ps.Rcf, RGB2ARGB (m_CurrentColor, m_透明度 + 40)) ' 畫按下狀態(tài)
.如果真結(jié)束
.如果真 (m_hIcon ≠ 0)
 圖形_繪圖 (m_ps.mGraphics, m_hIcon, m_ps.Rcf, 真) ' 畫雷圖片
.如果真結(jié)束
.如果真 (m_Num ≠ 0)
 .如果真 (m_Num = 1)
  color = RGB2ARGB (#藍(lán)色)
 .如果真結(jié)束
 .如果真 (m_Num = 2)
  color = RGB2ARGB (#綠色)
 .如果真結(jié)束
 .如果真 (m_Num = 3)
  color = RGB2ARGB (#紅色)
 .如果真結(jié)束
 .如果真 (m_Num = 4)
  color = RGB2ARGB (#紫色)
 .如果真結(jié)束
 .如果真 (m_Num = 5)
  color = RGB2ARGB (#紅褐)
 .如果真結(jié)束
 .如果真 (m_Num = 6)
  color = RGB2ARGB (#天藍(lán))
 .如果真結(jié)束
 .如果真 (m_Num = 7)
  color = RGB2ARGB (#白色)
 .如果真結(jié)束
 .如果真 (m_Num = 8)
  color = RGB2ARGB (#深灰)
 .如果真結(jié)束
 圖形_畫文本 (m_ps.mGraphics, MakeRCF (m_ps.Rcf.left + 3, m_ps.Rcf.top, m_ps.Rcf.Width, m_ps.Rcf.Height), A2W (到文本 (m_Num)), m_pFont, color, m_GPs.取指針 (), #文本效果_描邊, RGB2ARGB (#白色, 120)) ' 畫標(biāo)題
.如果真結(jié)束
圖形_描邊_矩形 (m_ps.mGraphics, m_ps.Rcf, #邊框_單線式, RGB2ARGB (#白色), 1) ' 畫邊框
Ex_EndPaint (hObj, m_ps)
.子程序 Create, 整數(shù)型, 公開
.參數(shù) 窗口句柄, 整數(shù)型
.參數(shù) 左邊, 整數(shù)型
.參數(shù) 頂邊, 整數(shù)型
.參數(shù) 寬度, 整數(shù)型
.參數(shù) 高度, 整數(shù)型
.參數(shù) 顏色, 整數(shù)型, , rgb
.參數(shù) 透明度, 整數(shù)型
m_顏色 = 顏色
m_CurrentColor = m_顏色
m_透明度 = 透明度
m_Rect.left = 左邊
m_Rect.top = 頂邊
m_Rect.Width = 寬度
m_Rect.Height = 高度
返回 (初始化 (窗口句柄, m_Rect, 1020150, 真, , #鼠標(biāo)指針_手型))
.子程序 SetIcon, , 公開
.參數(shù) Icon, 字節(jié)集
.如果真 (Icon = { 0 })
 .如果真 (m_hIcon ≠ 0)
  圖像_銷毀 (m_hIcon)
  m_hIcon = 0
 .如果真結(jié)束
 重畫 ()
.如果真結(jié)束
m_hIcon = 圖像_創(chuàng)建自字節(jié)集 (Icon)
重畫 ()
.子程序 SetClickEvents, , 公開
.參數(shù) pcbk, 整數(shù)型
m_單擊回調(diào)指針 = pcbk
.子程序 SetXY, , 公開, 設(shè)置坐標(biāo)
.參數(shù) x, 整數(shù)型
.參數(shù) y, 整數(shù)型
m_Pos.x = x
m_Pos.y = y
.子程序 SetMine, , 公開, 設(shè)置為雷
m_Mine = 真
.子程序 CleanMine, , 公開, 清除雷
m_Mine = 假
.子程序 CheckMine, 邏輯型, 公開, 檢測是否為雷
返回 (m_Mine)
.子程序 SetMineNum, , 公開, 設(shè)置周圍雷數(shù)量
.參數(shù) Num, 整數(shù)型
m_Num = Num
重畫 ()
.子程序 SetStatus, , 公開
.參數(shù) Status, 整數(shù)型, , 0.未點擊狀態(tài) 1.點擊后狀態(tài)
.如果真 (Status = 0)
 m_CurrentColor = m_顏色
.如果真結(jié)束
.如果真 (Status = 1)
 m_CurrentColor = #黑色
.如果真結(jié)束
重畫 ()
.子程序 GetStatus, 整數(shù)型, 公開
.如果真 (m_CurrentColor = m_顏色)
 返回 (0)
.如果真結(jié)束
.如果真 (m_CurrentColor = #黑色)
 返回 (1)
.如果真結(jié)束
返回 (0)

自繪掃雷游戲

此功能需要加載Ex_DirectUI 2.0模塊

.版本 2
.支持庫 eAPI
.程序集 窗口程序集1
.程序集變量 Ex, Ex_DirectUI
.程序集變量 Martix, MineMartix, , "10,10"
.程序集變量 Mine, PointF, , "0"
.程序集變量 ScorePos, PointF, , "0"
.程序集變量 Btn, 按鈕_Ex
.程序集變量 TimeBtn, 超級按鈕_Ex
.程序集變量 ScoreBtn, 超級按鈕_Ex
.程序集變量 restartBtn, 超級按鈕_Ex
.程序集變量 Frame, 分組框_Ex
.程序集變量 Time, 整數(shù)型
.程序集變量 Score, 整數(shù)型
.子程序 __啟動窗口_創(chuàng)建完畢
.局部變量 i, 整數(shù)型
.局部變量 j, 整數(shù)型
Ex.掛接皮膚 (取窗口句柄 (), , #銀白, 1 + 2 + 4, 150, , 0, , , , , 假)
Frame.創(chuàng)建 (取窗口句柄 (), 16, 66, 180, 180)
.計次循環(huán)首 (10, i)
 .計次循環(huán)首 (10, j)
  Martix [i] [j].Create (取窗口句柄 (), j × 16 + 10, i × 16 + 60, 16 + 1, 16 + 1, #天藍(lán), 100) ' 掃雷按鈕矩陣
  Martix [i] [j].SetXY (i, j)
  Martix [i] [j].SetClickEvents (到整數(shù) (&Martix_Click)) ' 掛接單擊事件
 .計次循環(huán)尾 ()
.計次循環(huán)尾 ()
TimeBtn.創(chuàng)建 (取窗口句柄 (), 16, 30, 76, 30, “Time:001”)
restartBtn.創(chuàng)建 (取窗口句柄 (), 92, 30, 30, 30, “重置”)
restartBtn.掛接事件 (10244, &Init)
ScoreBtn.創(chuàng)建 (取窗口句柄 (), 122, 30, 73, 30, “Score:000”)
Btn.掛接事件 (10244, &Init)
Init ()
Ex.置進入特效 (7)
Ex.置退出特效 (2)
.子程序 RandPoint, PointF, , 生成隨機不重復(fù)坐標(biāo)
.參數(shù) 最大值, 整數(shù)型
.參數(shù) 數(shù)量, 整數(shù)型
.局部變量 nPoint, PointF, 靜態(tài), "0"
.局部變量 i, 整數(shù)型
.計次循環(huán)首 (數(shù)量, i)
 nPoint.x = 取隨機數(shù) (1, 最大值)
 nPoint.y = 取隨機數(shù) (1, 最大值)
.計次循環(huán)尾 ()
.子程序 Init
.局部變量 x, 整數(shù)型
.局部變量 y, 整數(shù)型
.局部變量 i, 整數(shù)型
.局部變量 Point, PointF
時鐘1.時鐘周期 = 0
Score = 0
Time = 0
ScoreBtn.標(biāo)題 (“Score:000”)
TimeBtn.標(biāo)題 (“Time:000”)
置隨機數(shù)種子 ()
.計次循環(huán)首 (取數(shù)組成員數(shù) (Mine), i) ' 清除雷
 Martix [Mine [i].x] [Mine [i].y].SetIcon ({ 0 })
 Martix [Mine [i].x] [Mine [i].y].CleanMine ()
 Martix [Mine [i].x] [Mine [i].y].重畫 ()
.計次循環(huán)尾 ()
.計次循環(huán)首 (取數(shù)組成員數(shù) (ScorePos), i) ' 清除已經(jīng)點過的方格
 Martix [ScorePos [i].x] [ScorePos [i].y].SetStatus (0)
 Martix [ScorePos [i].x] [ScorePos [i].y].SetMineNum (0)
 Martix [ScorePos [i].x] [ScorePos [i].y].重畫 ()
.計次循環(huán)尾 ()
清除數(shù)組 (Mine)
清除數(shù)組 (ScorePos)
.計次循環(huán)首 (10, i) ' 隨機埋雷
 x = 取隨機數(shù) (1, 10)
 y = 取隨機數(shù) (1, 10)
 Martix [x] [y].SetMine ()
 Point.x = x
 Point.y = y
 加入成員 (Mine, Point)
.計次循環(huán)尾 ()
.子程序 Martix_Click
.參數(shù) x, 整數(shù)型
.參數(shù) y, 整數(shù)型
.局部變量 i, 整數(shù)型
.如果真 (時鐘1.時鐘周期 = 0)
 時鐘1.時鐘周期 = 1000
.如果真結(jié)束
.如果 (ClickMine (x, y) = 真)
 增加分?jǐn)?shù) (x, y)
 .計次循環(huán)首 (10, i)
  Martix [Mine [i].x] [Mine [i].y].SetIcon (#MinePic)
 .計次循環(huán)尾 ()
 時鐘1.時鐘周期 = 0
 信息框_Ex (取窗口句柄 (), “您輸了! 分?jǐn)?shù):” + 到文本 (取數(shù)組成員數(shù) (ScorePos)), , , , , , , , , , 真, , #銀白, 120, 0, , , 假, , 7, 2)
 Init ()
.否則
 .如果 (Score < 90)
  自動區(qū)域 (x, y)
 .否則
  時鐘1.時鐘周期 = 0
  信息框_Ex (取窗口句柄 (), “恭喜通關(guān)! 時間:” + 到文本 (Time), , , , , , , , , , 真, , #銀白, 120, 0, , , 假, , 7, 2)
  Init ()
 .如果結(jié)束
.如果結(jié)束
.子程序 ClickMine, 邏輯型, , 點擊方格,點到雷返回真
.參數(shù) x, 整數(shù)型
.參數(shù) y, 整數(shù)型
.如果真 (Martix [x] [y].GetStatus () = 0)
 增加分?jǐn)?shù) (x, y)
 Martix [x] [y].SetStatus (1)
 .如果真 (Martix [x] [y].CheckMine () = 真)
  返回 (真)
 .如果真結(jié)束
 返回 (假)
.如果真結(jié)束
返回 (假)
.子程序 增加分?jǐn)?shù)
.參數(shù) x, 整數(shù)型
.參數(shù) y, 整數(shù)型
.局部變量 Point, PointF
Point.x = x
Point.y = y
加入成員 (ScorePos, Point)
Martix [x] [y].SetMineNum (計算雷數(shù) (x, y))
Score = Score + 1
ScoreBtn.標(biāo)題 (“Score:” + 格式化文本 (“%.3d”, Score))
.子程序 計算雷數(shù), 整數(shù)型, , 計算九宮格內(nèi)的雷數(shù)
.參數(shù) x, 整數(shù)型
.參數(shù) y, 整數(shù)型
.局部變量 Num, 整數(shù)型
.如果真 (x ≠ 1)
 .如果真 (Martix [x - 1] [y].CheckMine () = 真) ' 左邊
  Num = Num + 1
 .如果真結(jié)束
.如果真結(jié)束
.如果真 (x < 10)
 .如果真 (Martix [x + 1] [y].CheckMine () = 真) ' 右邊
  Num = Num + 1
 .如果真結(jié)束
.如果真結(jié)束
.如果真 (y ≠ 1)
 .如果真 (Martix [x] [y - 1].CheckMine () = 真) ' 上邊
  Num = Num + 1
 .如果真結(jié)束
.如果真結(jié)束
.如果真 (y < 10)
 .如果真 (Martix [x] [y + 1].CheckMine () = 真) ' 下邊
  Num = Num + 1
 .如果真結(jié)束
.如果真結(jié)束
.如果真 (x ≠ 1 且 y ≠ 1)
 .如果真 (Martix [x - 1] [y - 1].CheckMine () = 真) ' 左上角
  Num = Num + 1
 .如果真結(jié)束
.如果真結(jié)束
.如果真 (x < 10 且 y < 10)
 .如果真 (Martix [x + 1] [y + 1].CheckMine () = 真) ' 右下角
  Num = Num + 1
 .如果真結(jié)束
.如果真結(jié)束
.如果真 (x ≠ 1 且 y < 10)
 .如果真 (Martix [x - 1] [y + 1].CheckMine () = 真) ' 左下角
  Num = Num + 1
 .如果真結(jié)束
.如果真結(jié)束
.如果真 (x < 10 且 y ≠ 1)
 .如果真 (Martix [x + 1] [y - 1].CheckMine () = 真) ' 右上角
  Num = Num + 1
 .如果真結(jié)束
.如果真結(jié)束
返回 (Num)
.子程序 自動區(qū)域
.參數(shù) x, 整數(shù)型
.參數(shù) y, 整數(shù)型
.如果真 (計算雷數(shù) (x, y) = 0)
 .如果真 (x ≠ 1)
  ClickMine (x - 1, y)
 .如果真結(jié)束
 .如果真 (x < 10)
  ClickMine (x + 1, y)
 .如果真結(jié)束
 .如果真 (y ≠ 1)
  ClickMine (x, y - 1)
 .如果真結(jié)束
 .如果真 (y < 10)
  ClickMine (x, y + 1)
 .如果真結(jié)束
 .如果真 (x ≠ 1 且 y ≠ 1)
  ClickMine (x - 1, y - 1)
 .如果真結(jié)束
 .如果真 (x < 10 且 y < 10)
  ClickMine (x + 1, y + 1)
 .如果真結(jié)束
 .如果真 (x ≠ 1 且 y < 10)
  ClickMine (x - 1, y + 1)
 .如果真結(jié)束
 .如果真 (x < 10 且 y ≠ 1)
  ClickMine (x + 1, y - 1)
 .如果真結(jié)束
 ClickMine (x, y)
.如果真結(jié)束
.子程序 _時鐘1_周期事件
Time = Time + 1
TimeBtn.標(biāo)題 (格式化文本 (“Time:%.3d”, Time))

運行結(jié)果:

易語言中Ex_DirectUI如何自繪掃雷游戲

以上是“易語言中Ex_DirectUI如何自繪掃雷游戲”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!

文章題目:易語言中Ex_DirectUI如何自繪掃雷游戲
文章起源:http://jinyejixie.com/article48/ppichp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供移動網(wǎng)站建設(shè)網(wǎng)站制作、靜態(tài)網(wǎng)站、用戶體驗、外貿(mào)建站網(wǎng)站改版

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

綿陽服務(wù)器托管
沽源县| 东乡族自治县| 长泰县| 白城市| 达尔| 诏安县| 织金县| 汾阳市| 绵阳市| 西畴县| 荔波县| 浏阳市| 防城港市| 永仁县| 四会市| 安义县| 宁津县| 南汇区| 临沧市| 启东市| 玉田县| 从江县| 娄烦县| 隆回县| 历史| 阿拉善左旗| 安龙县| 乌恰县| 赣州市| 涟源市| 边坝县| 肃北| 永平县| 吴旗县| 垫江县| 尼勒克县| 南雄市| 天峨县| 大田县| 建昌县| 大名县|