绿色风's Blog
专注AutoIT(Au3)
  • 首页
  • 流●年
  • 笔●记
    • 学习随记
    • 源码示例
  • 脚●本
    • UDF(收集)
    • 工作室UDF
    • 工具●教程
    • 教程之GDI
  • 作●品
  • 下●载
  • 情怀ExcelTip
7月232016

AU3小游戏 - 撸杆过桥

作者:绿色风   发布:2016-7-23 7:18 Saturday   分类:源码示例   阅读:5545次   评论:0条  

0.gif


ACN站的超版:afan所作

可能有在手机上玩过类似的
游戏规则很简单,按住鼠标左键不松,杆会撸到一定高度,算好其倒下的距离,

撒手,杆倒下,够不着=摔死;

撸过了=摔死。
看谁撸得久远… 先说好,咱不摔鼠标!

```#include <GDIPlus.au3> Opt('GUIOnEventMode', 1) ;--------- 必要的变量声明 Local Const $GuiW = 400, $GuiY = 550 Local Const $Color_GUIBK = 0xFFCCCFC4 Local Const $vPos_CsX0 = 60, $vPos_CsY = 350 Local $vPos_CsX = $vPos_CsX0 Local Const $vFTW_Mix = 10 Local Const $vJj_Mix = 40 Local Const $vFT_CsX_Mix = $vPos_CsX + $vJj_Mix Local Const $vFT_CsX_Max = $GuiW - 50 Local Const $Color_LG = 0xFF6E5EA8 Local Const $vPenW_LG = 10 Local Const $Color_FT = 0xFF3F5133 Local Const $vPenW_FT = $GuiY - $vPos_CsY Local Const $Color_XF = 0xFFFFFFFF Local Const $vPenW_XF = 15 Local Const $vFTH = $vPos_CsY + ($vPenW_FT / 2) Local $vPos_FT_LeftW = $vPos_CsX Local $vPos_FT_Right_X Local $vPos_FT_RightW Local $vJL = 0 ;----------- 创建窗口 Local $hGui = GUICreate('撸杆过桥', $GuiW, $GuiY) GUISetOnEvent(-3, '_Exit') GUIRegisterMsg(0x0014, '_WM_ERASEBKGND') ;---------- 从窗口创建绘图环境 _GDIPlus_Startup() Local $hPen_LG = _GDIPlus_PenCreate($Color_LG, $vPenW_LG) Local $hPen_FT = _GDIPlus_PenCreate($Color_FT, $vPenW_FT) Local $hPen_XF = _GDIPlus_PenCreate($Color_XF, $vPenW_XF) Local $hGraphic_GUI = _GDIPlus_GraphicsCreateFromHWND($hGui) Local $hBMP_GUI = _GDIPlus_BitmapCreateFromGraphics($GuiW, $GuiY, $hGraphic_GUI) Local $hGraphic = _GDIPlus_ImageGetGraphicsContext($hBMP_GUI) ;----------- 更新绘图数据 __RightData() _Updata($vPos_CsX, $vPos_CsY - 5) GUISetState() ;----------- 主循环 Local $aMsPos, $iH While 1 Sleep(10) $iH = $vPos_CsY $aMsPos = GUIGetCursorInfo() If @Error Then ContinueLoop If Not $aMsPos[2] Then ContinueLoop While Not @Error And $aMsPos[2] Sleep(10) $iH -= 5 _Updata($vPos_CsX, $iH) ;---- 更新绘图数据 $aMsPos = GUIGetCursorInfo() Wend Local $a[46][2], $nRad = $vPos_CsY - $iH, $iL = $vPos_CsX - ($vPos_CsY - $iH), $iT = $iH Local $vPi = 3.14159265358979 / 180, $i For $i = 1 To 45 $a[$i][0] = $iL + $nRad + $nRad * Cos(2 * ($i + 270 / 2) * $vPi) $a[$i][1] = $iT + $nRad + $nRad * Sin(2 * ($i + 270 / 2) * $vPi) _Updata($a[$i][0], $a[$i][1]) ;---- 更新绘图数据 Sleep(10) Next Local $Continue = 0 If $a[$i-1][0] < $vPos_FT_Right_X Then If Msgbox(48 + 1, '重新开始?', '撸得不够') = 1 Then $Continue = 1 $vJL = 0 ElseIf $a[$i-1][0] > ($vPos_FT_Right_X + $vPos_FT_RightW) Then If Msgbox(48 + 1, '重新开始?', '撸得太长') = 1 Then $Continue = 1 $vJL = 0 Else $vJL += 1 _MoveXF($a[$i-1][0], Round($a[$i-1][1])) EndIf If $vJL > 0 Or $Continue Then $vPos_FT_LeftW = $vPos_FT_RightW __RightData() _Updata($vPos_CsX, $vPos_CsY - 5) EndIf WEnd Func _Updata($LG_d0, $LG_d1, $XF_d0 = 0, $XF_d1 = 0) ;============ 更新绘图数据 _GDIPlus_GraphicsClear($hGraphic, $Color_GUIBK) If $vPos_FT_LeftW > $vPos_CsX Then Local $CsX = 0 Else Local $CsX = $vPos_CsX - $vPos_FT_LeftW EndIf _GDIPlus_GraphicsDrawLine($hGraphic, $CsX, $vFTH, $vPos_CsX, $vFTH, $hPen_FT) If $LG_d1 <> $vPos_CsY Then _GDIPlus_GraphicsDrawLine($hGraphic, $vPos_FT_Right_X, $vFTH, $vPos_FT_Right_X + $vPos_FT_RightW, $vFTH, $hPen_FT) _GDIPlus_GraphicsDrawLine($hGraphic, $vPos_CsX, $vPos_CsY, $LG_d0, $LG_d1, $hPen_LG) Else Local $Cj = $vPos_CsX0 - $vPos_CsX _GDIPlus_GraphicsDrawLine($hGraphic, $vPos_FT_Right_X - $Cj, $vFTH, $vPos_FT_Right_X - $Cj + $vPos_FT_RightW, $vFTH, $hPen_FT) _GDIPlus_GraphicsDrawLine($hGraphic, $vPos_CsX, $vPos_CsY, $LG_d0 - $Cj, $LG_d1, $hPen_LG) EndIf If $XF_d0 = 0 Then $XF_d0 = $vPos_CsX - 20 If $XF_d1 = 0 Then $XF_d1 = $vPos_CsY - $vPenW_XF _GDIPlus_GraphicsDrawLine($hGraphic, $XF_d0, $XF_d1, $XF_d0 + 12, $XF_d1, $hPen_XF) ;---- 绘制原点小方 _GDIPlus_GraphicsDrawString($hGraphic, $vJL, $GuiW - 80, 10, 'Arial', 30) _GDIPlus_GraphicsDrawImage($hGraphic_GUI, $hBMP_GUI, 0, 0) ;---- 绘制图像对象 到窗口GUi EndFunc ;==>_Updata Func __RightData() ;============== 生成右方随机坐标数据 $vPos_FT_Right_X = Random($vFT_CsX_Mix, $vFT_CsX_Max, 1) Local $aRaW[5] = [Random($vFTW_Mix, $vFTW_Mix + 30, 1), _ Random($vFTW_Mix, $vFTW_Mix + 10, 1), _ Random($vFTW_Mix, ($GuiW - $vPos_FT_Right_X) * 0.6, 1), _ Random($vFTW_Mix, $vFTW_Mix + 80, 1), _ Random($vFTW_Mix, ($GuiW - $vPos_FT_Right_X) * 0.9, 1)] Local $vFTW = $aRaW[Random(0, 4, 1)] $vPos_FT_RightW = $vFTW EndFunc ;==>__RightData Func _MoveXF($LG0, $LG1) ;============= 小方移动 Local $x = $vPos_CsX - 20 Do Sleep(10) $x += 5 _Updata($LG0, $LG1, $x) Until $x >= $vPos_FT_Right_X + $vPos_FT_RightW - 10 Sleep(1000) Local $Bak = $vPos_CsX, $Cj = $vPos_FT_Right_X + $vPos_FT_RightW - $vPos_CsX Do Sleep(10) $x -= 5 $vPos_CsX -= 5 $Cj -= 5 _Updata($LG0, $LG1, $x) Until $Cj <= 0 $vPos_CsX = $Bak EndFunc ;==>_MoveXF Func _WM_ERASEBKGND($hWnd, $msg, $wParam, $lParam) ;=============== 系统刷新 _GDIPlus_GraphicsDrawImage($hGraphic_GUI, $hBMP_GUI, 0, 0) Return 1 EndFunc ;==>_WM_ERASEBKGND Func _Exit() ;=========== 退出 _GDIPlus_Shutdown() GUIDelete($hGui) Exit EndFunc ;==>_Exit```





本文固定链接: http://www.jianyiit.com/post-240.html

blogger
该日志由 绿色风 于2016-7-23 7:18 Saturday发表在 源码示例 分类下。
版权所有:《绿色风's Blog》 → 《AU3小游戏 - 撸杆过桥》;
除特别标注,本博客很多文章均为原创. 互联分享,尊重版权,转载请以链接形式标明本文地址;
本文标签:

扫描二维码,在手机上阅读
上一篇::蓝屏代码查询器1.1.8(包含最全的蓝屏代码)
下一篇:AU3打印预览源码示例

热门文章

相关文章

  • AU3窗口跟随与吸附
  • Au3简单的多线程例子
  • AU3利用shell.application获取图片的所有信息扩展信息
  • 获取进程列表路径
  • 非常酷的计算器
取消回复

发表评论

亲,头像对么?

20 + 30 =

提交中,请稍候……


木有头像就木JJ啦!还木有头像吗?点这里申请属于你的个性Gravatar头像吧!


    站点统计
    • 运行时间: 20254 天
    • 日志总数: 365 篇
    • 评论数量: 7238 条
    • 微语数量: 6 条
    • 附件总量: 388 件
  • 逝出的青春

  • 打赏"绿色风"



      扫码关注本站公众号 可搜本站内容

  • Autoit V3 脚本交流群

      常驻群1:905774875
      常驻群2:40672266


  • 链接

    • AU3中文论坛
    • Excel资料库
    • 完美者博客
    • 顺网小哥'S Blog
    • 猛牛哥的博客
    • 网吧系统下载
  • 分类

    • 流●年(66)
    • 笔●记(0)
    • 脚●本(0)
    • 作品(21)
    • 学习随记(51)
    • 源码示例(68)
    • UDF(收集)(26)
    • 工作室UDF(30)
    • 工具●教程(62)
    • 教程之GDI(24)
Copyright © 2013 绿色风's Blog. Powered by emlog. Theme by 射雕天龙. 鄂ICP备2021011689号-1 鄂公网安备42102302000078号 sitemap