当前位置: 首页 > news >正文

x站源码免费分享企业网站怎么建

x站源码免费分享,企业网站怎么建,中华建设杂志网站,商务电商网站建设官网#xff1a;https://github.com/libgdx/ashley 我的libgdx学习代码#xff1a;nanshaws/LibgdxTutorial: libgdx 教程项目 本项目旨在提供完整的libgdx桌面教程#xff0c;帮助开发者快速掌握libgdx游戏开发框架的使用。成功的将gdx-ai和ashley的tests从官网剥离出来,并…官网https://github.com/libgdx/ashley 我的libgdx学习代码nanshaws/LibgdxTutorial: libgdx 教程项目 本项目旨在提供完整的libgdx桌面教程帮助开发者快速掌握libgdx游戏开发框架的使用。成功的将gdx-ai和ashley的tests从官网剥离出来,并成功运行。libgdx tutorial project This project aims to provide a complete libgdx desktop tutorial to help developers quickly master the use of libgdx game development framework. Successfully separated GDX-AI and Ashleys tests from the official website and ran them (github.com) 引入依赖 allprojects {apply plugin: eclipseversion 1.0ext {appName My GDX GamegdxVersion 1.12.1roboVMVersion 2.3.21box2DLightsVersion 1.5ashleyVersion 1.7.4aiVersion 1.8.2gdxControllersVersion 2.2.1}repositories {mavenLocal()mavenCentral()google()gradlePluginPortal()maven { url https://oss.sonatype.org/content/repositories/snapshots/ }maven { url https://oss.sonatype.org/content/repositories/releases/ }maven { url https://jitpack.io }} }dependencies {implementation com.badlogicgames.gdx:gdx:$gdxVersionimplementation com.badlogicgames.gdx:gdx-backend-lwjgl:$gdxVersionimplementation com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-desktopimplementation com.badlogicgames.ashley:ashley:$ashleyVersiontestImplementation junit:junit:4.12 } 在这个ashley框架中分为 Component EntitySystem PooledEngine EntityListener 好理解吧。以下我用代码来演示 PooledEngine engine new PooledEngine();MovementSystem movementSystem new MovementSystem();PositionSystem positionSystem new PositionSystem();engine.addSystem(movementSystem);engine.addSystem(positionSystem);Listener listener new Listener();engine.addEntityListener(listener);Entity entity engine.createEntity();entity.add(new PositionComponent(10, 0)); PooledEngine engine new PooledEngine(); 这行代码创建了一个 PooledEngine 的实例。PooledEngine 是 Engine 的一个子类它可以重用实体和组件从而减少内存分配和垃圾回收提高性能。 MovementSystem movementSystem new MovementSystem(); 创建了一个 MovementSystem 的实例这是一个自定义的系统用于处理实体的移动逻辑。 PositionSystem positionSystem new PositionSystem(); 创建了一个 PositionSystem 的实例这是另一个自定义的系统用于处理实体的位置更新。 engine.addSystem(movementSystem);engine.addSystem(positionSystem); 这两行代码将 MovementSystem 和 PositionSystem 添加到 PooledEngine 中。这样当引擎更新时这些系统也会被更新。 Listener listener new Listener(); 创建了一个 Listener 的实例这是一个实体监听器它会在实体被添加或移除时收到通知。 engine.addEntityListener(listener); 将 Listener 添加到 PooledEngine 中使其成为实体事件的监听器。 Entity entity engine.createEntity(); 创建了一个新的 Entity 实例。在Ashley中实体是组件的容器组件用于存储数据。 entity.add(new PositionComponent(10, 0)); 向刚创建的实体添加了一个 PositionComponent 实例初始化位置为 (10, 0)。PositionComponent 是一个自定义的组件用于存储实体的位置信息。 每个人物或者标签都可以称之为实体比如说一个马里奥游戏马里奥、乌龟和金币都可以被视为实体。每个实体都可以拥有一组组件这些组件定义了实体的数据和状态。例如马里奥可能有位置组件PositionComponent、移动组件MovementComponent和图形组件GraphicsComponent等。 这里的实体就是Entity entity engine.createEntity(); 实体添加组件就是entity.add(new PositionComponent(10, 0)); 而PositionSystem就是各个组件合在一起的逻辑原理 private ComponentMapperPositionComponent pm ComponentMapper.getFor(PositionComponent.class); 这行代码创建了一个 ComponentMapper 对象专门用于 PositionComponent 类型的组件。这意味着你可以通过这个映射器快速访问任何实体的 PositionComponent。 private ComponentMapperMovementComponent mm ComponentMapper.getFor(MovementComponent.class); 类似地这行代码创建了一个 ComponentMapper 对象专门用于 MovementComponent 类型的组件。这使得你可以快速访问任何实体的 MovementComponent。 在MovementSystem里面的两行代码将每个实体里面的MovementComponent和PositionComponent组件都进行移动。这样的例子在我的libgdx学习代码的 gdx-ashley-tests   里面的RenderSystemTest文件运行起来会让一百个硬币移动 Overridepublic void update (float deltaTime) {for (int i 0; i entities.size(); i) {Entity e entities.get(i);PositionComponent p pm.get(e);MovementComponent m mm.get(e);p.x m.velocityX * deltaTime;p.y m.velocityY * deltaTime;}log(entities.size() Entities updated in MovementSystem.);} 演示一个简单案例吧 MovementComponent package com.badlogic.ashley.tests.components;import com.badlogic.ashley.core.Component;public class MovementComponent implements Component {public float velocityX;public float velocityY;public MovementComponent (float velocityX, float velocityY) {this.velocityX velocityX;this.velocityY velocityY;} }PositionComponent package com.badlogic.ashley.tests.components;import com.badlogic.ashley.core.Component;public class PositionComponent implements Component {public float x, y;public PositionComponent (float x, float y) {this.x x;this.y y;} }MovementSystem public static class MovementSystem extends EntitySystem {public ImmutableArrayEntity entities;private ComponentMapperPositionComponent pm ComponentMapper.getFor(PositionComponent.class);private ComponentMapperMovementComponent mm ComponentMapper.getFor(MovementComponent.class);Overridepublic void addedToEngine (Engine engine) {entities engine.getEntitiesFor(Family.all(PositionComponent.class, MovementComponent.class).get());log(MovementSystem added to engine.);}Overridepublic void removedFromEngine (Engine engine) {log(MovementSystem removed from engine.);entities null;}Overridepublic void update (float deltaTime) {for (int i 0; i entities.size(); i) {Entity e entities.get(i);PositionComponent p pm.get(e);MovementComponent m mm.get(e);p.x m.velocityX * deltaTime;p.y m.velocityY * deltaTime;}log(entities.size() Entities updated in MovementSystem.);}} PositionSystem public static class PositionSystem extends EntitySystem {public ImmutableArrayEntity entities;Overridepublic void addedToEngine (Engine engine) {entities engine.getEntitiesFor(Family.all(PositionComponent.class).get());log(PositionSystem added to engine.);}Overridepublic void removedFromEngine (Engine engine) {log(PositionSystem removed from engine.);entities null;}} Listener public static class Listener implements EntityListener {Overridepublic void entityAdded (Entity entity) {log(Entity added entity);}Overridepublic void entityRemoved (Entity entity) {log(Entity removed entity);}}public static void log (String string) {System.out.println(string);} 主类 public static void main (String[] args) {PooledEngine engine new PooledEngine();MovementSystem movementSystem new MovementSystem();PositionSystem positionSystem new PositionSystem();engine.addSystem(movementSystem);engine.addSystem(positionSystem);Listener listener new Listener();engine.addEntityListener(listener);for (int i 0; i 10; i) {Entity entity engine.createEntity();entity.add(new PositionComponent(10, 0));if (i 5) entity.add(new MovementComponent(10, 2));engine.addEntity(entity);}log(MovementSystem has: movementSystem.entities.size() entities.);log(PositionSystem has: positionSystem.entities.size() entities.);for (int i 0; i 10; i) {engine.update(0.25f);if (i 5) engine.removeSystem(movementSystem);}engine.removeEntityListener(listener);} 具体代码可以看 nanshaws/LibgdxTutorial: libgdx 教程项目 本项目旨在提供完整的libgdx桌面教程帮助开发者快速掌握libgdx游戏开发框架的使用。成功的将gdx-ai和ashley的tests从官网剥离出来,并成功运行。libgdx tutorial project This project aims to provide a complete libgdx desktop tutorial to help developers quickly master the use of libgdx game development framework. Successfully separated GDX-AI and Ashleys tests from the official website and ran them (github.com)
http://www.zqtcl.cn/news/334918/

相关文章:

  • tp框架做响应式网站青岛网站建设首选
  • 外国自适应企业网站做网站模板用什么框架
  • win7做网站服务器隐私浏览器
  • 优秀的设计网站广州排名推广
  • 做电商设计有什么好的网站推荐软件产品开发流程图
  • 建设网站请示宣传企业网站建设的
  • 汉中定制网站建设公司网站建设建站知识
  • 做壁纸网站建站优化办事效率高
  • linux 做网站数据库怎么开发ios软件
  • 沛县网站设计html制作网页的代码
  • 南昌网站建设公司如何万维网络(临沂网站建设)
  • 张家界做网站洛阳网站建设哪家专业
  • 快餐网站模板电子版邀请函制作软件免费
  • 有什么做视频的素材网站网站名称注册保护
  • 北京 顺义 网站制作h5网站网站建设
  • 网站在百度上搜不到了wordpress导航菜单加图片
  • wordpress网站访问慢网站建设35类
  • 绍兴做网站价格字体
  • asp.net网站开发实训可以不花钱做网站吗
  • 北京网站的制作设计服务器和电脑主机的区别
  • 北京网站建设的服务公司凡科网站 怎么开支付
  • 包头公司做网站知名做网站费用
  • 安徽网站建设服务平台重庆网站建公司大全
  • 有什么网站可以做中间人的相城区建设局网站
  • 房屋装修在线设计网站百度联盟广告怎么屏蔽
  • 网站,商城,app+建设域名网址注册
  • 肥西做网站设计网页页面
  • 怎样做百度推广网站iis服务器的默认网站
  • 东莞建设工程交易中心门户网站湖南设计网站机构
  • 做网站在网站建设客户