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

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.
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

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