带声音的DOS JavaScript画布

2020-08-18 17:29:46

DOJS是一种JavaScript编程环境,适用于运行MS-DOS、FreeDOS或任何基于DOS的Windows(如95、98、ME)的系统。它具有集成编辑器、图形和声音输出、鼠标/键盘/操纵杆输入等功能(见下文)。灵感来自于维基百科上描述的处理过程:

Processing是一个开源图形库和集成开发环境(IDE)/游乐场,专为电子艺术、新媒体艺术和视觉设计社区构建,目的是在视觉环境中向非程序员传授计算机编程的基础知识。

它还具有p5js兼容模式,其中可以使用p5js的一些功能,并且脚本可以具有类似于处理草图的结构。

您可以使用内置的脚本或您最喜欢的文本编辑器键入脚本,然后在DOS命令提示符下运行它。

您可以在GitHub版本页面上找到二进制版本。只需解压缩存档内容并运行DOjS.exe即可。

DOJS在DOSBOX上运行,并在装有MS-DOS、FreeDOS或任何基于DOS的Windows(如Windows 95/98/ME)的真实硬件或虚拟机上运行。要使用3dfx/Glide支持,您需要一个巫毒卡或DOSBox-X(见下文)。

如果你在真实的硬件上运行,你至少需要一个4MB的80386。我推荐一台至少有32MB内存的奔腾级机器(>;=100 MHz)。示例文件在Athlon 1 GHz和256MB RAM上运行良好。

8/16/24和32位2D图形。在24/32位显示模式下,Alpha通道透明度可用。

/*该函数在脚本启动时调用一次。*/Function Setup(){PINK=new Color(241,66,244,255);//定义粉色}/*重复此函数,直到按Esc或调用Stop()。*/Function Loop(){ClearScreen(EGA.。黑色);TextXY(SizeX()/2,sizey()/2,";Hello World!";,PINK,NO_COLOR);TextXY(10,10,";rate=";+GetFramerate(),EGA。布莱克,EGA。Light_Blue);}/*此函数在任何输入上调用。*/函数输入(事件){str=JSON。Stringify(事件);}。

使用DOjS.EXE Examples\exampl.js打开此脚本,或使用DOjS.EXE-r Examples\exampl.js运行该脚本,而无需先启动集成编辑器。如果脚本不存在,则编辑器加载新脚本的模板。

如果要使用p5js的语法编写脚本,则需要使用include(';p5';);作为脚本的第一行。您可以在Examples/examplp5.js中找到以下示例:

Include(';p5';);/*此函数在脚本启动时调用一次。*/Function Setup(){PINK=COLOR(241,66,244);//定义粉色}/*重复此函数,直到按下Esc或调用Stop()。*/函数Draw(){Background(EGA.。黑色);笔触(粉色);填充(粉色);文本(";Hello p5js World!";,width/2,Height/2);笔划(EGA.。浅蓝色);填充(EGA.。Light_Blue);文本(";rate=";+getFrameRate(),10,10);}。

有关更多信息,请参阅本自述末尾的用法部分和API文档。也请看下面的示例。

DOJS支持与3dfx加速卡一起使用的大部分Glide3API。支持以下硬件:

此外,您可以使用DOSBox-X,它模拟巫毒1卡。Glide函数可以在文档的3dfx-module中找到,Javascript支持函数有";fx&34;前缀,所有本机函数都有";fx";前缀。详细的Glide3-API文档可以在互联网上找到,例如在FalconFly Central上。确保你抓取的是Glide3SDK,而不是Glide2!

可以使用随附的DOS版本的TEXUS.EXE将位图转换为可以作为纹理加载的3DF纹理文件。

!!!注意!3dfx/Glide3支持仅适用于纯DOS,而不适用于Windows9x的DOS/命令窗口!在尝试使用任何FX函数之前,请确保始终引导至纯DOS提示符!在使用3dfx/Glide3支持之前,您需要将相应的GLIDE3X.DXE复制到与DOJS.EXE相同的目录中。您可以通过使用分发ZIP存档中的V_XXX.BAT脚本来完成此操作。

您可以在任何现代Linux(以下说明适用于基于Debian的发行版)或使用Windows Subsystem for Linux(WSL)的Windows 10上编译DOJS。按照本指南设置Windows Subsystem for Linux(WSL)(我使用的是Ubuntu 18.04 LTS)。

根据本指南构建并安装DJGPP 7.2.0。我使用以下命令行更新/安装依赖项:

Sudo apt-获取更新udo apt-get dist-upgradesudo apt-get install bison flex curl GCC g++make texinfo zlib1g-dev g++unzip HTOP Screen git bash-Complete build-Essential npm zip-g jsdocsudo npm install-g tui-jsdoc-template。

在文本编辑器中打开Makefile,并根据您的安装将路径更改为DJGPP。

现在,您可以使用Make Clean All编译DOjS了。这可能需要一些时间,因为依赖项相当大。Make Distlean也将清除依赖项。Make zip将创建分发ZIP,make doc将重新创建HTML帮助。

为了编译DOjS,您需要Glide3Includes和二进制文件。包含在DOjS源代码中的那些是使用GitHub上的My Glide存储库创建的。

GRX字体受麻省理工学院和其他许可。有关详细信息,请参阅许可证中的Coping.grx。

这段代码取自金树公司Hotwarez LLC的游戏Cylindrix,在GPLv2下发布。

此二进制分发中的文件可以在GPL(带源代码)下重新分发,也可以在没有提供源代码的情况下重新分发。

该代码在3dfx Glide源代码通用公共许可证下获得许可。源代码可在https://github.com/SuperIlu/glide获得。

DZComm串行库作为礼品发布。有关详细信息,请参阅dzcomm文件夹中的readme.txt。

DOJS的标识狗是从Pexels下载的,由Iago Garcia Garcia亲切提供。

徽标字体是Jeff Davis根据SIL开放字体许可证版本1.1提供的漫画浮雕。

MIDI文件是从Freedoom项目下载的,并根据本许可证进行许可。

用法:DOjS.EXE[-r][-s][-f][-a]<;script>;[脚本参数]-r:不调用编辑器,只运行脚本。-w<;width>;:屏幕宽度:320或640,默认值:640。-b<;bpp>;:每像素位数:8、16、24、32。默认值:32。-s:没有波音。-F:没有调频音响。-a:禁用alpha(加快渲染速度)。

F1:打开/关闭帮助Shift-F1:函数上下文帮助F3:保存脚本F4:运行脚本F7:查找文本F9:显示/关闭日志文件F10:退出Shift-F4:截断日志文件并运行脚本Shift-F7:再次查找CTRL-D:删除当前行Shift+移动:选择文本。松开Shift键取消选择CTRL-C:复制选定内容CTRL-X:剪切选定内容CTRL-V:粘贴CTRL-LEFT:上一字CTRL-RIGHT:下一字CTRL/PAGE-UP:上一页CTRL/PAGE-DOWN:下一页HOME:转到行尾:转到行尾CTRL-HOME:转到行首CTRL-END:转到行尾TAB:插入空格直到下一页TAB-停在光标SHIFT-TAB:可以通过在日志查看器中按DEL键截断日志文件。

您可以在doc/html/director.cn中找到完整的API文档。请转到p5.js主页查看p5.js参考。

脚本需要提供三个函数:setup()、Loop()和input()。脚本是自上而下加载和执行的。之后,调用一次setup(),然后重复调用Loop()。每当发生键盘输入的鼠标时,都会调用input()。

此函数在设置后重复调用,直到调用stop()。在调用stop()之后,程序在Loop()退出时结束。

DOJS支持IPX联网。节点地址是由0-255之间的6个数字组成的数组。默认套接字编号和广播地址定义可以在jsboot/ipx.js中找到。

将include(';p5';);添加为脚本的第一行。在此之后,您将拥有(有限的)p5.js兼容性。不起作用的东西:

所有通过print()和Println()的输出都被发送到文件JSLOG.TXT。您可以改用Debug(),并且只有在设置全局变量DEBUG=TRUE时才会生成输出。

此功能允许您通过IPX网络和第二台计算机调试正在运行的脚本。要使用远程日志记录,请执行以下操作:

通过设置DEBUG=TRUE启用调试,通过REMOTE_DEBUG=TRUE启用远程调试。您可以修改JSBOOT\FUNC.JS或更改脚本开头的变量。

这对于DOSBox的两个实例也很有效。请注意,如果日志消息传输得很快,则DOJS的接收实例在显示时可能会跳过其中的一些。