HTANoid 用hta编写的一个经典的游戏

所属分类: 脚本专栏 / hta 阅读数: 1771
收藏 0 赞 0 分享
This game is not finished. The purpose was just to show you that you can do some graphical things without having to use external pictures.
If you want to develop this game, please submit your updates.

File Name : htanoid.hta
Requirement : IE 6 ?
Author : Jean-Luc Antoine
Submitted : 17/05/2002
Category : Other


效果图:



实现代码:

复制代码 代码如下:

<html xmlns:v="urn:schemas-microsoft-com:vml" XMLNS:t="urn:schemas-microsoft-com:time">
<head>

<HTA:APPLICATION
 APPLICATIONNAME="HTAnoid"
 BORDER="thick" | "dialog" | "none"  | "thin"
 BORDERSTYLE="normal" | "complex" | "raised"  | "static"  | "sunken"
 CAPTION="yes" CONTEXTMENU="yes"
 ID="oHTA" alert(oHTA.applicationName);
 INNERBORDER="yes" MAXIMIZEBUTTON="yes" MINIMIZEBUTTON="yes"
 NAVIGABLE="no" SCROLL="no" SCROLLFLAT="no"
 SELECTION="yes" SHOWINTASKBAR="yes" SINGLEINSTANCE="no"
 SYSMENU="yes" VERSION="0.5"
 WINDOWSTATE="normal" | "maximize" | "minimize">

<script language=vbscript>
Option explicit
Const C_ScreenW=400
Const C_NbX=12
Const C_NbY=10
Dim Terrain(10,12)
Dim RaqX,RaqW,Playing,BalleX,BalleY
Dim DirBX,DirBY 'Direction balle X,Y
Dim BordDroit
BordDroit=C_ScreenW-32

Sub Document_onKeyPress()
 Select Case UCase(Chr(Window.Event.keyCode))
 Case "P"
  Msgbox "pause"
  'Window.ClearTimeOut
 End Select
End Sub

Sub Document_onClick()
 Playing=True
 'document.title="click " & window.event.button
End Sub

Sub Document_onMouseMove()
 RaqX=window.event.clientX-RaqW '.shiftKey .keyCode .ctrlKey .button .altKey
 If RaqX<16 Then RaqX=16 'Mur gauche
 If RaqX+RaqW>BordDroit Then RaqX=BordDroit-RaqW
 Raquette.style.Left=RaqX
 If Not Playing Then
  BalleX=RaqX+RaqW/2
  Balle.Style.Left=BalleX
 End If
End Sub

Sub DrawLevel(n)
 Dim k,x,y
 set k=document.getElementById("Raquette")
 For y=0 To C_NbY
  For x=0 To C_NbX
   Terrain(y,x)=0 'Nb de coups restant à porter
  Next
 Next

 Select Case n
 Case 1
  'Bricks
  For y=0 To 5
   For x=0 To C_NbX
    k.insertAdjacentHTML "beforeBegin","<TABLE style='position:absolute;top=" & 102+14*y & ";left=" & 16+27*x _
    & ";width=25;height=10;' bgcolor=" & Array("silver","red","yellow","blue","magenta","lightgreen")(y) & "><TR><TD></TD></TR></TABLE>"
   Next
  Next
 End Select
 Randomize
 BalleY=400
 DirBX=Int(Rnd()*3)+1
 DirBY=0-(Int(Rnd()*4)+1)
End Sub

Sub Init
 Dim x,y,k
 Window.MoveTo screen.Width/2-200,0
 Window.ReSizeTo C_ScreenW,484
 RaqW=Int(Replace(Raquette.style.width,"pc","")*1.6)

 'Lives Left
 set k=document.getElementById("Raquette")
 'CreateElement + insertAdjacentElement
 For x=0 To 2
  k.insertAdjacentHTML "beforeBegin","<v:group style='position:absolute;top=430;left=" & 16+x*30 _
   & ";width:15pc;height:5pc;'><v:roundrect style='width:100;height:100;' fillcolor=red><v:fill type='gradient'/></v:roundrect>" _
   & "<v:rect style='position:relative;left:10;top:2;width:80;height:90' strokecolor=black><v:fill type='gradient' color=#4682b4 focus=0.2 /></v:rect></v:group>"
 Next

 DrawLevel 1
 Playing=False

 window.setTimeout "Gere",10
End Sub

Sub Gere
 If Playing Then
  'Déplacement de la balle
  If DirBX>0 Then
   If BalleX+DirBX>BordDroit-10 Then DirBX=0-DirBx
  Else
   If BalleX+DirBX<16 Then DirBX=0-DirBx
  End If
  If DirBY>0 Then
   If BalleY+DirBY>400 Then DirBY=0-DirBY
  Else
   If BalleY+DirBY<50 Then DirBY=0-DirBY
  End If
  BalleX=BalleX+DirBX
  BalleY=BalleY+DirBY
  Balle.Style.Left=BalleX
  Balle.Style.Top=BalleY
 Else
  document.title=Now
 End If
 window.setTimeout "Gere",10
End Sub
</script>
<STYLE TYPE="text/css">
<!--
 v\:* {behavior:url(#default#VML);}
 t\:* {behavior:url(#default#time2)}

BODY {
  font-family: "Verdana, Arial, Helvetica, sans-serif";
  background-color=#003159;
  color:#0000FF;
  font-size: 8pt;
 }
TABLE,TD {
  border:'0pix groove';
  cursor:W-resize;
 }
.score {
  color:white;
  font-size: 10pt;
 }
-->
</STYLE>

</head>
<body topmargin=0 leftmargin=0 rightmargin=0 onload="vbscript:init">
<!-- Panel de score -->
<CENTER><font size=2 color=red><b>HIGH SCORE</b></font><br><table cellspacing=0 width=100%><tr><td width=50% align=center>
<div id=Score class=score>1234</div></td><td><div id=HighScore class=score>123400</div></td></tr></table></CENTER>

<!-- terrain -->
<table width=100% height=420 cellspacing=0 cellpadding=0>
<tr height=14><td colspan=3>
 <v:rect style='width:100%;height:15'>
 <v:fill type="gradient" color=white color2=darkgray focus=3.3 />
 </v:rect>
</td></tr>
<tr height=100%><td width=15>
 <v:rect style='width:15;height:100%' strokecolor="#666666" strokeweight="2pt">
 <v:stroke dashstyle="dashdot" />
 <v:fill type="gradient" angle="-90" color2=white color=darkgray focus=3.3 />
 </v:rect>
 </td>

 <td width=100%>

 <v:oval id="balle" style='position:absolute;top=400;width:8;height:6' fillcolor=#009999 strokecolor=#0066FF id=boule>
 <v:fill type=gradientradial color2=white focusposition=0.3,0.3  focussize=0.01,0.01 />
 </v:oval>


 <v:group id=Raquette style='position:absolute;top=410;width:30pc;height:6pc;'>
 <v:roundrect style='width:100;height:100;' fillcolor=red>
  <v:fill type='gradient'/></v:roundrect>
 <v:rect style='position:relative;left:10;top:2;width:80;height:90' strokecolor=black>
  <v:fill type='gradient' color=#4682b4 focus=0.2 /></v:rect>
 </v:group>


 </td>
 <td  align=right>
 <v:rect style='width:15;height:100%' strokecolor="#666666" strokeweight="2pt">
 <v:stroke dashstyle="dashdot" />
 <v:fill type="gradient" angle="-90" color2=white color=darkgray focus=3.3 />
 </v:rect>
 </td></tr>
</table>

</body>
</html>



原文:http://www.interclasse.com/scripts/htanoid.php

更多精彩内容其他人还在看

hta查看磁盘空间的脚本

用hta实现的可以查看磁盘剩余空间的脚本
收藏 0 赞 0 分享

HTA编辑HOST文件的脚本

一个修改HOST文件的小工具,利用FSO实现,代码比较长,功能也比较多
收藏 0 赞 0 分享

hta实现的定时重启或关闭计算机的小工具

一个用于定时重启或关闭计算机的小工具,适用于Windows 2K/XP/2003
收藏 0 赞 0 分享

hta实现的二进制文件转换为文本

hta 二进制文件转换为文本工具
收藏 0 赞 0 分享

风讯注入exp(hta版)代码发布

风讯注入exp实例代码,hta版的方便使用
收藏 0 赞 0 分享

学习正则帮手笨狼正则练习器

把下面的文件保存为hta文件,运行即可
收藏 0 赞 0 分享

hta实现的笨狼XSLT练习器

学习XSLT的朋友,用这个小工具不错
收藏 0 赞 0 分享

hta实现的笨狼树状节点查看器

笨狼树状节点查看器
收藏 0 赞 0 分享

hta作品笨狼CSDN爬虫

笨狼CSDN爬虫
收藏 0 赞 0 分享

hta(vbs)列目录树代码

一个网友在短消息里问我这个问题,并给出了他写的出错代码。短消息有字数限制,在此回复他一下。玩了两个月,没有写代码了,脑子不好用了。费了好大劲,最后还是请教了老马才把网友的代码更写出来,几乎是重写了,呵呵。
收藏 0 赞 0 分享
查看更多