RError.com

RError.com Logo RError.com Logo

RError.com Navigation

  • 主页

Mobile menu

Close
  • 主页
  • 系统&网络
    • 热门问题
    • 最新问题
    • 标签
  • Ubuntu
    • 热门问题
    • 最新问题
    • 标签
  • 帮助
主页 / user-282625

Алексей Ефимов's questions

Martin Hope
Алексей Ефимов
Asked: 2020-01-14 18:36:25 +0000 UTC

LIBGDX 中的 CatmullRomSpline 方法

  • 0

我正在尝试使用样条曲线,我想自己解决在 github 上阅读本指南后出现的问题。这是我设法从该指南中收集的代码:

public class MyCatmullRomSpline {

private int mCountSections; //кол-во делений(точек) между основными точками указанными в dataPoints
private Vector2[] mSections; //массив делений
private ShapeRenderer mShapeRenderer;
private CatmullRomSpline<Vector2> mSpline;
private Vector2 out; 
private float speed; //скорость перемещения чего-либо по кривой


public GCatmullRomSpline(Vector2[] dataPoints, boolean closed, int countSections){

    speed = dataPoints.length - 1;

    mSpline = new CatmullRomSpline<Vector2>(dataPoints, closed);
    mSections = new Vector2[countSections];

    mCountSections = countSections;

    mShapeRenderer  = new ShapeRenderer();

    initSpline();
}

private void initSpline(){
    out = new Vector2();

    mSpline.valueAt(out, Gdx.graphics.getDeltaTime()); //?????
    mSpline.derivativeAt(out, Gdx.graphics.getDeltaTime()); //?????

    for (int i = 0; i < mCountSections; ++i){
        mSections[i] = new Vector2();
        mSpline.valueAt(mSections[i], ((float)i)/((float)mCountSections-1));//?????
    }
}

float current = 0;

public void render(SpriteBatch batch, Texture texture){
    mShapeRenderer.begin(ShapeRenderer.ShapeType.Line);

    float derivativeAverage = 0;
    for (float i = 0; i < 1; i += 1f/mCountSections) {
        mSpline.derivativeAt(out, i); //?????
        derivativeAverage += out.len();
    }
    derivativeAverage /= mCountSections;

    mSpline.derivativeAt(out, current);
    current += derivativeAverage / speed * Gdx.graphics.getDeltaTime() / out.len();
    current %= 1;

    if (current >= 1) current -= 1;
    mSpline.valueAt(out, current);

    batch.begin();
    batch.draw(texture, out.x - 18, out.y - 18, 36, 36);
    batch.end();


    for (int i = 0; i < mCountSections-1; ++i){
        mShapeRenderer.line(
                mSpline.valueAt(mSections[i], ((float)i)/((float)mCountSections-1)),
                mSpline.valueAt(mSections[i+1], ((float)(i+1))/((float)mCountSections-1)));
    }

    mShapeRenderer.end();
    }
}

这是我理解的图像: MyCatmullRom样条

问题一:

方法: mSpline.valueAt(out, Gdx.graphics.getDeltaTime()); 和 mSpline.derivativeAt(out, Gdx.graphics.getDeltaTime()); - 包含相同的正文和语法。

public T valueAt (T out, float t) {
    final int n = spanCount;
    float u = t * n;
    int i = (t >= 1f) ? (n - 1) : (int)u;
    u -= i;
    return valueAt(out, i, u);
}

public T derivativeAt (T out, float t) {
    final int n = spanCount;
    float u = t * n;
    int i = (t >= 1f) ? (n - 1) : (int)u;
    u -= i;
    return derivativeAt(out, i, u);
}

他们有什么区别?

PS:我的微分数学很弱。

libgdx
  • 1 个回答
  • 10 Views
Martin Hope
Алексей Ефимов
Asked: 2020-11-09 00:39:08 +0000 UTC

libGDX(android) 屏幕分辨率和资源使用

  • 0

我知道 libGDX。我立即遇到了资源和支持不同屏幕分辨率的问题。libGDX 有一个assets文件夹和一个res/drawable 文件夹(都在 android 包中)。

  1. 我需要在其中的哪些中抛出图像/图集来绘制游戏对象?
  2. 我是否需要考虑图像的 dpi(mdpi、hdpi 等)?
  3. 使用哪个工具来保持不同屏幕上的图像纵横比?

如果在纯 Android Studio 中很明显.xml 标记将适合设备的屏幕尺寸,那么在 libGDX 中的情况如何?

这是一个示例:我有一个 240x400 像素的基本屏幕。在这个屏幕上,我画了一个 100x100 像素的正方形。接下来,我开始将屏幕尺寸变大,从而正方形开始减小。如何避免平方缩减?我知道我应该使用 OrthographicCamera 和相对值,但我不知道应该如何使用它们。

在此处输入图像描述

谢谢你。

android
  • 1 个回答
  • 10 Views
Martin Hope
Алексей Ефимов
Asked: 2020-10-11 06:13:13 +0000 UTC

Android Studio 中生成的Java 文件夹和清单错误

  • 1

我将工作室更新到 3.2 版本。现在,当创建一个新项目时,会自动生成带有空R.java类的“generatedJava”文件夹:

在此处输入图像描述

它的用途是什么?如何使用嵌套在其中的 R 类?

我还在清单文件中看到了以下内容:

在此处输入图像描述

他需要什么?谢谢你。

android-studio
  • 1 个回答
  • 10 Views
Martin Hope
Алексей Ефимов
Asked: 2020-08-27 21:50:23 +0000 UTC

复杂形状的碰撞检查 (Android)

  • 2

例如,有一个 2D 对象的图像:在此处输入图像描述

如何检查另一个物体(如子弹)是否与此形状的边缘发生碰撞?我是说:

在此处输入图像描述

  1. 不带图像边框。
  2. 并带有图形本身的边框。

我会很高兴任何文章或例子。谢谢你。

java
  • 1 个回答
  • 10 Views
Martin Hope
Алексей Ефимов
Asked: 2020-06-17 04:58:27 +0000 UTC

字段和/或变量?就是那个问题

  • 6

在我学习 Java 语言的过程中,“领域”这个词一直困扰着我。我在书本或网上都没有找到对这种现象的明确解释。有人说“字段”是“变量”,只是名称不同(例如:对象和实例)。其他来源是不同的东西。

那么什么是“场”呢?添加了一个示例。他忠实吗?

class MyClass{

int weigth = 50; //---поле
int height = 100; //---поле 
String str; //---поле

int myMethod(){
    
    int a; //---локальная переменная (НЕ поле)
    int b; //---локальная переменная (НЕ поле)
    str = "Это строка"; //---полю присваивается значение

    ...
}}
java
  • 2 个回答
  • 10 Views
Martin Hope
Алексей Ефимов
Asked: 2020-06-15 05:08:25 +0000 UTC

类类型引用 (Java)

  • 0

我将立即显示代码,然后是问题:

class Callme{

    void call(String msg){
        System.out.print("[" + msg);
        try {
            Thread.sleep(100);
        }catch (InterruptedException e){
            System.out.println("Прервано!");
        }
        System.out.println("]");
    }
}

class Caller implements Runnable{

    String msg;
    Callme target;
    Thread t;

    public Caller (Callme targ, String s){

        target = targ;
        msg = s;

        t = new Thread(this);
        t.start();
    }

    public void run(){
        synchronized (target){
            target.call(msg);
        }
    }
}

public class Example {

    public static void main(String[] args) {

        Callme target = new Callme();

        Caller ob1 = new Caller(target, "Один");
        Caller ob2 = new Caller(target, "Два");
        Caller ob3 = new Caller(target, "Три");

        try {
            ob1.t.join();
            ob2.t.join();
            ob3.t.join();
        }catch (InterruptedException e){
            System.out.println("Прервано!");
        }
    }
}

我正在学习Java中的线程。面临对Caller类的一个元素的误解,即:Callme目标;它是对类类型的引用吗?它是如何工作的?为什么是她?为什么变量类型是Callme?我很困惑(

java
  • 1 个回答
  • 10 Views
Martin Hope
Алексей Ефимов
Asked: 2020-06-07 16:16:57 +0000 UTC

程序不当行为 (Java)

  • 2

使用所提供的代码,问题的描述可能更清楚:

package com.company;

class Box {

    double widht;
    double heidht;
    double depth;

    //---сконструировать клон объекта
    Box (Box ob){ //-передать объект
        widht = ob.widht;
        heidht = ob.heidht;
        depth = ob.depth;
    }

    //---констуктор, применяемый при указании всех размеров
    Box (double w, double h, double d){
        widht = w;
        heidht = h;
        depth = d;
    }

    //---конструктор при отсутствии размеров
    Box(){
        widht = -1;
        heidht = -1;
        depth = -1;
    }

    //---констуктор для куба
    Box (double len){

        widht = heidht = depth = len;
    }

    //---посчитать и вернуть объем
    double volume (){
        return widht * heidht * depth;
    }
}

class BoxWeight extends Box{

    double weight; //---вес объекта

    //---констуктор
    BoxWeight(double w, double h, double d, double m){
        weight = w;
        heidht = h;
        depth = d;
        weight = m;
    }
}

public class Example {

    public static void main(String[] args) {

        BoxWeight myBox1 = new BoxWeight(10, 20, 15, 34.3);
        BoxWeight myBox2 = new BoxWeight(2, 3, 4, 0.076);

        double vol;

        vol = myBox1.volume();
        System.out.println("Объем myBox1 = " + vol);
        System.out.println("Вес myBox1 = " + myBox1.weight);
        System.out.println();

        vol = myBox2.volume();
        System.out.println("Объем myBox2 = " + vol);
        System.out.println("Вес myBox2 = " + myBox2.weight);
        System.out.println();
    }
}

运行代码给出结果:

体积 myBox1 = -300.0 重量 myBox1 = 34.3

体积 myBox2 = -12.0 重量 myBox2 = 0.076

并且应该给出这个:

体积 myBox1 = 3000.0 重量 myBox1 = 34.3

体积 myBox2 = 24.0 重量 myBox2 = 0.076

我不明白出了什么问题。

java
  • 1 个回答
  • 10 Views
Martin Hope
Алексей Ефимов
Asked: 2020-04-17 05:49:32 +0000 UTC

应用程序设置屏幕,最佳实施方式

  • 2

在开发自己的应用程序时,我遇到了实现应用程序设置屏幕的问题。我很难选择实现它的最佳方式。我将尝试描述我选择的方法。帮我选。

带有设置的屏幕:屏幕

第一种方式:通过面板实现。在主(主)屏幕中,创建一个“设置”按钮,通过setVisibility(...)方法为其分配一个侦听器。也就是说,面板在主屏幕中默认隐藏(GONE),通过单击“设置”它变得可见(可见)。 混淆:如果您将面板的背景设置为透明或半透明,则在面板下方单击按钮,即 主屏幕。其次,如果您在此面板中放置“BACK”按钮以关闭(GONE)此面板,则该按钮根本不起作用。

第二种方式:创建一个新的空活动。这里更容易。创建布局 XML + 类并通过 Intent 实现。 Confuses:到目前为止我还没有遇到在应用程序中保存任何东西,但是在学习这个问题的过程中。好像创建的类会是空的,因为你可以写设置的代码,例如在主屏幕类中——如果我错了,请纠正我。

第三种方式:创建一个设置活动。类似于第二种方法,但我对这个活动一无所知,我在网络上也没有找到任何东西——谷歌建议使用 Preference。迷茫:大家!

PS:我是初学者,我自学,主要是看书。因此,如果答案是简单的话,我将不胜感激。谢谢你。(如果你允许我,我会在评论中澄清答案)。

android
  • 1 个回答
  • 10 Views
Martin Hope
Алексей Ефимов
Asked: 2020-04-11 02:28:42 +0000 UTC

如何在屏幕翻转(Android Studio)上保持方法结果?

  • 1

再会。遇到这样的问题(我在Android. Programming for Professionals. 3rd edition - 卡在第5章的最后一个任务上练习):下面是一个允许用户窥视一个简单问题的正确答案的类。查看提示后,当返回问题并点击正确答案时,用户会看到“作弊不好”的字样。问题是在这个类中你需要保存结果——用户是否窥探到答案,这样当手机屏幕翻转时,这个指示器不会被重置。我不明白该怎么做。究竟需要保存什么?我试图在代码位置替换值 mAnswerIsTrue -> (________) - 但这并没有给出预期的结果。我认为您需要保存 wasAnswerShown 方法的结果,但这只是一个假设。

 public class CheatActivity extends AppCompatActivity {

    //константа TAG (источник сообщения) = "имя класса"
    public  static final String TAG = "CheatActivity";

    //ключ для дополнения-интента который CheatActivity читает и использует (в методе newIntent)
    private static final String EXTRA_ANSWER_IS_TRUE = "com.bignerdranch.android.geoquiz.answer_is_true";
    //ключ дополнения для назначения результата
    private static final String EXTRA_ANSWER_SHOWN = "com.bignerdranch.android.geoquiz.answer_shown";

    private boolean mAnswerIsTrue;

    private TextView mAnswerTextView;
    private Button mShowAnswerButton;

    //инкапсулированный метод для включения дополнения в интент
    //он позволяет создать объект Intent, настроенный дополнениями, необходимыми для CheatActivity
    // boolean answerIsTrue - выступает значением в дополнении
    // (включение дополнения в интент - интент.дополнение(ключ,значение))
    public static Intent newIntent (Context packageContext, boolean answerIsTrue){
        Intent intent = new Intent(packageContext, CheatActivity.class);
        //далее интент.дополнение (ключ, значение)
        intent.putExtra(EXTRA_ANSWER_IS_TRUE, answerIsTrue);
        return intent;
    }

    //декодирование интента результата (из метода setAnswerShownResult)
    public static boolean wasAnswerShown (Intent result){
        return result.getBooleanExtra(EXTRA_ANSWER_SHOWN,false);
    }

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        Log.d(TAG, "onCreate(Bundle) called");// <- эта строка регистрирует сообщение (Log.d),
        // ^(источник сообщения,"какое сообщение вывести")
        setContentView(R.layout.activity_cheat);

        if (savedInstanceState != null){
           ___________ = savedInstanceState.getBoolean(EXTRA_ANSWER_SHOWN, ___________);
        }

        // метод для чтения значения из дополнения + сохранение значения в переменной mAnswerIsTrue
        mAnswerIsTrue = getIntent().getBooleanExtra(EXTRA_ANSWER_IS_TRUE, false);

        mAnswerTextView = (TextView) findViewById(R.id.answer_text_view);
        mShowAnswerButton = (Button) findViewById(R.id.show_answer_button);
        //далее когда нажимаем на "Show Answer" - показать текст правильного ответа
        mShowAnswerButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if (mAnswerIsTrue) {
                    mAnswerTextView.setText(R.string.true_button);
                }
                    else {
                    mAnswerTextView.setText(R.string.false_button);
                }
                setAnswerShownResult(true);
            }
        });
    }

    private void setAnswerShownResult (boolean isAnswerShown) {
        Intent data = new Intent();
        data.putExtra(EXTRA_ANSWER_SHOWN, isAnswerShown);
        setResult(RESULT_OK, data);
    }


@Override 
    public void onSaveInstanceState(Bundle saveInstanceState) {
        super.onSaveInstanceState(saveInstanceState);
        Log.d(TAG, "onSaveInstanceState");
        saveInstanceState.putBoolean(EXTRA_ANSWER_SHOWN,__________);
    }
android
  • 2 个回答
  • 10 Views
Martin Hope
Алексей Ефимов
Asked: 2020-03-20 08:29:14 +0000 UTC

什么是 MVC?(简单示例)

  • 9

再会。请向新手解释什么是MVC?

我知道这是一个模型-视图-控制器,一个影响另一个,而控制器充当模型和视图之间的中介。但!

我很难想象模型是什么?我重新阅读了很多材料,但是对于我的生活,我不明白什么是模型(

我会很感激一个非常简单的例子。

mvc
  • 4 个回答
  • 10 Views
Martin Hope
Алексей Ефимов
Asked: 2020-02-02 00:35:46 +0000 UTC

警告 - 图片的 android:contentDescription="TODO"

  • 2

在 Android Studio 中反复遇到问题android:contentDescription="TODO"将任何 PNG 图像添加到标记 (.xml) + 硬编码文本发誓。按钮的图像 (ImageButton)。

我知道我需要对图像进行描述——但是在哪里以及如何做呢?(还是我误会了?)

以前,为了解决问题,一切都被推迟了,但现在无处可去。

android
  • 1 个回答
  • 10 Views
Martin Hope
Алексей Ефимов
Asked: 2020-01-29 20:50:28 +0000 UTC

在哪里以及如何最好地为游戏绘制精灵?

  • 2

来自编程新手的问题:在哪里(如何)为游戏绘制精灵更好?例如:想象一条道路和一辆汽车。道路上有助推器,通过点击助推器,汽车移动到按下的位置,拾取助推器改变外观。

关于我的想法的一点点:我画了必要的图片(例如,在 Photoshop 中)。我在同一个 Photoshop 中为它们制作动画,或者用图像制作地图集。在代码中,我创建了一个新文件 (.java),我将在其中指定一个数组,指示图像的名称 + 使用位置和图像。

请纠正我的观点(欢迎建设性批评)。问题: 1. 如果我正在制作带有图像的图集,我如何在代码中指定要使用图集中的哪个特定图像?2.也许是一个愚蠢的问题,但它是如何“......将绘制......的代码”?

PS:我不使用AndEngine。

java
  • 1 个回答
  • 10 Views

Sidebar

Stats

  • 问题 10021
  • Answers 30001
  • 最佳答案 8000
  • 用户 6900
  • 常问
  • 回答
  • Marko Smith

    我看不懂措辞

    • 1 个回答
  • Marko Smith

    请求的模块“del”不提供名为“default”的导出

    • 3 个回答
  • Marko Smith

    "!+tab" 在 HTML 的 vs 代码中不起作用

    • 5 个回答
  • Marko Smith

    我正在尝试解决“猜词”的问题。Python

    • 2 个回答
  • Marko Smith

    可以使用哪些命令将当前指针移动到指定的提交而不更改工作目录中的文件?

    • 1 个回答
  • Marko Smith

    Python解析野莓

    • 1 个回答
  • Marko Smith

    问题:“警告:检查最新版本的 pip 时出错。”

    • 2 个回答
  • Marko Smith

    帮助编写一个用值填充变量的循环。解决这个问题

    • 2 个回答
  • Marko Smith

    尽管依赖数组为空,但在渲染上调用了 2 次 useEffect

    • 2 个回答
  • Marko Smith

    数据不通过 Telegram.WebApp.sendData 发送

    • 1 个回答
  • Martin Hope
    Alexandr_TT 2020年新年大赛! 2020-12-20 18:20:21 +0000 UTC
  • Martin Hope
    Alexandr_TT 圣诞树动画 2020-12-23 00:38:08 +0000 UTC
  • Martin Hope
    Air 究竟是什么标识了网站访问者? 2020-11-03 15:49:20 +0000 UTC
  • Martin Hope
    Qwertiy 号码显示 9223372036854775807 2020-07-11 18:16:49 +0000 UTC
  • Martin Hope
    user216109 如何为黑客设下陷阱,或充分击退攻击? 2020-05-10 02:22:52 +0000 UTC
  • Martin Hope
    Qwertiy 并变成3个无穷大 2020-11-06 07:15:57 +0000 UTC
  • Martin Hope
    koks_rs 什么是样板代码? 2020-10-27 15:43:19 +0000 UTC
  • Martin Hope
    Sirop4ik 向 git 提交发布的正确方法是什么? 2020-10-05 00:02:00 +0000 UTC
  • Martin Hope
    faoxis 为什么在这么多示例中函数都称为 foo? 2020-08-15 04:42:49 +0000 UTC
  • Martin Hope
    Pavel Mayorov 如何从事件或回调函数中返回值?或者至少等他们完成。 2020-08-11 16:49:28 +0000 UTC

热门标签

javascript python java php c# c++ html android jquery mysql

Explore

  • 主页
  • 问题
    • 热门问题
    • 最新问题
  • 标签
  • 帮助

Footer

RError.com

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

帮助

© 2023 RError.com All Rights Reserve   沪ICP备12040472号-5