aardio - 小游戏制作库来了

将 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.animationvar 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.mzph.cn/news/129494.shtml

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

相关文章

华为实验基础(2):路由器基础

一、路由器的分类 1、从功能、性能和应用方面划分&#xff1a; &#xff08;1&#xff09; 骨干路由器 &#xff1a;骨干路由器是实现主干网络互连的关键设备&#xff0c;通常采用模块化结构&#xff0c;通过热备 份、双电源和双数据通路等冗余技术提高可靠性 &#xff0c;华…

玩一下Spring Boot

文章目录 1 开发环境1.1 JDK1.2 IntelliJ IDEA2 Spring Boot2.1 创建项目2.2 创建模板页面2.3 创建控制器2.4 启动项目2.5 访问页面1 开发环境 1.1 JDK 安装JDK21 配置环境变量 在命令行查看JDK版本 玩一玩jshell

【三方登录-Apple】iOS 苹果授权登录(sign in with Apple)之开发者配置一

记录一下sign in with Apple的开发者配置 前言 关于使用 Apple 登录 使用“通过 Apple 登录”可让用户设置帐户并使用其Apple ID登录您的应用程序和关联网站。首先使用“使用 Apple 登录”功能启用应用程序的App ID 。 如果您是首次启用应用程序 ID 或为新应用程序启用应用程序…

【PyQt学习篇 · ⑨】:QWidget -控件交互

文章目录 是否可用是否显示/隐藏是否编辑是否为活跃窗口关闭综合案例信息提示状态提示工具提示“这是什么”提示 焦点控制单个控件角度父控件角度 是否可用 setEnabled(bool)&#xff1a;该函数用于设置QWidget控件的可用性&#xff0c;参数bool为True表示该控件为可用状态&…

sqli 靶场 Level23-Level30 wp

level-23 &#xff08;注释被过滤&#xff09; 抓包&#xff0c;查看正常请求和响应。 略 尝试是否存在注入 id1’,id1’&#xff0c;成周期性变化 尝试 POC POC: id1andextractValue(1,concat(0x7e,user()))-- 结果&#xff1a;failed。怀疑–被过滤掉了&#xff0c;尝试…

创建javaEE项目(无maven),JSP(九大内置对象)、Servlet(生命周期)了解

一、Servlet和jsp 0.创建web项目(无maven)&#xff1a; 1.创建一个普通的java项目 2.项目根目录右键&#xff0c;添加模板 3.配置tomcat服务器 4.配置项目tomcat依赖 1.Servlet(Server Applet)服务端小程序 用户通过浏览器发送一个请求&#xff0c;服务器tomcat接收到后&…

基于nodejs+vue 网上商城系统系统-毕业设计

目 录 摘 要 I ABSTRACT II 目 录 II 第1章 绪论 1 1.1背景及意义 1 1.2 国内外研究概况 1 1.3 研究的内容 1 第2章 相关技术 3 2.1 nodejs简介 4 2.2 express框架介绍 6 2.4 MySQL数据库 4 第3章 系统分析 5 3.1 需求分析 5 3.2 系统可行性分析 5 3.2.1技术可行性&#xff1a;…

乌班图 Linux 系统 Ubuntu 23.10.1 发布更新镜像

Ubuntu 团队在其官网上发布了Ubuntu 23.10.1 版本,这是目前较新的 Ubuntu 23.10(Focal Fossa)操作系统系列的第一个发行版,旨在为社区提供最新的安装媒体。Ubuntu 22.04 LTS(Focal Fossa)操作系统系列于 2022 年 4 月 21 日发布。 Ubuntu 23.10 LTS(长期支持版本)可用…

C语言或C++结构体及其变量的创建方式汇总

第一种&#xff1a; struct 结构体类型名{ 任意类型 变量&#xff1b; }; 结构体类型名 *结构体变量new 结构体类型名; #include<bits/stdc.h> using namespace std; struct LNode {int data;struct LNode *next; }; /*void PutElem(LNode *t){while(t->next!NULL){…

Win10/Win11总是自动更新,如何关闭自动更新?

参考:https://www.zhihu.com/search?q%E5%85%B3%E9%97%ADwindows%E8%87%AA%E5%8A%A8%E6%9B%B4%E6%96%B0&search_sourceSuggestion&utm_contentsearch_suggestion&typecontent 手动关闭 1 Windows服务 1.1 WinR输入services.msc打开服务 1.2 找到Windows Update…

hugetlb核心组件

1 概述 hugetlb机制是一种使用大页的方法&#xff0c;与THP(transparent huge page)是两种完全不同的机制&#xff0c;它需要&#xff1a; 管理员通过系统接口reserve一定量的大页&#xff0c;用户通过hugetlbfs申请使用大页&#xff0c; 核心组件如下图&#xff1a; 围绕着…

机器学习之多层感知机 MLP简洁实现 《动手深度学习》实例

&#x1f388; 作者&#xff1a;Linux猿 &#x1f388; 简介&#xff1a;CSDN博客专家&#x1f3c6;&#xff0c;华为云享专家&#x1f3c6;&#xff0c;Linux、C/C、云计算、物联网、面试、刷题、算法尽管咨询我&#xff0c;关注我&#xff0c;有问题私聊&#xff01; &…

go的Ticker,Timer,Tick的区别和用法

写在前面 在go面试的时候&#xff0c;面试官经常会问time包的Ticker,Timer以及Tick的区别&#xff0c;一般在超时控制的时候用的比较多。今天就来详细学一下这几个的区别 Ticker Ticker是周期性定时器&#xff0c;即周期性的触发一个事件&#xff0c;它会以一个间隔(interval)…

日本it培训学费 想去日本做IT,需要具备哪些技术?

日本的IT行业历史比较悠久&#xff0c;业务以上层前端业务为主&#xff0c;如设计和构建软件。日本IT公司组织庞大&#xff0c;行业内部有着严格的分工和部署&#xff0c;工作会被细分化&#xff0c;分配给个人的工作量不会太大&#xff0c;难度也不会很高&#xff0c;所以日本…

设计模式之装饰模式--优雅的增强

目录 概述什么是装饰模式为什么使用装饰模式关键角色基本代码应用场景 版本迭代版本一版本二版本三—装饰模式 装饰模式中的巧妙之处1、被装饰对象和装饰对象共享相同的接口或父类2、当调用装饰器类的装饰方法时&#xff0c;会先调用被装饰对象的同名方法3、子类方法与父类方法…

【TS篇一】TypeScript介绍、使用场景、环境搭建、类和接口

文章目录 一、TypeScript 介绍1. TypeScript 是什么1.2 静态类型和动态类型1.3 Why TypeScript1.4 TypeScript 使用场景1.5 TypeScript 不仅仅用于开发 Angular 应用1.6 前置知识 二、如何学习 TypeScript2.1 相关链接 三、起步3.1 搭建 TypeScript 开发环境3.2 编辑器的选择3.…

操作系统(28)

1. 简单说下你对并发和并行的理解&#xff1f; 2. 同步、异步、阻塞、非阻塞的概念 3. 进程和线程的基本概念 4. 进程与线程的区别&#xff1f; 5. 为什么有了进程&#xff0c;还要有线程呢&#xff1f; 6. 进程的状态转换 7. 进程间的通信方式有哪些&#xff1f; 8. 进程的调度…

音频修复增强软件iZotope RX 10 mac中文特点

iZotope RX 10 mac是一款音频修复和增强软件。 iZotope RX 10 mac主要特点 声音修复&#xff1a;iZotope RX 10可以去除不良噪音、杂音、吱吱声等&#xff0c;使音频变得更加清晰干净。 音频增强&#xff1a;iZotope RX 10支持对音频进行音量调节、均衡器、压缩器、限制器等处…

请输出 n 以内的素数 ← Python

【题目描述】 请利用 Python 编程输出 n 以内的素数。【算法代码】 neval(input("Please input an integer:")) x[] for i in range(2,n1):k0for j in range(1,i1):if i%j0:k1if k2:x.append(i) print(x) 【参考文献】https://blog.csdn.net/weixin_49432344/artic…

[概述] 点云滤波器

拓扑结构 点云是一种三维数据&#xff0c;有几种方法可以描述其空间结构&#xff0c;以利于展开搜索 https://blog.csdn.net/weixin_45824067/article/details/131317939 KD树 头文件&#xff1a;pcl/kdtree/kdtree_flann.h 函数&#xff1a;pcl::KdTreeFLANN 作用&#xff1a…