- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我希望以与 this video 中相同的方式移动 Sprite .我正在使用 AndEngine。我如何使用 AndEngine Box2D 物理扩展来移动忍者( Sprite ),完成移动和跳跃。
这是我的 MainActivity1.class:
public class MainActivity1 extends BaseGameActivity {
Scene scene;
private TiledTextureRegion mPlayerTextureRegion;
private BoundCamera mBoundChaseCamera;
private static final int CAMERA_WIDTH = 1024;
private static final int CAMERA_HEIGHT = 600;
private BitmapTextureAtlas mBitmapTextureAtlas;
private BitmapTextureAtlas mBitmapTextureAtlasp;
private BitmapTextureAtlas mBitmapTextureAtlashm;
private TextureRegion mhomeTextureRegion;
private BitmapTextureAtlas mBitmapTextureAtlas1;
AnimatedSprite player;
private Body playerBody;
private PhysicsWorld mPhysicsWorld;
private BitmapTextureAtlas sheetBitmapTextureAtlas1;
private BitmapTextureAtlas sheetBitmapTextureAtlasplaybtn1;
private TiledTextureRegion mTargetTextureRegionplaybtn1;
public void onLoadComplete() {
// TODO Auto-generated method stub
}
public Engine onLoadEngine() {
// TODO Auto-generated method stub
final Display display = getWindowManager().getDefaultDisplay();
int cameraWidth = display.getWidth();
int cameraHeight = display.getHeight();
// Toast.makeText(this, "The tile the player is walking on will be highlighted.", Toast.LENGTH_LONG).show();
this.mBoundChaseCamera = new BoundCamera(0, 0, CAMERA_WIDTH, CAMERA_HEIGHT);
return new Engine(new EngineOptions(true, ScreenOrientation.LANDSCAPE, new RatioResolutionPolicy(cameraWidth, cameraHeight), this.mBoundChaseCamera));
}
public void onLoadResources() {
// TODO Auto-generated method stub
mBitmapTextureAtlas = new BitmapTextureAtlas(512, 512,
TextureOptions.BILINEAR_PREMULTIPLYALPHA);
mBitmapTextureAtlas1 = new BitmapTextureAtlas(1024, 1024,
TextureOptions.BILINEAR_PREMULTIPLYALPHA);
this.sheetBitmapTextureAtlasplaybtn1 = new BitmapTextureAtlas(512, 512);
mTargetTextureRegionplaybtn1 = BitmapTextureAtlasTextureRegionFactory
.createTiledFromAsset(sheetBitmapTextureAtlasplaybtn1, this,
"gfx/gameplay_stormstrike_full.png", 0, 212,1, 1);
this.mBitmapTextureAtlasp = new BitmapTextureAtlas(512, 512, TextureOptions.DEFAULT);
this.mPlayerTextureRegion = BitmapTextureAtlasTextureRegionFactory.createTiledFromAsset(this.mBitmapTextureAtlasp, this, "gfx/storm_strike.png", 0, 0, 1, 1); // 72x128
mTargetTextureRegion1 = BitmapTextureAtlasTextureRegionFactory
.createTiledFromAsset(sheetBitmapTextureAtlas1, this,
"gfx/kolobok_04_walk.png", 0, 212,12, 1);
this.mEngine.getTextureManager().loadTexture(this.sheetBitmapTextureAtlas);
this.mEngine.getTextureManager().loadTexture(this.sheetBitmapTextureAtlas1);
BitmapTextureAtlasTextureRegionFactory.createFromAsset(this.mBitmapTextureAtlashm, this, "gfx/loading_ipad.png", 0, 0);
mEngine.getTextureManager().loadTexture(mBitmapTextureAtlas);
mEngine.getTextureManager().loadTexture(sheetBitmapTextureAtlasplaybtn1);
mEngine.getTextureManager().loadTexture(mBitmapTextureAtlasp);
mEngine.getTextureManager().loadTexture(mBitmapTextureAtlas1);
mEngine.getTextureManager().loadTexture(mBitmapTextureAtlashm);
}
public Scene onLoadScene() {
// TODO Auto-generated method stub
this.mEngine.registerUpdateHandler(new FPSLogger());
scene = new Scene();
scene.setBackground(new ColorBackground(0, 0, 0.8784f));
this.mPhysicsWorld = new FixedStepPhysicsWorld(30, new Vector2(0, 0), false, 8, 1);
final Sprite help = new Sprite(50, 70, mProjectileTextureRegionhelp);
scene.attachChild(help);
help.setVisible(false);
player = new AnimatedSprite(100, 200, 150,150,this.mPlayerTextureRegion)
{
@Override
public boolean onAreaTouched(final TouchEvent pSceneTouchEvent, final float pTouchAreaLocalX, final float pTouchAreaLocalY) {
switch(pSceneTouchEvent.getAction()) {
case TouchEvent.ACTION_DOWN:
playerBody.setLinearVelocity(10f,-10f);
break;
case TouchEvent.ACTION_MOVE:
break;
case TouchEvent.ACTION_UP:
break;
}
return true;
}
};
scene.attachChild(player);
scene.registerTouchArea(player);
projectilesToBeAdded.add(player);
AnimatedSprite playerbtn = new AnimatedSprite(10, 200, this.mTargetTextureRegionplaybtn1)
{
@Override
public boolean onAreaTouched(final TouchEvent pSceneTouchEvent, final float pTouchAreaLocalX, final float pTouchAreaLocalY) {
switch(pSceneTouchEvent.getAction()) {
case TouchEvent.ACTION_DOWN:
playerBody.applyForce(new Vector2(200,-1500), new Vector2(playerBody.getWorldCenter()));
break;
case TouchEvent.ACTION_MOVE:
break;
}
return true;
}
};
scene.attachChild(playerbtn);
scene.registerTouchArea(playerbtn);
final FixtureDef carFixtureDef = PhysicsFactory.createFixtureDef(10.0f, 0.5f, 0.5f);
this.playerBody = PhysicsFactory.createBoxBody(this.mPhysicsWorld, this.player, BodyType.DynamicBody, carFixtureDef);
this.mPhysicsWorld.registerPhysicsConnector(new PhysicsConnector(this.player, this.playerBody, true,false));
scene.setTouchAreaBindingEnabled(true);
this.scene.registerUpdateHandler(this.mPhysicsWorld);
return scene;
}
}
最佳答案
示例视频中发生的 Action 涉及几个不同的概念。您应该通读 AndEngine 示例。特别是,看看这两个:
要开始跳跃,您需要在忍者的物理 body 上调用 applyForce()。你需要在忍者和他弹跳的表面上产生摩擦力来产生弹跳。根据下面的评论,我将提供一些额外的定义。顺便说一下,这些不是我的,它们来自 the manual .
The fixture density is used to compute the mass properties of the parent body. The density can be zero or positive. You should generally use similar densities for all your fixtures. This will improve stacking stability. The mass of a body is not adjusted when you set the density. You must call ResetMassData for this to occur.
In kinematics, velocity is the rate of change of the position of an object, equivalent to a specification of its speed and direction of motion. Speed describes only how fast an object is moving, whereas velocity gives both how fast and in what direction the object is moving.
Friction is used to make objects slide along each other realistically. Box2D supports static and dynamic friction, but uses the same parameter for both. Friction is simulated accurately in Box2D and the friction strength is proportional to the normal force (this is called Coulomb friction). The friction parameter is usually set between 0 and 1, but can be any non-negative value. A friction value of 0 turns off friction and a value of 1 makes the friction strong. When the friction force is computed between two shapes, Box2D must combine the friction parameters of the two parent fixtures. This is done with the geometric mean:
float32 friction;
friction = sqrtf(shape1->friction * shape2->friction);
So if one fixture has zero friction then the contact will have zero friction.
关于android - 如何在 AndEngine 中同时弹跳、移动和跳跃 Sprite ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14998787/
滚动时,我的移动设备底部的固定元素出现问题。看起来每次滚动时都会重新计算高度,因为移动设备上的文档高度增加了。 我认为原因是地址栏淡出并且文档视口(viewport)变大了。我进行了很多搜索并尝试了不
以下是插入到我自己的哈希表中时进行冲突检测的方法的内部。我正在使用小的测试数字并尝试使我的逻辑正确,变量哈希设置为 0,table.length 为 10。 else {
我正在做一个大元素,之前只用过几次转换,所以我没有太多经验。这次客户对效果有很多要求。 我有一个#item,里面有一个按钮和一个透明的div。将鼠标悬停在透明 div 上的 opacity 更改为 0
我是一个十足的 Java 新手。上周一开始,之前从未用任何语言进行过任何编程。因此,如果我发现简单的事情变得复杂,请耐心等待。 我收到了一个文本文件。如下图: 第一个数据是时间(午夜过后的秒数),第二
在 pygame 中计算重力的最佳方法是什么?我基本上只需要它,所以当玩家按下“向上”时,角色会跳跃。到目前为止,这是我的代码(只是一个带有移动的红色 block 的白色屏幕) import pyga
我用一个简单的渐变扩展了 JComponent 并调整了paintComponent()方法来制作我自己的BottomBar。 然后我将它添加到使用 BorderLayout 的 JFrame 的 S
我使用 Chart.js 渲染折线图。我不想重新调整 x 轴以获得更多样本点。 如果 y 轴值不连续变化,渲染跳跃的最佳方法是什么? 理想情况下,我能够为每个 x 值定义两个 y 值。因此,假设我传入
我有用于左、右、上、下移动的 Sprite 的 KeyEvents。我只是在闲逛,正在考虑另一个我希望 Sprite 跳跃的项目。它不必完全现实,因为我才刚刚开始。我所拥有的是,当按下空格键时,它将导
我运行双显示器设置。 从显示器 1 到显示器 2(或反之亦然)需要大量不必要的鼠标移动。 我的想法是利用一个额外的鼠标按钮(我有两个)并让鼠标从显示器 1 上的 XY 坐标超跳(向星际迷航道歉)到显示
我有一个 slider 可以实时更新其右侧标签上的值。当值从 1 位值变为 2 位值时,我应该怎么做才能防止它“跳跃”?我怎样才能给标签一个固定的位置,这样它就不会改变布局: var range =
我在页面上使用光滑的 slider 。一切都很好,除了一件事:当我拖动幻灯片时,有时图像或文本会弹起,这看起来非常糟糕。我该怎么做才能避免这个问题? 这是我的 code
const int jumpHeight = 10; //Non-Const variables bool running = true
我有一个 bootstrap Accordion 崩溃,它工作得很好,虽然有一件事困扰着我。当正在展开的元素很长并且做一个垂直滚动条时,它也会使整个页面向左小跳,但只要内容不大,一切都是流畅的。 有谁
我开始学习一些 SVG(我想还有 javascript),并且我很难理解为什么这不顺利。 0 移动了少量(大概是 x 轴上水平的“1”),但开始大幅跳跃。这是因为我使用的浏览器(Chrome)刷新/重
我想创建像飞翔的小鸟一样的游戏。我希望玩家在屏幕上连续跳跃。我创建了这段代码,它不像一只飞扬的小鸟跳跃 代码: float jump = 100; // Just example if(Gdx.inp
如下图所示,.hero div 的高度在滚动经过某个点时发生变化(Chrome、Android 6.0.1)。 这是相关的CSS .hero { height: 100%; width
当我将鼠标悬停在 li 上时,我有菜单有点摆动。如何停止摆动。 代码在这里 JSFiddle 最佳答案 摆脱它的最简单方法是像这样修改 css: .inner LI { border: 1px s
我试图让 dino 跳跃,但是当我在 dino 跳跃和下落之间使用 time.sleep(0.1) 时,整个游戏停止0.1秒。 我试过使用 time.sleep,仅此而已,因为我在网上找不到任何其他有
我正在使用 andengine 来实现一个可以使用它在屏幕上拖动的 Sprite 。 所以我想做的是当用户点击屏幕上的任何位置时使 Sprite 跳跃。 或者向上移动然后向下移动。 使用 andeng
我有一个包含 webview 的 viewflipper。在某些情况下(看似随机),webview 的底部会出现抖动/跳跃。这可以持续一秒到几秒之间的任何时间。这是一个视频来说明我在说什么 http:
我是一名优秀的程序员,十分优秀!