AndEngine Example(4):SpriteRemoveExample

基于MATLAB的太阳能光伏电力仿真,模拟每日太阳能发电,可视化功率曲线,并通过数值积分计算总能量输出。.zip 1.版本:matlab2014a/2019b/2024b 2.附赠案例数据可直接运行。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。 立即下载

目标:

1. 了解纹理 BitmapTextureAtlas

2. 纹理区域工场 BitmapTextureAtlasTextureRegionFactory

3. 锁 EngineLock

4. 移除精灵



package org.andengine.examples;

import org.andengine.engine.Engine.EngineLock;
import org.andengine.engine.camera.Camera;
import org.andengine.engine.options.EngineOptions;
import org.andengine.engine.options.ScreenOrientation;
import org.andengine.engine.options.resolutionpolicy.RatioResolutionPolicy;
import org.andengine.entity.scene.IOnSceneTouchListener;
import org.andengine.entity.scene.Scene;
import org.andengine.entity.scene.background.Background;
import org.andengine.entity.sprite.Sprite;
import org.andengine.entity.util.FPSLogger;
import org.andengine.input.touch.TouchEvent;
import org.andengine.opengl.texture.TextureOptions;
import org.andengine.opengl.texture.atlas.bitmap.BitmapTextureAtlas;
import org.andengine.opengl.texture.atlas.bitmap.BitmapTextureAtlasTextureRegionFactory;
import org.andengine.opengl.texture.region.ITextureRegion;
import org.andengine.ui.activity.SimpleBaseGameActivity;

import android.widget.Toast;

/**
 * (c) 2010 Nicolas Gramlich
 * (c) 2011 Zynga
 *
 * @author Nicolas Gramlich
 * @since 11:54:51 - 03.04.2010
 */
public class SpriteRemoveExample extends SimpleBaseGameActivity implements IOnSceneTouchListener {
	// ===========================================================
	// Constants
	// ===========================================================

	private static final int CAMERA_WIDTH = 720;
	private static final int CAMERA_HEIGHT = 480;

	// ===========================================================
	// Fields
	// ===========================================================

	private BitmapTextureAtlas mBitmapTextureAtlas;
	private ITextureRegion mFaceTextureRegion;
	private Sprite mFaceToRemove;

	// ===========================================================
	// Constructors
	// ===========================================================

	// ===========================================================
	// Getter & Setter
	// ===========================================================

	// ===========================================================
	// Methods for/from SuperClass/Interfaces
	// ===========================================================

	@Override
	public EngineOptions onCreateEngineOptions() {
		Toast.makeText(this, "Touch the screen to safely remove the sprite.", Toast.LENGTH_LONG).show();

		final Camera camera = new Camera(0, 0, CAMERA_WIDTH, CAMERA_HEIGHT);

		return new EngineOptions(true, ScreenOrientation.LANDSCAPE_FIXED, new RatioResolutionPolicy(CAMERA_WIDTH, CAMERA_HEIGHT), camera);
	}

	@Override
	public void onCreateResources() {
		BitmapTextureAtlasTextureRegionFactory.setAssetBasePath("gfx/");

		this.mBitmapTextureAtlas = new BitmapTextureAtlas(this.getTextureManager(), 32, 32, TextureOptions.BILINEAR);
		this.mFaceTextureRegion = BitmapTextureAtlasTextureRegionFactory.createFromAsset(this.mBitmapTextureAtlas, this, "face_box.png", 0, 0);
		this.mBitmapTextureAtlas.load();
	}

	@Override
	public Scene onCreateScene() {
		this.mEngine.registerUpdateHandler(new FPSLogger());

		final Scene scene = new Scene();
		scene.setBackground(new Background(0.09804f, 0.6274f, 0.8784f));

		/* Calculate the coordinates for the face, so its centered on the camera. */
		final float centerX = (CAMERA_WIDTH - this.mFaceTextureRegion.getWidth()) / 2;
		final float centerY = (CAMERA_HEIGHT - this.mFaceTextureRegion.getHeight()) / 2;

		this.mFaceToRemove = new Sprite(centerX, centerY, this.mFaceTextureRegion, this.getVertexBufferObjectManager());
		scene.attachChild(this.mFaceToRemove);

		scene.setOnSceneTouchListener(this);

		return scene;
	}

	@Override
	public boolean onSceneTouchEvent(final Scene pScene, final TouchEvent pSceneTouchEvent) {
		if(this.mFaceToRemove == null) {
			return false;
		}

		final EngineLock engineLock = this.mEngine.getEngineLock();
		engineLock.lock();

		/* Now it is save to remove the entity! */
		pScene.detachChild(this.mFaceToRemove);
		this.mFaceToRemove.dispose();
		this.mFaceToRemove = null;

		engineLock.unlock();
		return true;
	}

	// ===========================================================
	// Methods
	// ===========================================================

	// ===========================================================
	// Inner and Anonymous Classes
	// ===========================================================
}



BitmapTextureAtlas 是一种Texture(纹理)

          BitmapTextureAtlas extends TextureAtlas

          TextureAtlas<T extends ITextureAtlasSource> extends Texture

(上一篇中使用的是 ITexture 对象,texture = new BitmapTexture(...) 它也是是extends自Texture)


BitmapTextureAtlasTextureRegionFactory 

设定AssetBasePath 路径,然后读取下面的"face_box.png" ,变成纹理,然后给mBitmapTextureAtlas,返回的则是一块纹理区域mFaceTextureRegion。

(这样就创建了 纹理 和 纹理区域)。


加锁: 关键区域需要加锁,例如移除精灵

final EngineLock engineLock = this.mEngine.getEngineLock();
engineLock.lock();

...

engineLock.unlock();


移除精灵:

1 先取消精灵与场景的绑定  detachChild

2 回收精灵dispose()

3 将对象置为空 = null


---------------------------------------------------------------------

扩展阅读:

场景 (Scenes)
AndEngine提供了一个场景类来让我们可以进行游戏场景的初始化。

Scenes拥有如下属性:

Scene mParentScene : 每个场景能够拥有可选的父场景

Scene mChildScene :每个场景能够拥有可选的子场景

SmartList<ITouchArea> mTouchAreas: (触碰区域):场景能够知道接收了用户触摸的区域

IOnSceneTouchListener mOnSceneTouchListener: 场景被触摸的监听器

IOnAreaTouchListener mOnAreaTouchListener: 区域被触摸的监听器

RunnableHandler mRunnableHandler: 场景拥有的RunnableHandler.

IBackground mBackground : 每个场景都有背景,它是黑色实心的。

boolean mOnAreaTouchTraversalBackToFront: 是否需要响应触摸事件。

Layers of graphics can be attached to a Scene as children of the Scene.


【电力负荷预测】项目介绍 MATLAB实现基于BO-Transformer-LSTM贝叶斯优化算法(BO)优化Transformer-LSTM组合模型进行居民用户多步电力负荷预测(含模型描述及部分示例 内容概要:本文介绍了一个基于BO-Transformer-LSTM的组合模型,用于实现居民用户多步电力负荷预测的完整项目实例。该模型融合Transformer的全局注意力机制与LSTM的局部时序记忆能力,构建能够捕捉长时依赖与周期性特征的深度学习架构,并引入贝叶斯优化(BO)自动搜索最优超参数组合,提升预测精度与训练效率。项目涵盖从原始数据清洗、特征工程、滑动窗口样本构建、模型设计到超参数优化、反归一化及多步误差评估的全流程,强调时间顺序划分以防止信息泄露,并通过周期编码、外生变量融合等方式增强数据表达能力。文中提供了详细的MATLAB代码示例,包括数据预处理、网络搭建、贝叶斯优化配置和预测结果评估等关键步骤。 适合人群:具备一定机器学习和时间序列分析基础,熟悉MATLAB编程环境,从事电力系统预测、智能电网、负荷管理等相关领域的研究人员、工程师及研究生。 使用场景及目标:①应用于居民级或多用户聚合负荷的短期至中期多步预测(如未来24小时);②服务于配电系统运行调度、需求响应基线设定、家庭能源管理系统优化、分布式能源协调控制等实际工程场景;③为科研提供可复现的深度学习+贝叶斯优化的技术路线参考。 阅读建议:此资源以实际项目为导向,建议读者结合提供的代码逐步实现并调试模型,重点关注数据质量控制、时间特征编码、组合网络结构设计与贝叶斯优化稳定性之间的协同关系,在实践中深入理解多步预测中的误差累积机制与超参数敏感性问题。 立即下载

相关推荐

国央企创新负责人如何通过平台实现科研成果的快速识别与转化?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

Android开发遇到的细节问题(一)

1 为什么按钮XML绑定的点击事件出错,或者无效? 例如: <Button xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/button_send" android:layout_width="wrap_content" android:layout_heigh

computer165的专栏 6057

PotPlayer自用皮肤

自用 PotPlayer 皮肤,仅微调了字体大小与颜色,是按个人习惯调整,未做适配性调整。

Smail语法基本知识(一)

Smali 背景:  Smali,是指安卓系统里的 Java 虚拟机(Dalvik)所使用的一种.dex 格式文件的汇编器。  Baksmali 则是反汇编器。  其语法是一种宽松式的 Jasmin/dedexer语法,而且它实现了.dex 格式所有功能(注解,调试信息,线路信息等)。  Smali,Baksmali 分别是冰岛语中编译器,反编译器的叫法。 Smali 语法简

computer165的专栏 3274

2-shell及常用命令-续.pdf

2-shell及常用命令-续.pdf

MAC M1用户必看:UTM虚拟机安装Win11全流程避坑指南(附驱动下载)

本文为MAC M1用户提供UTM虚拟机安装Win11的完整指南,涵盖镜像准备、驱动优化及性能调优等关键步骤。特别针对TPM 2.0验证、网络连接等常见问题提供解决方案,帮助用户高效运行Windows 11 ARM版。

weixin_29204205的博客 338

微信SDK分享出现的各种问题

很多开发者在开发微信的时候 点击分享无反应 可能的问题: (1)没有使用对应的开发APP_ID 在开发的DEMO中,你需要使用微信的keystore来进行签名,这个签名,项目名,和APP_ID实际已经在微信开发平台注册了,不过微信提供给开发者使用。 所以,如果你要开发相应的程序,你需要在开放平台上进行注册。 (2)Demo 安卓4.2以上存在问题 仔细观察demo, 有的地方传入的图

computer165的专栏 1688

2025数学建模国赛A题1-4问详解(论文+完整代码)

本文介绍了数学建模国赛A题的解题思路,重点分析了三维遮蔽模型的建立和运动学代码实现。相比第一题,第二题增加了未知参数求解,需要采用遗传算法等非线性优化方法。文章强调该模型由专业团队原创开发,代码可运行,并提醒参赛者警惕市场上的保奖班现象。整体内容聚焦于竞赛解题技巧和原创性保证。

Eloveeeee的博客 2798

AndEngine Example(9):EaseFunctionExample

目标: 1. 了解什么是EaseFunction 2. 了解几种类型的EaseFunction ----------------------------------------------------------------- package org.andengine.examples; import org.andengine.engine.camera.Came

computer165的专栏 1463

ArcGIS实战:地形湿度指数(TWI)计算全流程解析

本文详细解析了ArcGIS中地形湿度指数(TWI)的计算全流程,从DEM数据获取、填洼处理到水流方向与汇流累积量计算,最终实现TWI的精准计算。通过实战步骤指导,帮助读者掌握水文建模和土壤湿度预测的关键技术,适用于农业规划、生态研究等领域。

weixin_29231725的博客 869

【附源码】Node.js毕业设计高校院级校友信息管理系统(Express)

首先,该系统可以提高高校对校友信息管理的效率和准确性。通过系统提供的查询功能,高校可以方便地获取校友的最新联系方式和动态,及时了解校友的发展情况,为校友提供更好的服务和支持。总之,开发高校院级校友信息管理系统将为高校提供一个高效、便捷的工具,有助于提升校友管理水平和服务质量,促进高校与校友之间的良好互动关系。通过使用前端技术HTML、CSS、JavaScript和Vue框架,结合后端技术Node.js和Express框架,以及MySQL数据库,可以实现对校友信息的快速录入、查询、修改和删除等操作。

佳愉毕设源码 893

AndEngine Example(7):EntityModifierExample

目标: 1. 了解修饰符Modifier 2. 学习透明度变化(AlphaModifier) 3. 学习缩放变化(ScaleModifier) 4. 学习延时(DelayModifier) 5. 学习旋转(RotationModifier) 6. 学习顺序使用修饰符(SequenceEntityModifier) 7. 学习并行使用修饰符(ParallelEntityModifier

computer165的专栏 1348

WordPress主题开发实战:从零开始手把手教你创建自定义主题(含常用函数大全)

本文是一份WordPress主题开发实战指南,从零开始手把手教你创建自定义主题。内容涵盖主题核心文件结构、模板层级与循环机制、函数与钩子的运用,并附有详细的常用函数大全,帮助开发者彻底掌握主题开发的核心技能,实现从使用者到创造者的转变。

weixin_27943395的博客 256

Smail语法基本知识(二)

这篇文章介绍了一些常见的指令语法, 想要知道更全的指令语法,请见:http://pallergabor.uw.hu/androidblog/dalvik_opcodes.html 移动 move vx,vy                      将vy的内容移动到vx中。 两个寄存器必须是最前面256个寄存器中之一。 move-object vx,vy          移动对

computer165的专栏 1327

网络工程师的Python入门实战:手把手教你写交换机配置备份脚本

本文详细介绍了如何利用Python为网络工程师开发一个高效的交换机配置备份脚本,涵盖环境搭建、设备连接方案、智能设备发现、多因素认证、异常处理、配置差异对比等关键步骤。通过实战案例展示如何将备份时间从4小时缩短至15分钟,显著提升运维效率,特别适用于华为交换机等设备的配置导出与备份需求。

weixin_30291791的博客 304

最详细的 SAP ABAP Web Service 创建和消费步骤讲解

本文原版发表于 SAP 官方社区,当时用的英文版写作,标题为:Step by step to create, consume and trace web service in ABAP system https://blogs.sap.com/2014/05/20/step-by-step-to-create-consume-and-trace-web-service-in-abap-system/ 总共阅读量超过 18 万。 How to create web service provider in A

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 3151

Smail语法基本知识(三)

------------------------------------------------分割线------------------------------------------------------------------------------------- 虽然关于指令集现在还没有讲,但是可以先看一个例子,加深一下理解。 HelloWorldAppActivity.smail

computer165的专栏 1312

华为OD机试真题 新系统 2026-08-16 Python&JS【智能家居模式调度优化】

智能家居系统中有多个自动化联动模式,每个模式 modes[i]=[start_time,end_time,power],表示它在左闭右开区间 [start_time,end_time) 内持续消耗固定功率 power。

MISAYAONE的博客 85

AndEngine Example(5):SpriteBatchExample

目标: 1. 了解SpriteBatch 2. 理解DynamicSpriteBatch 3. 两者(SpriteBatch , DynamicSpriteBatch)的区别 4. 绘制多个图形 package org.andengine.examples; import org.andengine.engine.camera.Camera; import org.an

computer165的专栏 1231

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

AndEngine Example(2):RectangleExample

目标: 1.场景截屏对象 ScreenCapture , 2.场景截屏回调接口IScreenCaptureCallback  3.场景截屏回调方法 onScreenCaptured / onScreenCaptureFailed 4.场景点击事件  package org.andengine.examples; import org.andengine.engine.camer

computer165的专栏 1195

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

AndEngine Example(8):PathModifierExample

目标: 1. 了解场景背景图片的设置RepeatingSpriteBackground 2.  掌握如何使用PathModifier控制精灵的移动 3. 了解如何使用路径Path得到PathModifier 4. Sprite的animate函数,用于选择当前帧的动画 ------------------------------------------------- p

computer165的专栏 1146

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

AndEngine Example(1):LineExample

目标: 1.使得程序可以正常运行 2.搭建最简单的场景 3.理解Scene,Camera等几个基本的概念 4.理解整个的基本流程 package org.andengine.ui.activity; import org.andengine.entity.scene.Scene; import org.andengine.ui.IGameInterface;

computer165的专栏 1145

Android:Animator使用指南

(一)快速开始 Animator是属性动画,通过修改对象的属性来达到实现动画的效果。 一段替换Animation全功能的Animator代码: ObjectAnimator animation = ObjectAnimator.ofFloat(view, "alpha", 0f, 1f); // ObjectAnimator animation = Ob

computer165的专栏 1105

安卓:gravity 和layout_gravity 的关系

一、两者区别 android:gravity 与 android:layout_gravity 的区别在于: gravity用于设置内部内容位置,而layout_gravity 用于设置当前组件与父组件的位置。 这个想必在读者在很多地方都看到了。 二、android:gravity研究 一开始,我以为这个是属于布局管理的XML属性,于是查看并搜索了FrameLayout以及它继承

computer165的专栏 1088

AndEngine Example(6):MovingBallExample

目标: 1. 学习如何制作简单的动画 2. 新的纹理区域 TiledTextureRegion 3. 使用AnimatedSprite 4. 了解物理引擎 PhysicsHandler package org.andengine.examples; import org.andengine.engine.camera.Camera; import org.andengi

computer165的专栏 1043
上一篇: AndEngine Example(3):SpriteExample
下一篇: AndEngine Example(5):SpriteBatchExample
computer165
博客等级 码龄16年 7粉丝 34原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值