box2d 服务器性能,Box2d三种施加力的方法

2023-11-04

package{

import Box2D.Collision.Shapes.b2PolygonShape;

import Box2D.Common.Math.b2Vec2;

import Box2D.Dynamics.Joints.b2RevoluteJoint;

import Box2D.Dynamics.b2Body;

import Box2D.Dynamics.b2BodyDef;

import Box2D.Dynamics.b2DebugDraw;

import Box2D.Dynamics.b2FixtureDef;

import Box2D.Dynamics.b2World;

import flash.display.Sprite;

import flash.events.Event;

import flash.events.MouseEvent;

[SWF(width="800",height="600",frameRate="32",backgroundColor="0x000000")]

public class ApplicableForce extends Sprite{

private var world:b2World;

private var timeStep:Number;

private var iterations:uint;

private var pixelsPerMeter:Number = 30;

private var frontJoint:b2RevoluteJoint;

private var rearJoint:b2RevoluteJoint;

public function ApplicableForce(){

createWorld();

makeDebugDraw();

createBox(400,585,400,15,false,"ground");

createBox(100,40,10,10,true,"left");

createBox(400,40,10,10,true,"middle");

createBox(700,40,10,10,true,"right");

stage.addEventListener(MouseEvent.MOUSE_DOWN,onMouseDown);

addEventListener(Event.ENTER_FRAME,onEnterframe);

}

private function createWorld():void{

var gravity:b2Vec2 = new b2Vec2(0.0,9.8);

var doSleep:Boolean = true;

world = new b2World(gravity,doSleep);

world.SetWarmStarting(true);

timeStep = 1.0/30.0;

iterations = 10;

}

private function makeDebugDraw():void{

var debugDraw:b2DebugDraw = new b2DebugDraw();

var debugSprite:Sprite = new Sprite();

addChild(debugSprite);

debugDraw.SetSprite(debugSprite);

debugDraw.SetDrawScale(30.0);

debugDraw.SetFillAlpha(0.5);

debugDraw.SetLineThickness(1.0);

debugDraw.SetFlags(b2DebugDraw.e_shapeBit);

world.SetDebugDraw(debugDraw);

}

private function createBox(x:Number,y:Number,hx:Number,hy:Number,isDynamic:Boolean,data:String):void{

var bodyDef:b2BodyDef = new b2BodyDef();

bodyDef.position.Set(x/pixelsPerMeter,y/pixelsPerMeter);

if(isDynamic){

bodyDef.type = b2Body.b2_dynamicBody;

}

var box:b2PolygonShape = new b2PolygonShape();

box.SetAsBox(hx/pixelsPerMeter,hy/pixelsPerMeter);

var fixtureDef:b2FixtureDef = new b2FixtureDef();

fixtureDef.shape = box;

var body:b2Body = world.CreateBody(bodyDef);

body.SetUserData(data);

body.CreateFixture(fixtureDef);

}

private function onMouseDown(e:MouseEvent):void{

var force:b2Vec2;

for(var body:b2Body = world.GetBodyList();body;body = body.GetNext()){

switch(body.GetUserData()){

case "left":

force = new b2Vec2(0,-450);

body.ApplyForce(force,body.GetWorldCenter());

break;

case "middle":

force = new b2Vec2(0,-15);

body.ApplyImpulse(force,body.GetWorldCenter());

break;

case "right":

force = new b2Vec2(0,-15);

body.SetAwake(true);

body.SetLinearVelocity(force);

break;

}

}

}

private function onEnterframe(e:Event):void{

world.Step(timeStep,iterations,iterations);

world.ClearForces();

world.DrawDebugData();

}

}

}

ce1d00c6afb499fd198b4d9049ded088.png

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

box2d 服务器性能,Box2d三种施加力的方法 的相关文章

  • [JAVA数据结构]HashMap

    目录 1 HashMap 1 1Map的常用方法 1 2HashMap的使用案例 1 HashMap 基于哈希表的实现的Map接口 Map底层结构 HashMap 底层结构 哈希桶 插入 删除 查找时间复杂度 O 1 是否有序 无序 线程安
  • 了解 z-index 层叠等级属性的使用

    当对多个元素同时设置定位时 定位元素之间有可能会发生重叠 接下来我会用代码来进行演示和讲解层叠的效果和使用 代码如下
  • provider模式学习——simpledemo

    1 首先建立一个类库项目 Provider Demo 添加如下类 并要添加引用System Configuration 1 1 创建ParentProvider类继承自provider的基类 namespace provider Provi
  • 如何做好项目的需求与业务调研?

    1 调研工作如何组织 很多人认为调研工作极难 水平最高的人才能做好一次调研 软件工程中也强调需求获取是最难的事情 有的人要么认为不过如此 甚至是一个普通技术支持都可以做的工作 现在有很多企业上管理软件之前都希望软件公司派人来了解情况 提出针
  • 搭建游戏环境

    搭建游戏环境 安装docker curl fsSL https get docker com bash s docker mirror Aliyun 安装docker compose curl L https github com dock
  • 标准模板库(STL)

    STL 标准模板库 Standard Template Library STL 是一个基于模板的容器类库 可用STL创建一个类 为任意数据类型定义矢量 链表 队列和栈等操作 STL中的泛型算法 generic algorithm 和函数对象
  • Python——— 面向对象

    一 初识面向对象 Python完全采用了面向对象的思想 是真正面向对象的编程语言 完全支持面向对象的基本功能 例如 继承 多态 封装等 Python 支持面向过程 面向对象 函数式编程等多种编程范 式 Python 中 一切皆对象 我们在前
  • 使用pickle模块序列化数据,优化代码

    使用pickle模块序列化数据 优化代码 pickle是Python标准库中的一个二进制序列化和反序列化库 可以以二进制的形式将数据持久化保存到磁盘文件中 可以将数据和代码分离 提高代码可读性和优雅度 一 pickle模块介绍 pickle
  • lstm神经网络_机器翻译与高级循环神经网络LSTM,GRU

    No 1 机器翻译概述 机器翻译就是将一种语言翻译为另一种语言 所有机器翻译系统本质上都是基于统计的 我们将总尝试使用非常大的语料库 一般称为平行语料库 在语料库中 有许多句子或段落以不同语言表述 No 2 深度学习出现之前的机器翻译模型
  • linux内核之双向链表实现原理

    1 内核中双向链表结构 Linux内核中广泛使用了一种称为循环双链 Circular Doubly Linked 链表的数据结构 即每个节点都有一个向前和向后的链接 而且首尾节点也相互连接 使用这样的链表 你可以很方便地访问任何一个元素的上
  • Android调用手机系统自带录音功能实现语音录制与播放

    首先调用手机系统自带的录音功能需要相关权限以及读写SD卡的权限
  • linux下C程序查看内存剩余大小

    嵌入式linux中很多内存资源都比较小 所以很多程序中在malloc时就需要提前知道内存剩余的大小 下面是一种调用 sysinfo接口来实现 示例代码如下 include
  • java--基础--16.8--IO流--打印流

    java 基础 16 8 IO流 打印流 1 介绍 1 1 分类 字节流打印流 PrintStream 字符打印流 PrintWriter 1 2 特点 只有写数据的 没有读取数据 只能操作目的地 不能操作数据源 可以操作任意类型的数据 如
  • 东北大学acm训练第四周(搜索)

    include
  • 在mac上配置vue开发环境

    1 在mac上安装brew brew 是 Mac 下的一个包管理工具 没有安装brew 检测用 brew v 则执行下面的命令安装 usr bin ruby e curl fsSL https raw githubusercontent c
  • sqli-18

    1 1 updatexml 1 concat 0x5c select group concat table name from information schema tables where table schema security
  • springMvc自定义校验注解

    spring 自定义注解 翻看公司代码 看到了自定义的注解 查了查 再次记录一下 还是太菜 下面是我的实现 1 自定义注解 package com test import javax validation Constraint import
  • 多核编程 与 单核多线程编程的区别

    一 首先声明 并行 两件 多件 事情在同一时刻一起发生 并发 两件 多件 事情在同一时刻只能有一个发生 由CPU快速切换 从而给人的感觉是同时进行 使用多线程来实现并行计算来缩短计算时间时 只要在多核CPU下才行 单核CPU下启用多线程最终
  • mac安装php8和apache

    如果自己在mac安装php 会涉及证书问题 而用brew方法安装 即可自动关联 省心省力 删除mac自带的apache sudo launchctl unload w System Library LaunchDaemons org apa

随机推荐

  • spring 或者spring boot 调整bean 的加载顺序:

    spring 或者spring boot 调整bean 的加载顺序 接下来讲解三种调整类加载顺序的方式 1 使用 Order调整配置类加载顺序 Configuration Order 1 public class ConfigA Bean
  • web安全之XSS攻击原理及防范

    一 什么是XSS攻击 二 反射型XSS 三 存储型XSS 四 DOM based型XSS 五 SQL注入 六 XSS如何防范 1 cookie安全策略 2 X XSS Protection设置 3 XSS防御HTML编码 4 XSS 防御H
  • JSON简单例子-1

    package com xuankai json import org json JSONArray import org json JSONObject public class Test public static void main
  • Java 中Map五种取值方式

    map的主要作用是什么 可以通过创建一个map的实现类 来存放 数据 值 和值的描述 也可以通过描述去取得数据 将键映射到值的对象 一个映射不能包含重复的键 每个键最多只能映射到一个值 此接口取代 Dictionary 类 后者完全是一个抽
  • python的@property有什么用?

    从本质上讲 property是一个语法糖 语法糖是python里老生常谈的事务了 比方说 最基础的len iterable 函数 其实是通过调用iterable len 方法实现的 只是pythonic的理念让我们习惯并且喜欢上使用诸如fu
  • EMWIN显示中文

    上面是我创建的群聊 欢迎新朋友的加入 安装软件 在桌面新建TXT 文件另存为 打开软件 选择字体和大小 取消所有已选内容 导入刚刚的文件 都在edit下面 截图不了 另存为C文件 导入工程 后面的问号不是乱码 是字符 后面整理一下文件 就是
  • Klocwork — 符合功能安全要求的自动化静态测试工具

    Klocwork 符合功能安全要求的自动化静态测试工具 Klocwork工具应用静态分析技术 可实现对C C Java等代码的全面静态分析 检查问题种类既包含软件质量和安全缺陷相关 也可实现多种语言编码规则规范的检查 通过使用Klocwor
  • QCC300x笔记(6) -- QCC3007的OTA流程梳理

    哈喽大家好 这是该系列博文的第六篇 篇 lt lt 系列博文索引 快速通道 gt gt 写在前面 QCC300x支持OTA功能 官方提供了详细的文档说明 按照文档即可升级成功 下面是对流程的简单梳理 可参考 文档和APP下载 1 生产APP
  • C语言解析FLM(ELF)格式文件

    C语言解析FLM ELF 格式文件 代码下载 https gitee com jhembedded flmparse 1 前言 写这篇博客的目的是因为最近在做一个STM32的离线编程器 离线下载需要用到FLM文件的下载算法 所以实现了一下提
  • [人工智能-深度学习-28]:卷积神经网络CNN - 网络架构与描述方法

    作者主页 文火冰糖的硅基工坊 文火冰糖 王文兵 的博客 文火冰糖的硅基工坊 CSDN博客 本文网址 https blog csdn net HiWangWenBing article details 120806599 目录 第1章 卷积神
  • Spring Boot Event Bus用法

    Spring Boot Event Bus是Spring框架中事件驱动编程的一部分 它为应用程序中的不同组件提供了一种解耦的方式 以便它们可以相互通信和交互 以下是Spring Boot Event Bus的用法 导入依赖 首先 您需要在项
  • 如何编写脚本对项目代码进行分析(测试篇)

    本篇将从一个测试的角度 对于在开发过程中 如何对代码进行完善的测试 包括功能以及性能的测试 内容属于杂谈 可能不够严谨 但希望能帮到看到这篇文章的各位 前言 我想没有人会质疑测试的重要性 我们自己编写的代码 可能需要经过很多次的测试才能上线
  • Java 数据库介绍

    数据库基础 数据库概念 数据库 Database 是按照数据结构来组织 存储和管理数据的仓库 它是存储数据集合的容器 可以看做一个文件夹 里面存放着一系列有关联的数据表 数据表 Table 是一种结构化的数据 以列和行为单位来存储的一种结构
  • 基于TCP协议的select多路复用IO服务器编程

    一 初识TCP协议 TCP协议是面向链接 可靠的 基于字节流传输层协议 使用严格的应答机制来保证可靠性 1 建立连接时进行三次握手 2 断开连接时进行四次挥手 3 每次发送数据后 都必须要应答 4 会给每个数据包编号 应答时区分编号 TCP
  • Visual Studio 跨平台开发实战(5) - Xamarin Android 多页面应用程式开发

    前言 大部份的Android 都具有实体或虚拟的Back鍵 因此在处理多页面应用程式时 与先前所介绍的iOS Navigation controller 比较起来会简单许多 1 开启Visual Studio 并新增Android Appl
  • Python爬虫到底要学到什么程度才能接单赚钱呢

    Python爬虫可以做副业接单 一些个人或者企业想要爬一些资料数据之类的 可以给他们爬 费用几百上千不等 这又可以增加个人的收入来源 Python爬虫学到什么程度可以接单 你得要熟练使用Python爬虫 那么一些Python基础知识肯定需要
  • OpenGL计算着色器实现光线追踪——以球体跟踪为例

    OpenGL计算着色器实现光线追踪 以球体跟踪为例 光线追踪是渲染领域中的一种技术 通过在场景中发射光线并迭代计算来确定每个像素的颜色值 这种技术可以用于生成真实感和高度逼真的渲染图像 而在OpenGL中 我们可以利用计算着色器实现光线追踪
  • Qt应用开发(基础篇)——工具按钮类 QToolButton

    一 前言 QToolButton类继承于QAbstractButton 该部件为命令或选项提供了一个快速访问按钮 通常用于QToolBar中 按钮基类 QAbstractButton QToolButton是一个特殊的按钮 一般显示文本 只
  • 机器学习中的高斯分布

    文章目录 一 高斯分布的概率密度函数 二 一元高斯分布的极大似然估计 2 1 M L E
  • box2d 服务器性能,Box2d三种施加力的方法

    package import Box2D Collision Shapes b2PolygonShape import Box2D Common Math b2Vec2 import Box2D Dynamics Joints b2Revo