aardio - 小游戏制作库来了

news2024/11/27 13:38:37

将 animation 库下载后,解压到 lib\godking\ 目录即可。

附带小游戏代码及素材。

import win.ui;
/*DSG{{*/
var winform = win.form(text="aardio form";right=759;bottom=469)
winform.add(
custom={cls="custom";text="自定义控件";left=8;top=8;right=752;bottom=464;db=1;dl=1;dr=1;dt=1;z=1}
)
/*}}*/

winform.show();
import godking.animation

var a = godking.animation(winform.custom)

// 背景图
a.Pic = ..string.load("\太空背景.png")

// 飞机参考物体
var addfeiji = a.createReferenceObject()
addfeiji.Picture = ..string.load("\飞机.png")
addfeiji.Zoom = 500
addfeiji.Type = 1 //己方,不同类型的才碰撞
addfeiji.CollideAllowed = true //允许碰撞

// 炮弹参考物体
var addzidan = a.createReferenceObject()
addzidan.Picture = ..string.load("\paodan.png")
addzidan.Type = 1 //己方,不同类型的才碰撞
addzidan.CollideAllowed = true //允许碰撞
addzidan.CreateSound = ..string.load("\LASER.WAV") // 发射炮弹声音

// 敌人参考物体
var adddiren = a.createReferenceObject()
adddiren.Picture = ..string.load("\diren.png")
adddiren.Type = 2 //敌方,不同类型的才碰撞
adddiren.CollidedSound = ..string.load("\爆炸.WAV")
adddiren.CollideAllowed = true //允许碰撞

// 爆炸特效参考物体
var addbaozha = a.createReferenceObject()  
addbaozha.Picture = ..string.load("\yantexiao.gif")  // 动图
addbaozha.Zoom = 100 

// 创建飞机实例
var feiji = a.create(0, 0, true, "", addfeiji)

a.onMouseMove = function(x, y, status /*功能键状态*/ ) {
    a.setPostion(feiji, x - 80, y - 80, true);
}

a.onLDown = function(x, y, status /*功能键状态*/ ) {
    var l = a.getLeft(feiji) // 获取飞机位置
    var t = a.getTop(feiji) // 获取飞机位置
    // 创建左边炮弹
    var zd = a.create(l + 30, t-20, true, "", addzidan) // 创建炮弹
    a.autoForward(zd, 10/*距离*/, 10/*间隔*/, 0/*最大距离*/, 0/*最大时间*/, true/*碰撞停止*/, false/*边界停止*/, true/*自动销毁*/, ""/*路线*/, 0/*次数*/)
    if ..math.random(1, 5) == 5 a.autoRotate(zd, 10, 10, 360, 0); // 20%的几率发射带拐弯的炮弹
    //创建右边炮弹
    var zd = a.create(l + 110, t-20, true, "", addzidan) // 创建炮弹
    a.autoForward(zd, 10/*距离*/, 10/*间隔*/, 0/*最大距离*/, 0/*最大时间*/, true/*碰撞停止*/, false/*边界停止*/, true/*自动销毁*/, ""/*路线*/, 0/*次数*/)
    if ..math.random(1, 5) == 5 a.autoRotate(zd, 10, 10, 360, 0); // 20%的几率发射带拐弯的炮弹
}

// 定时创建敌人实例
var timer = winform.setInterval(
    function() {
        adddiren.Zoom = ..math.random(300,1000); // 随机大小
        var dr = a.o ( a.create(..math.random(0, winform.custom.width)/*x*/, -30/*y*/, true/*显示*/, ""/*文本*/, adddiren/*参考物体*/)); // 随机横向位置
        var ag = ..math.random(150,210); // 随机生成下落角度
        dr.setAngle(ag); // 设置下落角度
        if ag<180 dr.turn(1/*翻转类型*/);
        dr.autoForward(..math.random(1,3)/*距离*/, ..math.random(10,30)/*间隔*/, 0/*最大距离*/, 0/*最佳时间*/, true/*碰撞停止*/ ,false/*边界停止*/, true/*自动销毁*/, ""/*文本*/, 0/*次数*/);
    }, 500
)

// 碰撞事件
a.onCollision = function(id,x,y,id1){ 
    if id==feiji or id1==feiji { // 飞机碰撞,游戏结束。
        winform.clearInterval(timer);
        a.clear();
        var over = a.create(100,100,true,"",);
        var font = a.createFont("黑体",100,0,false,false,false,false);
        a.setText(over,"游戏结束",font,0x0000FF);
    } else { // 敌人碰撞,创建爆炸特效实例
        var l,t;
        if a.getType(id)==2 {
            l = x; 
            t = y; 
        } else {
            l = a.getLeft(id1); 
            t = a.getTop(id1);
        }
        var bz = a.create(l-20/*x*/, t-20/*y*/, true/*显示*/, ""/*文本*/, addbaozha/*参考物体*/);
        a.playGIF(bz,1,true,0,0); // 播放爆炸动画
        a.destroy(id); // 销毁与敌人碰撞的物体(炮弹)
        a.destroy(id1); // 销毁与敌人碰撞的物体(炮弹)
    }
}

winform.onclose = function(){
    a.close();
}

win.loopMessage();

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1166863.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

使用QEMU模拟启动uboot

uboot的相关知识&#xff0c;可以参考&#xff1a;uboot基本概念。 一、环境配置 WSL: ubutu20.04 模拟开发板&#xff1a;vexpress-a9 uboot版本&#xff1a;u-boot-2023.10 二、安装QEMU 2.1、安装sudo apt install qemu2.2、查看支持哪些开发板qemu-system-arm -M help结…

GET与POST的区别:为什么GET请求参数会被完整保留在浏览器历史记录里,而POST中的参数不会被保留?

&#x1f3ac; 江城开朗的豌豆&#xff1a;个人主页 &#x1f525; 个人专栏 :《 VUE 》 《 javaScript 》 &#x1f4dd; 个人网站 :《 江城开朗的豌豆&#x1fadb; 》 ⛺️ 生活的理想&#xff0c;就是为了理想的生活 ! 目录 ⭐ 专栏简介 &#x1f4d8; 文章引言 一、G…

传感器类总结(一)MPU9250 2电路设计

在了解姿态传感器的设计原理后&#xff0c;本章着重介绍以 MPU9250 九轴芯片&#xff08;见图2-1&#xff09;为例的姿态传感器的电路设计以及相关注意事项。 引脚功能 1 RESV 接VDDIO 2-6 脚 NC 7 AUX_CL 给IIC从机设备提供时钟&#xff0c;如果使用外部IIC设备比如气压计&am…

分享一下积分商城怎么做

积分商城&#xff1a;打造独特会员体验&#xff0c;提升用户忠诚度 在当今竞争激烈的市场环境中&#xff0c;企业需要不断寻找新的策略来吸引并保留客户。积分商城就是这样一种独特的解决方案&#xff0c;它通过赋予会员积分&#xff0c;让他们能够兑换心仪的商品或服务&#…

Random指定随机种子遇到的坑

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言指定随机种子出现的问题&#xff1f;总结 前言 业务中&#xff0c;之前有一个抽奖的需求&#xff0c;之初想让固定的奖品和玩家绑定一个固定的池子&#xff0c…

Spring Security使用总结二,本来就是想用个数据库,没想到还是沾到Spring Security

上一章介绍了最简单的一个Security的使用。有一个登录界面&#xff0c;有一个默认的用户&#xff0c;和一个随机生成的密码&#xff0c;为了后期这个登录我能使用自己的&#xff0c;所以需要使用一个数据库存储用户名和密码&#xff0c;这一章和Spring Security本无关&#xff…

如何做好网页配色,分享一些配色方案和方法

很多网页设计师在选择网页配色方案时&#xff0c;会纠结于用什么网页UI配色方案来吸引客户的注意力&#xff0c;传达信息。选择正确的颜色是网页设计不可或缺的一部分。本指南将从色彩理论和色彩心理学入手&#xff0c;分享三个网页UI配色的简单步骤。 网页UI配色方法有很多&a…

零代码编程:用ChatGPT批量重命名多个子文件夹里面的文件标题名

一个文件夹&#xff1a;D:\英语学习图书配套资源\亲子英语游戏书&#xff0c;这本最好玩&#xff0c;里面有多个子文件夹&#xff1a; 子文件夹里面的文件要重命名&#xff0c;将文件名称中的track替换为子文件夹名称&#xff1a; 在ChatGPT中输入提示词&#xff1a; 你是一个…

小程序提升“用户粘性”的10个方法

个性化推荐&#xff1a;通过用户行为数据分析&#xff0c;提供个性化的内容和推荐&#xff0c;以增加用户的兴趣和参与度。优惠和奖励&#xff1a;提供用户独有的优惠&#xff0c;折扣和奖励措施&#xff0c;如会员等级制度&#xff0c;积分制度等&#xff0c;以激励用户持续使…

电磁铁的使用注意事项

电磁铁是比较常用的磁场设备&#xff0c;在与磁性研究相关的实验室里&#xff0c;我们能经常看到&#xff0c;那磁场设备在使用的时候&#xff0c;包括各类电磁铁、亥姆霍兹线圈、螺线管等&#xff0c;有什么需要注意的事项呢&#xff1f; 电磁铁设备主要包括电磁铁以及配套电…

第五部分:Tomcat

5.1&#xff1a;JavaWeb 5.1.1&#xff1a;JavaWeb的概念 ①什么是JavaWeb? JavaWeb是指所有通过Java语言编写可以通过浏览器访问的程序的总称 JavaWeb是基于请求和响应来开发的 ②什么是请求&#xff1f; 请求是指客户端给服务器发送数据&#xff0c;叫请求Request ③什么是…

Web的兼容性测试主要测什么?

1.兼容性测试主要测什么&#xff1f; 对于兼容性测试我了解的很少&#xff0c;之前觉得兼容性测试&#xff0c;就是开发出来网站&#xff0c;在不同的浏览器上显示的是否正常&#xff0c;会不会因为浏览器不同&#xff0c;网站的显示样式&#xff0c;功能&#xff0c;获取的数…

BIOS开发笔记 - DDR中的时序参数

通过前一篇文章学习,我们可以大致知道内存条(Module)的组成及SDRAM内部的结构,这一篇再介绍下SDRAM中常见的时序参数以及整个读写操作的流程。 一、外部信号 图1 DDR4的外部线路图 DDR是一种高带宽的传输接口,其外部信号较多,图1是一个DDR4的外部线路图,以下对图中跟通…

使用 Docker 搭建一个“一主一从”的 MySQL 读写分离集群(超详细步骤)

目录 一、前提二、MySQL 生产安装1&#xff0c;拉取mysql2&#xff0c;查看mysql镜像3&#xff0c; 启动 mysql 容器4&#xff0c;修改mysql的中文编码5&#xff0c;查看验证mysql的中文编码 三、Mysql主机 mysql_master 的安装与配置1&#xff0c; 拷贝master容器2&#xff0c…

chrome 扩展 popup 弹窗的使用

popup的基本使用方法 popup介绍 popup 是点击 browser_action 或者 page_action图标时打开的一个小窗口网页&#xff0c;焦点离开网页就立即关闭&#xff0c;一般用来做一些临时性的交互。 popup配置 V3版本中&#xff08;V2版本是在 browser_action 中 &#xff09;&#x…

Python武器库开发-常用模块之base64模块(十四)

常用模块之base64模块(十四) 在Python中&#xff0c;base64是内置的常用的标准模块&#xff0c;base64模块是用来作base64编码解码&#xff0c;常用于小型数据的传输。我们可以直接通过import导入base64模块直接使用 import base64base64模块&#xff0c;除了base64之外&…

[PyTorch][chapter 61][强化学习-免模型学习1]

前言&#xff1a; 在现实的学习任务中&#xff0c;环境 其中的转移概率P,奖赏函数R 是未知的&#xff0c;或者状态X也是未知的 称为免模型学习&#xff08;model-free learning&#xff09; 目录&#xff1a; 1: 蒙特卡洛强化学习 2&#xff1a;同策略-蒙特卡洛强化学习 3&am…

紫光同创FPGA编写的8画面分割器演示

适用于板卡型号&#xff1a; 紫光同创PGL50H开发平台&#xff08;盘古50K开发板&#xff09; 图(1) 盘古50K开发板 TOP 层逻辑框 图(2) TOP层逻辑框 video_copy_ux 将输入的一路RGB888信号复制成8份&#xff0c;每份画面内容相同&#xff0c;各路颜色有些差异&#xff1a; 第…

C++ 之Google benchmark测试与分析

0. 简介 作为一个程序而言&#xff0c;benchmark是非常关键的一个衡量指标&#xff0c;无论是程序算法的指标还是程序运行性能的指标&#xff0c;这些我们都可以去完成衡量。对于性能衡量而言google benchmark无疑是一个比较好的选择 1. google benchmark安装 1.1 下载地址 …