小编mil*_*ler的帖子

在libgdx中使图像可触摸的最简单方法是什么?

这是我的代码:

@Override
public void resize(int width, int height) {
super.resize(width, height);

stage.clear();

// background image
Image backImage = new Image(backTexture);
backImage.setX(0);
backImage.setY(0);
backImage.setWidth(800);
backImage.setHeight(480);

// start game image
Image startImage = new Image(startTexture);
startImage.setX(415);
startImage.setY(180);
startImage.setWidth(323);
startImage.setHeight(69);

stage.addActor(backImage);
stage.addActor(startImage);
}
Run Code Online (Sandbox Code Playgroud)

我正在创建简单的游戏,这就是我创建主菜单的方式.我想让我的startImage可触摸(可点击),因为Image类没有可用的监听器.我该怎么做?或者使用ImageButton更好吗?这样我就不得不创建图像图集,这对我来说似乎有点复杂.

编辑:我试过以下:

startImage.addListener(new ClickListener() {
    public boolean touchDown(InputEvent event, float x, float y, int pointer, int button)
    {
        game.setScreen(new SplashScreen(game));
        return true;
    }
});
Run Code Online (Sandbox Code Playgroud)

但它仍然无法正常工作..

编辑:

Gdx.input.setInputProcessor(stage);
Run Code Online (Sandbox Code Playgroud)

需要被召唤.解决了.

android libgdx

8
推荐指数
1
解决办法
9398
查看次数

如何在android材质设计风格中创建按钮阴影

全新的材 根据预览SDK文档elevation,新SDK 中将提供属性.但是,现在有什么方法可以达到类似的效果吗?

在此输入图像描述

android button shadow material-design

7
推荐指数
1
解决办法
9294
查看次数

Perl:使用GetOptions过滤无效参数

我正在使用Perl中的一个小脚本,我在命令行中遇到参数问题.我正在使用GetOps来解析它们,如下面的代码所示:

%params = (
  "help" => "",
  "no_inline" => "",
  "no_dupl" => ""
);

&paramError if (!GetOptions(
  "help" => \$params{"help"},
  "no-inline" => \$params{"no_inline"},
  "no-duplicates" => \$params{"no_dupl"},
));
Run Code Online (Sandbox Code Playgroud)

然后我像这样运行脚本:

> script.pl --no-inline # ok, valid parameter
> script.pl --no-inline blahblah # blahblah is not valid
> script.pl --no-i # not valid
Run Code Online (Sandbox Code Playgroud)

问题是,在第二个和第三个示例中,GetOps表示参数有效.我该怎么办才能使这些参数无效?

parameters perl

4
推荐指数
1
解决办法
1254
查看次数

将子类作为父类传递给方法

class Method {
  public:    
  virtual void Rum();
};
class Euler : public Method {
  virtual void Rum() {
    printf("ahoj\n");
  }    
};
class Kutta : public Method {
  virtual void Rum() {
    printf("ahoj2\n");
  }    
};
class Simulator {
  public:
  Method *pointer;
  Simulator();
  void setmethod(Method m) { pointer = &m; }
};

int main() {
  Simulator s;
  s.setmethod(new Kutta());
  s.pointer->Rum();
  s.setmethod(new Euler());
  s.pointer->Rum();
}
Run Code Online (Sandbox Code Playgroud)

我希望这个例子足够好理解。我试图应用继承原则,但我得到了这些错误:(OOP 的东西在我的脑海中似乎有点混乱)

prog.cpp: In function ‘int main()’:
prog.cpp:26: error: no matching function for call to ‘Simulator::setmethod(Kutta*)’
prog.cpp:21: note: …
Run Code Online (Sandbox Code Playgroud)

c++ oop

3
推荐指数
1
解决办法
6201
查看次数

重载 C++ 算术运算符

我正在尝试创建一些使用继承类的重载算术运算符,如下所示:

class Block {
    public:
        Block() {}
        virtual double Value() {};
};

class Constant : public Block {
    public:     
        Constant(double v) { value = v; }
        virtual double Value() { return value; }
    private:
        double value;       
};

class Add : public Block {
    public:
        Add(Block &a, Block &b) { value1 = &a; value2 = &b; }
        virtual double Value() { return value1->Value() + value2->Value(); }
    private:
        Block *value1;
        Block *value2;          
};

Block operator + (Block &a, Block &b) {
    return …
Run Code Online (Sandbox Code Playgroud)

c++ oop

1
推荐指数
1
解决办法
709
查看次数

标签 统计

android ×2

c++ ×2

oop ×2

button ×1

libgdx ×1

material-design ×1

parameters ×1

perl ×1

shadow ×1