HTANoid用hta编写的一个经典的游戏
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.复制代码 代码如下:
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
HTANoid用hta编写的一个经典的游戏