AndEngine Example(3):SpriteExample

MATLAB项目,模拟曲柄滑块机构的运动学和动力学.zip 1.版本:matlab2014a/2019b/2024b 2.附赠案例数据可直接运行。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。 立即下载

目标:

1.理解纹理

2.理解纹理区域

3.创建资源回调函数onCreateResources

4.了解BitmapTexture 

5.理解Sprite

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

由于本例子使用了纹理,且通过在assets下加载,所以你需要在assets创建gfx目录,然后放一张名为face_box.png的图片(注意,请保持长宽比1:1)。

如果成功,将会出现一张静止的图。

package org.andengine.examples;

import java.io.IOException;
import java.io.InputStream;

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.Scene;
import org.andengine.entity.scene.background.Background;
import org.andengine.entity.sprite.Sprite;
import org.andengine.entity.util.FPSLogger;
import org.andengine.opengl.texture.ITexture;
import org.andengine.opengl.texture.bitmap.BitmapTexture;
import org.andengine.opengl.texture.region.ITextureRegion;
import org.andengine.opengl.texture.region.TextureRegionFactory;
import org.andengine.ui.activity.SimpleBaseGameActivity;
import org.andengine.util.adt.io.in.IInputStreamOpener;
import org.andengine.util.debug.Debug;

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

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

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

	private ITexture mTexture;
	private ITextureRegion mFaceTextureRegion;

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

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

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

	@Override
	public EngineOptions onCreateEngineOptions() {
		final Camera camera = new Camera(0, 0, CAMERA_WIDTH, CAMERA_HEIGHT);

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

	@Override
	public void onCreateResources() {
		try {
			this.mTexture = new BitmapTexture(this.getTextureManager(), new IInputStreamOpener() {
				@Override
				public InputStream open() throws IOException {
					return getAssets().open("gfx/face_box.png");
				}
			});

			this.mTexture.load();
			this.mFaceTextureRegion = TextureRegionFactory.extractFromTexture(this.mTexture);
		} catch (IOException e) {
			Debug.e(e);
		}
	}

	@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;

		/* Create the face and add it to the scene. */
		final Sprite face = new Sprite(centerX, centerY, this.mFaceTextureRegion, this.getVertexBufferObjectManager());
		scene.attachChild(face);

		return scene;
	}

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

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

整个逻辑大致为:

(1)从资源文件中加载纹理

(2)使用纹理得到纹理区域

(3)使用纹理区域渲染精灵

其中:

mTexture 纹理通过两步,实现纹理加载:

mTexture = new BitmapTexture(TextureManager, IInputStreamOpener);

mTexture.load();


mFaceTextureRegion 纹理区域,通过纹理工厂和纹理来创建

mFaceTextureRegion = TextureRegionFactory.extractFromTexture(this.mTexture);


精灵:Sprite 需要 : 位置的两个参数,纹理区域,对象buffer

Sprite face = new Sprite(centerX, centerY, this.mFaceTextureRegion, this.getVertexBufferObjectManager())


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

扩展阅读:

Sprite是AndEngine中最重要的概念之一,

它用于表示可以独立绘制的东西,

它也是一个Entity。


Entity (实体)

作为一切虚拟可见的东西,实体包含了场景,包含了可见物体的通用属性。这些属性通过getter和setter访问和设置。

这些属性包含下面这些元素:

float mX, mY:实体的当前位置

float mInitialX, mInitialY: 实体的初始位置

boolean mVisible :实体当前是否可见

boolean mIgnoreUpdate : 实体是否需要更新

int mZindex: 实体处于需要显示的实体栈的位置

IEntity mParent:实体的父类(实际是个接口)

SmartList<IEntity> mChildren :实体包含的孩子们(并非继承上的子类,更像是空间上一个大的空间包含若干小的空间)

EntityModifierList mEntityModifiers: 一系列的实体修饰符(Modifiers)

UpdateHandlerList mUpdateHandlers:一组用于更新实体的Handlers

 float mRed, mGreen, mBlue :  实体颜色

 float mAlpha:透明度

 float mRotation : 旋转角度

 float mRotationCenterX, mRotationCenterY: 旋转中心

 float mScale : 缩放

 float mScaleCenterX, mScaleCenterY:缩放中心

基于MATLAB的Abel反演和Fowler–Milne诊断研究对HyperFill TWGMAW-P进行了电波形分析。.zip 1.版本:matlab2014a/2019b/2024b 2.附赠案例数据可直接运行。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。 立即下载

相关推荐

aerosonde-fc-hybrid-uav-sim-main.zip

1.版本:matlab2014a/2019b/2024b 2.附赠案例数据可直接运行。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。

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

增强型PID-自适应-前馈-神经网络控制研究(Matlab代码实现)

内容概要:本文系统研究了“增强型PID-自适应-前馈-神经网络控制”复合控制策略,结合Matlab代码与Simulink仿真模型,深入探讨了传统PID控制与智能控制算法的深度融合方法。该策略通过引入自适应机制和前馈补偿,结合BP神经网络进行非线性系统建模与参数优化,并融合扩展卡尔曼滤波(EKF)等状态估计技术,提升控制系统在复杂动态环境下的响应速度、鲁棒性和控制精度。研究涵盖双闭环控制架构设计、神经网络训练流程、EKF状态融合等关键技术环节,适用于电机控制、电力电子变换器、无人机、微电网等高阶非线性系统的建模与仿真。配套资源丰富,包含多个可复现的Simulink模型、Matlab代码及参考文献,尤其支持高水平EI期刊成果的复现与验证。; 适合人群:具备自动控制理论基础和Matlab/Simulink仿真能力,从事控制工程、电气自动化、电力电子或智能系统研发的研究生、科研人员及工作1-3年以上的工程技术人员; 使用场景及目标:①深入研究先进PID控制策略在非线性系统中的优化应用;②实现神经网络与经典控制算法的协同设计与联合仿真;③开展状态估计、参数辨识与智能控制策略的实验验证;④复现并拓展高水平学术论文中的控制方法,支撑科研创新与项目开发; 阅读建议:建议结合提供的Matlab代码与Simulink仿真模型进行实践操作,重点剖析控制结构设计逻辑、神经网络训练过程及EKF状态估计的实现细节,按照文档说明逐步调试与优化,以全面掌握复合控制系统的建模、仿真与性能评估方法。

Smail语法基本知识(一)

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

computer165的专栏 3273

【带状电容器计算用于电容式触摸传感器应用】半数值模型的电容式触摸传感器集成于金属基材涂层中研究(Matlab代码实现)

内容概要:本文针对集成于金属基材涂层中的电容式触摸传感器,提出了一种用于带状电容器电容计算的半数值模型,并基于Matlab平台实现了仿真分析。该模型结合解析方法与数值计算,采用有限差分法求解二维泊松方程,精确模拟传感器在金属背景下的电场分布,有效克服了金属基底对电容信号的屏蔽与干扰问题,显著提升了触摸检测的灵敏度与稳定性。研究系统探讨了传感器的几何结构、介电层材料特性、电极尺寸及间距等关键参数对电容响应的影响机制,建立了完整的建模流程与仿真框架,为高性能、高抗干扰能力的电容式触控器件在智能家居、工业控制面板及复杂电磁环境下的实际应用提供了理论支撑与技术路径。; 适合人群:具备电磁场与电磁波、数值计算方法基础,熟悉Matlab编程,从事传感器设计、人机交互技术开发、电子器件仿真及相关领域研究的科研人员、工程师及研究生。; 使用场景及目标:①面向金属表面集成的电容式触摸传感器进行高精度建模与性能优化;②为智能家电、工业设备等人机接口的触控模块提供抗干扰设计与仿真验证方案;③支撑相关科研课题的理论分析、算法开发与原型系统验证。; 阅读建议:学习者应结合提供的Matlab代码深入理解半数值建模的具体实现过程,重点掌握有限差分法在电场求解中的应用技巧,并可通过调整传感器结构参数与材料属性开展对比仿真,进而探究各因素对灵敏度的影响规律,全面提升对电容式传感机制的理解与工程化设计能力。

Ubuntu操作系统等保测评指南

Ubuntu操作系统等保测评指南

qq_40181198的博客 7025

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

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

computer165的专栏 1688

【Python】SUMO + Python 联合仿真平台

强化学习的核心思想是让智能体 (Agent) 通过与环境 (Environment) 的交互来学习如何做出最优决策,以最大化累积奖励 (Cumulative Reward)。在交通场景中,智能体可以是交通信号控制器、自动驾驶车辆或交通管理中心,环境则是 SUMO 模拟的交通路网,奖励则与交通效率、安全、环保等目标相关。交通系统本质上是动态的、随机的、高度复杂的系统,传统的基于规则或模型的优化方法在面对不断变化的需求和突发事件时,往往显得力不从心。强化学习的优势在于:在交通领域,强化学习已经被广泛应用于:为了

宅男很神经 1988

AndEngine Example(9):EaseFunctionExample

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

computer165的专栏 1463

(头歌作业)—6.1 葡萄酒评论分析报告(project)

请读取文件中的数据,完成以下任务:‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬。请读取文件中的数据,完成以下任务:‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬。请读取文件中的数据,完成以下任务:‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬。

2301_80677920的博客 1243

基于 YOLO + SAM 的自动图像标注实战

摘要: 本文提出一种基于YOLO检测和SAM分割的自动化数据标注流水线方案,通过YOLO定位目标并生成检测框,再以检测框为提示驱动SAM完成精细分割,最终输出YOLO格式的标注文件。该方案将人工标注升级为半自动流程,显著提升标注效率,尤其适用于多类别、大规模图像的实例级标注需求。代码模块化设计支持模型灵活替换,并集成异常处理与进度可视化功能。虽依赖YOLO检测质量且对小目标存在局限,但作为工程落地方案,可有效降低私有数据集构建成本,适用于工业检测、遥感等场景的冷启动标注。

qq_64366203的博客 1144

AndEngine Example(7):EntityModifierExample

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

computer165的专栏 1348

一文掌握SourceTree使用(超级详细)

SourceTree是一款开源的代码仓库客户端工具,界面美观,操作简单,具有代码克隆、本地创建、提交代码、撤销修改,拉取(pull)代码、上传(push)代码、合并分支等操作。对于软件开发人员是一款必备的应用软件。

GM_115的博客 3万+

Smail语法基本知识(二)

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

computer165的专栏 1327

linux和mac安装+配置circos(

一定要下载完这两个包,GD才会work,要不然会报错,且-modules显示也是fail。官网的教程说的很明白,但是很多包都已经过时了需要在网上找。一般来讲,所有包的安装都不会太困难,除了GD。1.是因为官网给的链接下出来的tgz无法解压。2.我的电脑安装后GD照样是fail的。,进入这个地址下一个.tgz。第二点的原因在于,官网的情况。,进入这个地址,按部就班。GD安装困难有以下几点。搞了一天终于配置成功。

xiufan1的博客 549

vue3:html2canvas+jspdf将页面以A4导出为PDF文件,解决内容截断+在分页处截断问题详细排查和解决教程(jsPDF + html2canvas A4分页截断、内容分页时存在截断)

html2canvas + jsPDF 解决内容截断问题,vue3 jspdf-html2canvas生成多页pdf防截断处理(包含代码),vue3解决html2canvas + jsPDF导出pdf分页内容截断问题,jsPDF + html2canvas A4分页截断 完美解决方案(含代码 + 案例),html页面导出pdf截断问题,html2canvas 与 jspdf 相结合生成 pdf 内容被截断的终极解决方案,提供html2canvas+jsPDF将HTML页面以A4纸方式导出为PDF后,内容分页

✅ 精选推荐文章 2243

Smail语法基本知识(三)

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

computer165的专栏 1312

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

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

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

AndEngine Example(2):RectangleExample

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

computer165的专栏 1195

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

AndEngine Example(8):PathModifierExample

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

computer165的专栏 1146

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(4):SpriteRemoveExample

目标: 1. 了解纹理 BitmapTextureAtlas 2. 纹理区域工场 BitmapTextureAtlasTextureRegionFactory 3. 锁 EngineLock 4. 移除精灵 package org.andengine.examples; import org.andengine.engine.Engine.EngineLock; imp

computer165的专栏 1065

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(2):RectangleExample
下一篇: AndEngine Example(4):SpriteRemoveExample
computer165
博客等级 码龄16年 7粉丝 34原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值