- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个硬币类,它接受一个整数numOfCoins
和一个枚举LayoutType
,它可以是线性的或弯曲的。线性布局将硬币一个接一个地显示在一条直线上 - 我们将使用这种方法,因为该方法很小且直接。
我的构造函数如下所示:
public Coin(float xPos, float yPos, int numOfCoins, LayoutType layout) {
setType(ObjectType.COIN);
coinList = new ArrayList<Coin>(); // arraylist of coins
setPos(xPos, yPos); // set starting position of coin(s)
if (layout == LayoutType.LINEAR)) {
linearLayout(); // display coins in a straight line
} else if (layout == LayoutType.CURVE{
curveLayout();
}
}
我的 linearLayout()
方法看起来像这样
public void linearLayout() {
//draw numOfCoins amount of coins in a straight line
for (int i = 0; i < numOfCoins; i++) {
Coin coin = new Coin(xPos, yPos);
coinList.add(coin);
xPos += 50; // place coins 50 pixels apart
}
}
我有一个工作动画类和一个硬币 Sprite 表 - 但是,我对硬币进行建模的方式是 1 个硬币对象可以包含 numOfCoins
数量的硬币,所以我不能直接在draw方法中调用动画。
该类的 draw()
方法位于一个继承自 Coin
的抽象类 GameObject
中。它看起来像这样:
public void draw(SpriteBatch batch) {
// if the object is a coin iterate through the list of coins
// and draw the sprites, if it isn't a coin, simply draw the objects sprite
if (type == ObjectType.COIN) {
for (Coin coin : getCoinList()) {
coin.getCoinList().draw(batch);
}
} else {
sprite.draw(batch);
}
}
这个draw()方法在World.render()中调用。
例如,如果我在一条直线上有 6 个硬币,我将如何为每个硬币创建动画?我似乎找不到办法。非常感谢您的帮助,谢谢。
最佳答案
我对你的类结构感到困惑(拥有硬币列表的硬币)。我会为硬币组创建一个单独的类。
public class Coin {
Vector2 position;
public Coin (float x, float y){
position = new Vector2(x, y);
}
}
public class CoinGroup extends GameObject {
// This would be very similar to your current Coin class, and contain a list of
// the new Coins.
}
为 CoinGroup 类提供一个对其所有项目共享的动画的引用,以及一个浮点变量来跟踪耗时。
Animation coinAnimation;
float elapsedTime;
public CoinGroup(float xPos, float yPos, int numOfCoins, LayoutType layout,
Animation coinAnimation) {
setType(ObjectType.COIN);
coinList = new ArrayList<Coin>(); // arraylist of coins
setPos(xPos, yPos); // set starting position of coin(s)
if (layout == LayoutType.LINEAR)) {
linearLayout(); // display coins in a straight line
} else if (layout == LayoutType.CURVE{
curveLayout();
}
this.coinAnimation = coinAnimation;
}
然后您需要更新每帧的耗时以用于动画。您可能已经有了某种可以将其插入的更新方法,但如果没有,它会是这样的:
public void update (float deltaTime){
elapsedTime += deltaTime;
}
游戏或屏幕类需要每帧对 CoinGroup 调用一次update
。
然后您可以通过引用相同的动画来绘制每个硬币。我不明白你的绘制方法中发生了什么(为什么硬币的绘制方法需要检查它是否是硬币?),但这是一般的想法。
public void draw(SpriteBatch batch) {
TextureRegion coinFrameRegion = coinAnimation.getKeyFrame(elapsedTime);
for (Coin coin : coinList){
Vector2 coinPosition = coin.position;
batch.draw(coinFrameRegion , coinPosition.x, coinPosition.y);
}
}
如果你想变得更奇特,你可以错开动画。
static final float ANIMATION_STAGGER = 0.15f;
public void draw(SpriteBatch batch) {
for (int i=0; i<coinList.size; i++){
Vector2 coinPosition = coin.position;
batch.draw(coinAnimation.getKeyFrame(elapsedTime + i*ANIMATION_STAGGER ), coinPosition.x, coinPosition.y);
}
}
关于java - (Java)尝试使用(工作)动画类对硬币数组列表进行动画处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29253914/
我目前正在做一个项目,试图开发一种用于 P2P 能源交易的货币和模型,其中每产生一千瓦时的可再生能源就会向该生产商类型转换一枚硬币。我的问题是关于销毁智能合约中的代币。 所有与我的项目类似的当前实现都
在没有Maps帮助的情况下通过Memoization解决问题,由于读取文件的方法,我得到了TLE,根据我的说法,这不应该是这种情况。可能的原因是什么? 这是给出 AC - http://ideone.
考虑下面这段伪代码,其中d是面额值数组,k是面额数,n是要进行更改的金额。 Change(d; k; n) 1 C[0] 我真的不明白这部分,你为什么要用它,谁能给我解释一下! 最佳答案 为了回答
我正在尝试在我的网站上实现 Coin Slider (http://workshop.rs/2010/04/coin-slider-image-slider-with-unique-effects/)
我有使用硬币 slider 的画廊 var $jq = jQuery.noConflict(); $jq(window).load(function() { var imhei
我使用了从该站点提取的硬币 slider http://workshop.rs/projects/coin-slider/ .它现在自动滚动并仅在悬停时显示上一个和下一个。我需要禁用自动滚动并正常显示
我的问题是一道CodeFu练习题(2012 round 2 problem 3)。它基本上归结为将整数数组分成两个(几乎)相等的两半并返回两者之间可能的最小差异。我在下面包含了问题描述。如评论中所述,
我们的老师要求我们制作一 jar 硬币,用来计算我们有多少便士、一毛钱等,然后给出总金额。 这是他希望我们使用的模板 https://online.pcc.edu/content/enforced/7
我正在尝试使用币安币 future 的 api 下载 BTC/USD 永续 future 的历史价格数据,具体来说,我想使用 this endpoint .但是,我找不到必须为 BTC/USD 指定的
我上周刚开始学习计算机科学,我们得到了一个名为“硬币”的工作表,其中我必须找出一组硬币中有多少个 25 美分、10 美分、5 美分和 10 便士。我遇到了很多麻烦,并收到了该错误。这是我的代码 pac
我正在构建一些使用消耗性硬币的测验。我使用 NSUserDefault 来保存设备上的硬币及其工作。我还在 qiuz 中使用 CloudKit 处理数据。 不麻烦的是,如果用户切换设备如何恢复硬币?有
我是一名优秀的程序员,十分优秀!