我想在AndEngine中畫出類似於水果忍者或素食武士的效果。 任何人都可以幫助我嗎?並給出一個示例代碼?繪製線條效果觸摸像水果忍者或素食武士和發動機
回答
我認爲你必須使用點粒子效果,並使用線繪製算法來創建點之間的線。使用粒子繪製的線代表更多的現實,並且粒子代表動態的方式,因此您可以摧毀它。此外,你可以問。 編輯:對於粒子的產生,你可以使用此代碼
public void generateParticles(float pX, float pY) {
pointParticleEmtitter = new PointParticleEmitter(pX, pY);
particleSystem = new ParticleSystem(pointParticleEmtitter, maxRate,
minRate, maxParticles, mParticleTextureRegion.deepCopy());
particleSystem.setBlendFunction(GL10.GL_SRC_ALPHA, GL10.GL_ONE);
particleSystem.addParticleInitializer(new ColorInitializer(0.8f, 0.43f,
0.2f));
particleSystem.addParticleModifier(new AlphaModifier(1, 0, 0, 0.25f));
particleSystem.addParticleModifier(new ExpireModifier(0.25f));
gameObject.getScene().attachChild(particleSystem);
}
線路算法可以或許用這個
public void drawLine() {
int x;
float y, m;
x = (int) previousX;
y = (int) previousY;
m = (currentY - previousY)/(currentX - previousX);
if (Math.round(previousX) == Math.round(currentX)) {
if (previousY < currentY) {
for (y = (int) previousY; y < currentY; ++y)
pointParticleEmtitter.setCenter(previousX, y);
} else {
for (y = (int) previousY; y > currentY; --y)
pointParticleEmtitter.setCenter(previousX, y);
}
} else {
if (previousX < currentX) {
for (x = (int) previousX; x < currentX; ++x) {
y = m * (x - previousX) + previousY;
pointParticleEmtitter.setCenter(x, y);
}
} else if (previousX > currentX) {
for (x = (int) previousX; x > currentX; --x) {
y = m * (x - currentX) + currentY;
pointParticleEmtitter.setCenter(x, y);
}
}
}
}
你能給我任何java代碼示例嗎?或Andengine示例? –
非常感謝....但更多的指導PLZ。 假設我有一個包含x,y點的數組。我將如何調用上述算法以及粒子系統函數如何連接到線算法?我的意思是它叫什麼名字? –
您必須爲函數提供每對(x,y)座標,並且您必須在onManageUpdate()方法中管理此對象。首先,您必須使用generateParticles()方法創建粒子,您必須單次調用,並且在更新方法中,必須通過提供適當的x,y座標來調用drawLine方法。 – Siddharth
,我遲到了,但希望這能幫助別人。
@Override
public boolean onSceneTouchEvent(Scene pScene, TouchEvent pSceneTouchEvent) {
final float touchX = pSceneTouchEvent.getX();
final float touchY = pSceneTouchEvent.getY();
if (pSceneTouchEvent.isActionDown()) {
initTrail(touchX, touchY);
swipeGestureSprite = addSwipeSprite(touchX, touchY);
} else if (pSceneTouchEvent.isActionMove()) {
moveTrail(pSceneTouchEvent.getX(), pSceneTouchEvent.getY(), 0);
if (swipeGestureSprite != null) {
swipeGestureSprite.setX(touchX);
swipeGestureSprite.setY(touchY);
}
} else if (pSceneTouchEvent.isActionUp()) {
mScene.detachChild(this.particleSystem);
if (swipeGestureSprite != null) {
this.mScene.detachChild(swipeGestureSprite);
swipeGestureSprite = null;
}
return true;
}
return false;
}
private void initTrail(float mX, float mY) {
this.particleEmitter = new PointParticleEmitter(mX, mY);
this.particleSystem = new SpriteParticleSystem(particleEmitter, 1000, 1000, 5000, this.mRibbon, this.getVertexBufferObjectManager());
particleSystem.addParticleInitializer(new BlendFunctionParticleInitializer<Sprite>(GLES20.GL_SRC_ALPHA, GLES20.GL_ONE));
particleSystem.addParticleInitializer(new ExpireParticleInitializer<Sprite>(1));
particleSystem.addParticleModifier(new ScaleParticleModifier<Sprite>(0, 1, 1, 0f));
particleSystem.addParticleModifier(new AlphaParticleModifier<Sprite>(0, 1, 1, 0));
this.mScene.attachChild(particleSystem);
}
private void moveTrail(float trailX, float trailY, int count) {
if (particleEmitter == null) {
initTrail(trailX, trailY);
}
particleEmitter.setCenter(trailX, trailY);
}
- 1. ActionScript:水果忍者滑動
- 2. cocos2d水果忍者拋物線數學
- 3. 線條繪製效果
- 4. 用觸摸繪製和擦除線條
- 5. 想buiild水果忍者類型片的效果
- 6. 水果忍者遊戲中的切片效果如何工作?
- 7. Android觸摸動畫效果
- 8. 在iOS中使用觸摸繪製水平線或垂直線
- 9. 繪製折線結果像素線
- 10. 像水果忍者一樣在遊戲中工作的問題
- 11. 在InkCanvas中繪製線條的發光效果
- 12. Lua Gideros:繪製觸摸線
- 13. cocos 2d檢測2個精靈中的同時觸摸 - 就像在水果忍者遊戲
- 14. 添加視覺以下手指輕掃,三角形條像水果忍者Andengine
- 15. 繪製字符串與粉筆效果(可可/可可觸摸)?
- 16. jquery圖片淡入淡出效果燈箱效果/火影忍者效果
- 17. 在Pixi.js中爲一條線繪製動畫效果
- 18. 觸摸效果 - Android電子
- 19. GPUImage +觸摸模糊效果
- 20. jQuery的滑動效果[觸摸]
- 21. 觸摸屏設備的「拖動」效果
- 22. 按鈕懸停效果和觸摸(WPF)
- 23. 雪碧工具包:SKNodes加入動畫像水果忍者的屏幕
- 24. 如何使用css繪製多條水平線(筆記本紙效果)?
- 25. 用戶如何通過觸摸在形狀上繪畫或繪製線條
- 26. 線條觸摸或矩形或圓形
- 27. 像素化效果
- 28. 忍者複製!
- 29. 通過iPhone上的手指觸摸繪製線條
- 30. 如何繪製一條線到用戶觸摸的位置?
您是否試過這樣做?如果是這樣,你有麻煩嗎? – jmroyalty
是的,我試圖通過使用線條繪製...但我知道它不繪製它的圖像繪製線...我有iPhone代碼,但我不知道如何將其轉換爲Android代碼。 –
你能找到解決這個問題的方法嗎?那麼請與我們分享一些知識。 – Siddharth