aardio - 小游戏制作库来了

news/2024/7/23 17:44:41 标签: 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.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.niftyadmin.cn/n/5147306.html

相关文章

五年制专转本的备考是多方面的较量

转本复习已进入下半场&#xff0c;同学们不能再慢悠悠地看书了&#xff01;接下来就是很多人备考的发力期&#xff0c;能否弯道超车就要看个人的把握。 1、自控与时间管理 转本考的知识就是那么多&#xff0c;只需要你高效地投入一定的时间和精力就能够掌握。问题是一些同学做…

Odoo 网站主题开发指南

Odoo 网站主题开发指南 下载根据本指南开发的主题模块源码 Odoo 网站生成器是一个灵活的工具&#xff0c;可以轻松构建与 Odoo 应用完全集成的网站。使用其提供的主题选项 (options) 和构建块 (blocks) 很容易定制网站。然而&#xff0c;你还可以更进一步深度定制。在本文中&a…

Web开发介绍详细介绍

Web开发介绍 1 什么是web开发 Web&#xff1a;全球广域网&#xff0c;也称为万维网(www World Wide Web)&#xff0c;能够通过浏览器访问的网站。 所以Web开发说白了&#xff0c;就是开发网站的&#xff0c;例如下图所示的网站&#xff1a;淘宝&#xff0c;京东等等 那么我们…

StoneDB-8.0-V2.1.0 企业版正式发布!免费公测中!

很高兴告诉大家&#xff0c;我们StoneDB-8.0-V2.1.0企业版正式发布了&#xff01;经过一个月的开发&#xff0c;我们的研发团队用极高的效率对2.0新架构版本查漏补缺&#xff0c;完善了最新架构的代码&#xff0c;并对性能、稳定性做出了优化&#xff0c;同时也修复了一些用户们…

网络安全好就业吗?

现目前而言&#xff0c;网络安全工程师仍是比较紧缺的。但网络安全行业前景好并≠网络安全的入学门槛低&#xff0c;也≠网络安全行业适合所有转岗的人。行业紧缺的一直是技术过硬&#xff0c;德才兼备的优秀人才。 一、网络安全适合哪些人&#xff1f; 首先&#xff0c;是对…

蓝桥等考C++组别三级010

第一部分&#xff1a;选择题 1、C L3 &#xff08;15分&#xff09; 执行以下代码&#xff0c;输出的结果是&#xff08; &#xff09;。 cout << (5 / 2) << endl; A.1 B.2 C.2.5 D.3 正确答案&#xff1a;B 2、C L3 &#xff08…

golang工程——opentelemetry简介、架构、概念、追踪原理

opentelemetry 简介 OpenTelemetry&#xff0c;简称OTel&#xff0c;是一个与供应商无关的开源可观测性框架&#xff0c;用于检测、生成、收集和导出 遥测数据&#xff0c;如轨迹、度量、日志。OTel的目标是提供一套标准化的供应商无关SDK、API和工具&#xff0c;用于接 收、…

AndroidPicker的使用

项目地址&#xff1a;https://github.com/gzu-liyujiang/AndroidPicker 历史版本:https://github.com/gzu-liyujiang/AndroidPicker/blob/master/ChangeLog.md 依赖配置 // JitPack 远程仓库&#xff1a;https://jitpack.iomaven { url https://jitpack.io } 所有选择器的基…