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

(0)

相关推荐

  • 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 ? Auth

  • 用Python设计一个经典小游戏

    本文主要介绍如何用Python设计一个经典小游戏:猜大小. 在这个游戏中,将用到前面我介绍过的所有内容:变量的使用.参数传递.函数设计.条件控制和循环等,做个整体的总结和复习. 游戏规则: 初始本金是1000元,默认赔率是1倍,赢了,获得一倍金额,输了,扣除1倍金额. 玩家选择下注,押大或押小: 输入下注金额: 摇3个骰子,11≤骰子总数≤18为大,3≤骰子总数≤10为小: 如果赢了,获得1倍金额,输了,扣除1倍金额,本金为0时,游戏结束. 程序运行结果是这样的: 现在,我们来梳理下思路. 我们

  • hta编写的常用工具箱(常用工具快捷方式等)

    一.程序功能简介: 程序基于vbs+hta编写.xp系统下(不同显示器.分辨率)测试通过. 1.本程序以去除U盘文件夹隐藏属性功能为主:可以先通过结束用户进程(包含病毒进程),然后去除被病毒隐藏的文件夹,同时删除与文件夹同名的exe病毒文件副本. 2.辅助功能: ①添加常用命令,如:打开输入法设置.声音设置.系统配置程序等:另外,专门添加了"生成显示桌面"功能,帮助误删了快捷方式显示桌面的朋友找回"显示桌面"功能. ②添加常用的注册表设置功能,如:解除注册表锁定.显

  • 用python编写第一个IDA插件的实例

    IDA插件是经过编译的.功能更强大的IDC脚本,与仅仅使用脚本相比,插件能够执行更加复杂的任务.与编写IDC脚本相比,python显得更为轻巧和强大,IDAPython作为IDA的一个插件,具有IDA SDK的大部分功能,能够帮助我们编写实现IDC脚本语言所有功能的python脚本. 本文将以一个简单的例子开始展示如何使用python编写并安装一个IDA插件. 1.编写插件文件msg.py from idaapi import * class myIdaPlugin(plugin_t): fla

  • 如何利用JavaScript编写一个格斗小游戏

    拖延症晚期的我原本计划趁着周末写个年终总结,但是一直没有什么思路,想来想去也没想到要写啥就胡乱写了这么一个小东西. 一直比较痴迷游戏行业,可能我不太适合做前端,应该去学C++.... 首先当然是选择一张背景图,作为整个场景中的地图,而且要大要高清.布局到页面中. 然后通过可视区值展示这张图片的一小部分.我这里用的是宽600,高420的,超出直接隐藏掉. width: 600px; height: 420px; 这样一个简单的场景就写好了,接着我们需要在这个场景中加入我们的人物.也就是游戏中的角色

  • MySQL UPDATE 语句一个“经典”的坑

    目录 1.有问题的SQL语句 有人问,比如下图: 问题归纳起来就是:在MySQL里面update一条记录,语法都正确的,但记录并没有被更新... 刚遇到这个问题的时候,我拿到这条语句直接在测试库里面执行了一把,发现确实有问题,但和开发描述的还是 有区别 ,这里我用测试数据来模拟下: 1.有问题的SQL语句 执行之后的记录是: 可以看到,结果并不像这位开发同学说的"好像没有效果",实际上是有效果的: why? 看起来,语法是完全没有问题,翻了翻MySQL官方文档的update语法: 看到

  • 利用Python编写一个记忆翻牌游戏

    目录 导语 开发工具 环境搭建 先睹为快 原理简介 导语 昨天看到有留言竟然说我是月更博主,我明明更新地这么勤快(心虚.jpg).看吧,昨天刚更新过,今天又来更新了. 今天还是带大家写个小游戏吧,不过老是用pygame也没啥意思,这次我们换点新花样,用python自带的tkinter包写一个记忆翻牌小游戏呗. 废话不多说,让我们愉快地开始吧~ 开发工具 Python版本:3.7.4 相关模块: pygame模块: tkinter模块: pillow模块: 以及一些python自带的模块. 环境搭

  • 基于JavaScript编写一个翻卡游戏

    目录 前言 翻卡动画 生成随机分布数组 均匀元素下的随机算法 不均匀元素下的随机算法 生成最终数组 点击事件 完整代码 前言 首先将这个游戏需求拆分成三个部分: 翻卡动画 生成随机分布数组 点击事件 翻卡动画 假如我们的盒子模型不是个二维的平面,而是有个三维的体积,让它可以有正反两面,那我们在做的时候是不是只要将它真实的翻个面就可以了.让我们来想想将它变成三维的方法. 之后发现了这个属性: transform: translateZ(1px); 使用了它,就可以把盒子内部的元素与盒子的底部撑出个

  • 利用Jetpack Compose实现经典俄罗斯方块游戏

    目录 可组合函数 游戏机身 - TetrisBody 游戏按钮 - TetrisButton 游戏屏幕 - TetrisScreen 调度器 - TetrisViewModel 项目地址 你的童年是否有俄罗斯方块呢,本文就来介绍如何通过 Jetpack Compose 实现一个俄罗斯方块 ~~ 先看下效果图,功能还是挺完善的 就我自己的体验来说,使用 Compose 开发的应用我感受不到和 Android 原生开发之间有什么性能差异,但 Compose 在开发难度上会低很多 Google 官网上

  • 原生JavaScript编写canvas版的连连看游戏

    本文实例为大家分享了JavaScript编写canvas版的连连看游戏的具体实现代码,供大家参考,具体内容如下 效果图: 实现代码: <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <style> #box{ /*border: 1px solid #D1D1D1; */ overflow: hidden; pos

随机推荐