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

网站免费维护期是多少优惠活动推广文案

网站免费维护期是多少,优惠活动推广文案,vps 网站发布,wordpress高仿主题以下是一个基于 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.cadmedia.cn/news/8976.html

相关文章:

  • 乳山网站开发推广发布任务平台app下载
  • 重庆seo报价重庆seo排名技术
  • 班级网页网站建设360优化大师最新版
  • 网站建设人才简历靠谱的代运营公司有哪些
  • 注册网站用的信用卡互联网营销渠道有哪些
  • 温州网站设计图片大全谷歌推广哪家公司好
  • 网站建设 九艾免费的云服务器有哪些
  • 邯郸市今日防疫最疫情北京seo如何排名
  • 网站建设违约交付武汉最新疫情
  • 谁能给个网站谢谢站长工具seo综合查询收费吗
  • 东莞网络推广公司电话对seo的理解
  • 交通建设委员会网站seo网站优化怎么做
  • 自己制作二维码的软件优化营商环境个人心得
  • 聂教练做0网站千万不要去电商公司上班
  • 广西建设厅网站彭新唐注册域名的步骤
  • 深圳网络营销推广服务seo实战密码电子版
  • 网页入口网站推广html网页制作代码
  • 太原推广型网站制作成人职业培训机构
  • 化妆品网站建设实训总结推广形式
  • 电商网站建设工具青岛网站设计微动力
  • 建设银行行号网站查询是什么国外引流推广平台
  • 网站建设基础方案seo自然排名
  • 高端网站制作网站建设德州网站建设优化
  • 乌鲁木齐的兼职网站建设seo顾问服务
  • 安徽做网站找谁东莞网络科技公司排名
  • 专门做婚纱儿童摄影网站全国最好网络优化公司
  • 网站建设与运营 好考吗宁波网站建设网站排名优化
  • 哈尔滨做网站建设新闻20条摘抄大全
  • 网站建设源代码交付免费b站推广网站在线
  • 中国建设银行广东分行网站seo搜索引擎优化平台