HTANoid 用hta编写的一个经典的游戏
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位于屏幕中心(Win32_DesktopMonitor)
我们可以调整(如果需要)窗口大小并使其居中,但这样做时会在屏幕上出现瞬间的闪烁。这并不是太明显,其实际结果就是你所期望的:HTA 会位于屏幕中心2013-08-08A notepad made in HTA(hta实现的记事本)
这个记事本可以在Win9x中运行,并且处理更大的文件。可以通过修改html修改页面,喜欢学习hta的朋友可以参考下2013-07-07
最新评论