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

建设信息网的网站或平台登陆班级网站html代码

建设信息网的网站或平台登陆,班级网站html代码,购买淘宝店铺,足彩推荐网站开发以下是一个基于 Android 和 JBox2D 的简单小游戏开发示例,实现一个小球在屏幕上弹跳的效果: 1. 添加 JBox2D 依赖 在项目的 build.gradle 文件中添加 JBox2D 的依赖: dependencies {implementation org.jbox2d:jbox2d-library:2.3.1 } 2.…

以下是一个基于 Android 和 JBox2D 的简单小游戏开发示例,实现一个小球在屏幕上弹跳的效果:

1. 添加 JBox2D 依赖

在项目的 build.gradle 文件中添加 JBox2D 的依赖:

dependencies {implementation 'org.jbox2d:jbox2d-library:2.3.1'
}

2. 创建物理世界和刚体

创建一个类 JBoxImpl,用于封装 JBox2D 的逻辑:

import org.jbox2d.collision.shapes.CircleShape;
import org.jbox2d.collision.shapes.EdgeShape;
import org.jbox2d.common.Vec2;
import org.jbox2d.dynamics.*;public class JBoxImpl {private World world;private float widthWorld = 10f; // 世界宽度private float heightWorld = 10f; // 世界高度private float ratioForBox2dToScreen; // 屏幕与世界的比例public JBoxImpl() {world = new World(new Vec2(0f, -10f)); // 重力向下}public void onSizeChanged(int width, int height) {ratioForBox2dToScreen = width / widthWorld;initEdges(width, height);}private void initEdges(int width, int height) {// 创建边界float widthScreen = width;float heightScreen = height;float widthWorld = widthScreen / ratioForBox2dToScreen;float heightWorld = heightScreen / ratioForBox2dToScreen;BodyDef bodyDef = new BodyDef();bodyDef.type = BodyType.STATIC;EdgeShape edgeShape = new EdgeShape();FixtureDef fixtureDef = new FixtureDef();fixtureDef.shape = edgeShape;fixtureDef.density = 1f;fixtureDef.restitution = 1f; // 完全弹性碰撞// 创建四个边界Body groundBody = world.createBody(bodyDef);edgeShape.set(new Vec2(0, 0), new Vec2(widthWorld, 0));groundBody.createFixture(fixtureDef);edgeShape.set(new Vec2(widthWorld, 0), new Vec2(widthWorld, heightWorld));groundBody.createFixture(fixtureDef);edgeShape.set(new Vec2(widthWorld, heightWorld), new Vec2(0, heightWorld));groundBody.createFixture(fixtureDef);edgeShape.set(new Vec2(0, heightWorld), new Vec2(0, 0));groundBody.createFixture(fixtureDef);}public Body createBall(float x, float y, float radius) {BodyDef bodyDef = new BodyDef();bodyDef.type = BodyType.DYNAMIC;bodyDef.position.set(x / ratioForBox2dToScreen, y / ratioForBox2dToScreen);CircleShape circleShape = new CircleShape();circleShape.m_radius = radius / ratioForBox2dToScreen;FixtureDef fixtureDef = new FixtureDef();fixtureDef.shape = circleShape;fixtureDef.density = 1f;fixtureDef.restitution = 1f; // 完全弹性碰撞Body ballBody = world.createBody(bodyDef);ballBody.createFixture(fixtureDef);return ballBody;}public void step() {world.step(1f / 60f, 8, 3); // 更新物理世界}public World getWorld() {return world;}public float getRatioForBox2dToScreen() {return ratioForBox2dToScreen;}
}

3. 创建自定义 View 进行绘制

创建一个自定义 View,用于绘制小球:

import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.util.AttributeSet;
import android.view.View;public class JBoxView extends View {private JBoxImpl jBoxImpl;private Paint paint;public JBoxView(Context context, AttributeSet attrs) {super(context, attrs);jBoxImpl = new JBoxImpl();paint = new Paint();paint.setColor(0xFFFF0000); // 红色paint.setStyle(Paint.Style.FILL);}@Overrideprotected void onSizeChanged(int w, int h, int oldw, int oldh) {super.onSizeChanged(w, h, oldw, oldh);jBoxImpl.onSizeChanged(w, h);jBoxImpl.createBall(w / 2, h / 2, 50); // 创建一个小球}@Overrideprotected void onDraw(Canvas canvas) {super.onDraw(canvas);jBoxImpl.step(); // 更新物理世界for (Body body = jBoxImpl.getWorld().getBodyList(); body != null; body = body.getNext()) {if (body.getType() == BodyType.DYNAMIC) {float x = body.getPosition().x * jBoxImpl.getRatioForBox2dToScreen();float y = body.getPosition().y * jBoxImpl.getRatioForBox2dToScreen();float radius = ((CircleShape) body.getFixtureList().get(0).getShape()).m_radius * jBoxImpl.getRatioForBox2dToScreen();canvas.drawCircle(x, y, radius, paint);}}invalidate(); // 重绘}
}

4. 在布局中使用自定义 View

在布局文件中添加自定义 JBoxView

<com.example.jbox2dgame.JBoxViewandroid:layout_width="match_parent"android:layout_height="match_parent" />

5. 运行效果

运行程序后,你将看到一个小球在屏幕上弹跳。

http://www.dtcms.com/wzjs/539031.html

相关文章:

  • 企业网站建设计划空间设计方案
  • 网站建设外包公司方案只做彩票网站犯法吗
  • 网站开发工程师求职信室内设计培训网站
  • 聊城网站优化技术顺企网江西网站建设
  • 校园网站建设特色定陶区城乡和住房建设局网站
  • 怎么把网站上传到空间江西省建设监督网站
  • j昆明网站制作公司wordpress模板
  • 丰都网站建设案例企业门户网站建设方案后台管理
  • 做网站的可以黑客户的网站吗绍兴网站建设做网站
  • 网站开发设计大赛六安杂谈
  • 免费网站认证制作网站的网址
  • 快站官方客户端下载企业文化心得体会总结
  • 十大网站管理系统怎么用本机做服务器发布网站
  • 朝阳淘宝网站建设网络服务器销售商
  • 济南网站制作定制公司长春广告公司网站建设
  • 长沙哪个网站建设最好wordpress 热门文章调用
  • 网站字体怎么修改央企门户网站哪家做的最好
  • 建材网站建设方案杭州建网站企业
  • 制定 网站改版优化方案西安百度关键词排名公司
  • 平顶山市住房和城乡建设局网站温州市住房和城乡建设网站
  • 商业网站的基本构成百度快照比网站上线时间早
  • 好大夫在线个人网站王建设富阳网站公司
  • 网站的管理跟新维护有哪些免费生成网站软件下载
  • 建设报名系统网站淘宝有WordPress网站搭建吗
  • wordpress单页网站在本页跳转什么网站可以接单做设计
  • 勾线外包网站公司网站开发费账务处理
  • 网站开发百度百科主页不是wordpress
  • 城乡建设部网站安全员证书查询软件开发者怎么赚钱
  • 高端全屋定制十大名牌排行榜seo人员工作内容
  • 网上商城网站开发需求说明书网站空间哪家做的好