RError.com

RError.com Logo RError.com Logo

RError.com Navigation

  • 主页

Mobile menu

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

Виталий Тодоров's questions

Martin Hope
Виталий Тодоров
Asked: 2022-06-24 22:50:34 +0000 UTC

是否有可能以某种方式将标志值分配给来自其他枚举元素组合的值?

  • 3

是否有可能以某种方式将标志值分配给来自其他枚举元素组合的值?

类似这样的东西:

[Flags]
public enum MyTypeObject
{
    Unit = Defender | Worker,
    Defender,
    Worker
}
c#
  • 1 个回答
  • 10 Views
Martin Hope
Виталий Тодоров
Asked: 2022-05-15 04:09:34 +0000 UTC

是否可以立即删除对象(在帧结束之前)?

  • 0

是否可以立即删除对象?

据我了解,Destroy() 在帧结束时删除,特别是在 OnCollisionEnter() 之后。是否可以在 OnCollisionEnter() 完成之前删除对象?

好吧,这就是我理解我的问题的方式:) 更详细地说:在碰撞内部,调用以下内容:_stateHoneyGetter.OnEnter(_honeyGiver)

private void OnCollisionEnter(Collision collision)
{
    //Если объект может давать мёд, то берём его
    _honeyGiver = collision.gameObject.GetComponent<IHoneyGiver>();

    if (_honeyGiver is IHoneyGiver && сurrentHoneyStocks < parameters.maxHoneyStocks)
    {
        _stateMovement.OnExit();
        _stateHoneyGetter.OnEnter(_honeyGiver);
    }
}

这是协程开始的地方:

public void OnEnter(object honeyGiver)
{
    coroutine = HoneyGet((IHoneyGiver)honeyGiver, _parameters.getHoneyTime);
    _bee.StartCoroutine(coroutine);
}

public IEnumerator HoneyGet(IHoneyGiver honeyGiver, float waitTime)
{
    while (true)
    {
        //Проверяем может ли пчела ещё взять мёд и наличие объекта у которого мы хотим взять мёд, если нет свободных мест возникает ошибка
        if (сurrentHoneyStocks < _parameters.maxHoneyStocks && !honeyGiver.Equals(null))
            try
            {
                сurrentHoneyStocks +=
                    honeyGiver.HoneyGive(_beeGmOdj, _parameters.getHoney);
            }
            catch
            {
                _stateMovement.OnEnter<HoneyGoTo>();
                yield break;
            }

        //Проверяем существует ли дающий мёд, если нет, дальше ищем мёд
        if (honeyGiver.Equals(null))
        {
            _stateMovement.OnEnter<HoneyGoTo>();
            yield break;
        }
        //Проверяем заполненность хранилища мёда пчелы, если оно заполнено летим в улей Hive
        else if (сurrentHoneyStocks >= _parameters.maxHoneyStocks)
        {
            _stateMovement.OnEnter<GoTo>();
            yield break;
        }

        yield return new WaitForSeconds(waitTime);
    }
}

这是直接从花中提取蜂蜜:

public float HoneyGive(GameObject whosAsking, float honey)
{
    if (!(!(honeyGetters.Contains(whosAsking)) ^ !canCollectHoney))
        throw new ArgumentException("This object can't take honey. The seats are occupied or it doesn't have an IHoneyConsumer");

    if (сurrentHoneyStocks - honey >= 0)
    {
        сurrentHoneyStocks = сurrentHoneyStocks - honey;
        return honey;
    }
    else
    {
        Destroy(transform.root.gameObject);
        return сurrentHoneyStocks;
    }
}

现在关于这件事的一个问题:

        Destroy(transform.root.gameObject);
        return сurrentHoneyStocks;

让我吃惊的第一件事是return泷把剩下的蜂蜜还给我了。这让我很开心。让我感到不安的是,在那之后,当检查 honeyGiver 的存在时:

        //Проверяем существует ли дающий мёд, если нет, дальше ищем мёд
        if (honeyGiver.Equals(null))

honeyGiver 仍然存在,因此,会发生额外的协程调用,因此蜜蜂会在原地挂起一个额外的滴答声。

好的,我会不用剩下的蜂蜜,没有必要返回一些东西,但是我可以以某种方式立即删除该对象,这样就不会有额外的调用?

unity3d
  • 1 个回答
  • 10 Views
Martin Hope
Виталий Тодоров
Asked: 2022-05-10 15:42:27 +0000 UTC

如何确保对撞机不翻转?

  • 0

这里我们有一个物体,别人不应该通过它,重力作用在它上面是可取的,但是当它与其他物体碰撞时,它不应该翻身。

unity3d
  • 1 个回答
  • 10 Views
Martin Hope
Виталий Тодоров
Asked: 2022-04-21 05:31:46 +0000 UTC

反序列化后,ScriptableObject 类未强制转换为派生类

  • 2

我正在尝试在游戏中实现保存。我把变量的值保存在一个继承自ScriptableObject的类中

public class HealthAndDeathLocaStorage : ScriptableObject
{
    [SerializeField]
    private float health;
    [SerializeField]
    private bool death;

    public float Health { get => health; set => health = value; }
    public bool Death { get => death; set => death = value; }
}

我将此类的一个实例放在视图字典Dictionary<string, ScriptableObject>中。我使用库将此字典序列化为 Json Newtonsoft:

public void Save(object saveObject, string fileName)
{
    string strJsonData = JsonConvert.SerializeObject(saveObject);

    File.WriteAllText(_filePath + fileName, strJsonData);
}

反序列化后:

public Dictionary<string, ScriptableObject> Load(string fileName)
{
    //Чтение из файла
    string strJsonData = File.ReadAllText(_filePath + fileName);

    return JsonConvert.DeserializeObject<Dictionary<string, ScriptableObject>>(strJsonData);
}

当我从字典中获取对象并尝试将其转换为 HealthAndDeathLocaStorage 类型时:

HealthAndDeathLocaStorage locaStorage = ScriptableObject.CreateInstance<HealthAndDeathLocaStorage>();
locaStorage = (HealthAndDeathLocaStorage) SaveLoadAllComponent.Get(this, "healthAndDeath");

我收到一个错误:Specified cast is not valid。这是一个需要解决的问题。

我读到,由于继承人缺少某些东西,可能会发生这种错误。在实现保存的这个选项之前,我使用了 JsonUtility 实用程序函数(但由于 JsonUtility 不序列化字典,我决定切换到 Newtonsoft 库)。使用 JsonUtility 时,我创建了一个中间类,在其中定义了引发异常的属性的空白,并且已经在继承人中重新定义了所有内容。

public class StoringLocalData : ScriptableObject
{
    public virtual float Health
    {
        set { throw new ArgumentException("У данного объекта не сущетствует свойства Health"); }
        get { throw new FieldAccessException("У данного объекта не сущетствует свойства Health"); }
    }

    public virtual bool tDeath
    {
        set { throw new ArgumentException("У данного объекта не сущетствует свойства Death"); }
        get { throw new FieldAccessException("У данного объекта не сущетствует свойства Death"); }
    }
}

但

  1. 这种方法在我看来是一根拐杖;
  2. 在此实现中,具有中间类的选项不起作用。

使用当前的序列化库,异常不会写入pig,当它们被序列化时,会引发这些异常并中断序列化。因此,我尝试制作这样的中间类:

public class LocalStorage : ScriptableObject
{
    [SerializeField]
    private float health;
    [SerializeField]
    private bool death;

    public virtual float Health
    {
        set;
        get;
    }

    public virtual bool Death
    {
        set;
        get;
    }
}

因此,HealthAndDeathLocaStorage 不再继承自 ScriptableObject,而是继承自 LocalStorage。但这并没有解决问题,错误Specified cast is not valid.并没有消失。

c#
  • 1 个回答
  • 10 Views
Martin Hope
Виталий Тодоров
Asked: 2022-03-11 20:17:46 +0000 UTC

如何重命名整个项目中的一个类?

  • 1

是否有可能不爬遍整个项目来寻找什么和在哪里,而只是戳几个按钮,这样无论在哪里使用选定的类,它的名字都会被重命名为一个新的?

unity3d
  • 1 个回答
  • 10 Views
Martin Hope
Виталий Тодоров
Asked: 2022-02-26 00:48:18 +0000 UTC

如果我在主要物体上挂一个刚体,碰撞器对孩子的伤害不会通过

  • 0

我创建了一个空的游戏对象,我在其中创建了另一个空的游戏对象,在上面挂了一个 Collider 并附加了 Health 脚本,伤害通过了。如果我在主要对象上挂一个刚体,伤害不会过去。其实多少钱?

在调试中,脚本没有进入 OnTriggerEnter。

如果 Rigidbody 也使用 Collider 附加到子对象,则伤害会再次传递。

public int maxHealth = 100;
public int currentHealth = 100;
public HealthBar healthBar;

private void Start()
{
    healthBar.SetMaxHealth(maxHealth);
}

private void OnTriggerEnter(Collider other)
{
    Bullet bullet = other.gameObject.GetComponent<Bullet>();

    if (bullet)
    {
        TakeDamage(20);

        if (currentHealth == 0)  Destroy(gameObject);
    }
}

private void TakeDamage(int damege)
{
    currentHealth -= damege;
    healthBar.SetHealth(currentHealth);
}

通常,至少对问题进行一些可视化总比没有好:

在此处输入图像描述

unity3d
  • 2 个回答
  • 10 Views
Martin Hope
Виталий Тодоров
Asked: 2021-11-30 17:07:28 +0000 UTC

获取DataFrame每一列的唯一值

  • 1

为每一列获取唯一值的好方法DataFrame。

数据框: https ://yadi.sk/i/CiNCLc2juUxaXw

我的解决方案:

adult_train_drop = adult_train.drop(['Age', 'fnlwgt', 'Education_Num', 'Capital_Gain', 'Capital_Loss', 'Hours_per_week'], axis=1)
for col in adult_train_drop:
    print(col, ': ', adult_train[col].unique())
    print()

结果:

Workclass :  [' State-gov' ' Self-emp-not-inc' ' Private' ' Federal-gov' ' Local-gov'
 nan ' Self-emp-inc' ' Without-pay' ' Never-worked']

Education :  [' Bachelors' ' HS-grad' ' 11th' ' Masters' ' 9th' ' Some-college'
 ' Assoc-acdm' ' Assoc-voc' ' 7th-8th' ' Doctorate' ' Prof-school'
 ' 5th-6th' ' 10th' ' 1st-4th' ' Preschool' ' 12th']

Martial_Status :  [' Never-married' ' Married-civ-spouse' ' Divorced'
 ' Married-spouse-absent' ' Separated' ' Married-AF-spouse' ' Widowed']

Occupation :  [' Adm-clerical' ' Exec-managerial' ' Handlers-cleaners' ' Prof-specialty'
 ' Other-service' ' Sales' ' Craft-repair' ' Transport-moving'
 ' Farming-fishing' ' Machine-op-inspct' ' Tech-support' nan
 ' Protective-serv' ' Armed-Forces' ' Priv-house-serv']

Relationship :  [' Not-in-family' ' Husband' ' Wife' ' Own-child' ' Unmarried'
 ' Other-relative']

Race :  [' White' ' Black' ' Asian-Pac-Islander' ' Amer-Indian-Eskimo' ' Other']

Sex :  [' Male' ' Female']

Country :  [' United-States' ' Cuba' ' Jamaica' ' India' nan ' Mexico' ' South'
 ' Puerto-Rico' ' Honduras' ' England' ' Canada' ' Germany' ' Iran'
 ' Philippines' ' Italy' ' Poland' ' Columbia' ' Cambodia' ' Thailand'
 ' Ecuador' ' Laos' ' Taiwan' ' Haiti' ' Portugal' ' Dominican-Republic'
 ' El-Salvador' ' France' ' Guatemala' ' China' ' Japan' ' Yugoslavia'
 ' Peru' ' Outlying-US(Guam-USVI-etc)' ' Scotland' ' Trinadad&Tobago'
 ' Greece' ' Nicaragua' ' Vietnam' ' Hong' ' Ireland' ' Hungary'
 ' Holand-Netherlands']

Target :  [' <=50K' ' >50K']

有可能得到类似的结果,但是

  1. 使代码本身更紧凑(一行);
  2. 答案也会更好,也DataFrame类似。
python
  • 1 个回答
  • 10 Views
Martin Hope
Виталий Тодоров
Asked: 2021-11-18 15:55:13 +0000 UTC

如何绘制周名称与数值

  • 0

这是数据集。我想构建一个图表,在该图表上,星期几的名称将分别位于横坐标轴(列weekday)和列值的纵坐标上visits。

python
  • 2 个回答
  • 10 Views
Martin Hope
Виталий Тодоров
Asked: 2020-07-08 14:30:00 +0000 UTC

如何获得位置?

  • 1

我正在研究教材《Android. Programming for Professionals》(2017年第3版),有这么一个地方:

LocationRequest request = LocationRequest.create();
    request.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY);
    request.setNumUpdates(1);
    request.setInterval(0);

    LocationServices.FusedLocationApi
            .requestLocationUpdates(mClient, request, new LocationListener() {
                @Override
                public void onLocationChanged(Location location) {
                    Log.i(TAG, "Got a fix: " + location);
                }
            });

问题是启动后,Location日志中没有消息。也就是说,onLocationChanged程序根本没有落下。

在文档中,我发现此选项用于获取Location:

LocationServices.getFusedLocationProviderClient(getContext())
            .getLastLocation()
            .addOnSuccessListener(getActivity(), new OnSuccessListener<Location>() {
                @Override
                public void onSuccess(Location location) {
                    Log.i(TAG, "Got a fix: " + location);
                }
            });

但他回来了null。

有什么问题?或者有其他方法可以得到Location吗?

android
  • 1 个回答
  • 10 Views
Martin Hope
Виталий Тодоров
Asked: 2020-04-29 13:06:38 +0000 UTC

android studio中是否可以一次重命名整个项目的方法?

  • 0

如果需要重命名方法,有没有办法更改方法的名称,以便在任何地方调用它都会以相同的方式重命名?

具体来说,我有一个方法:

public static Intent newIntent(Context packageContext, UUID crimeId){
    Intent intent = new Intent(packageContext, CrimePagerActivity.class);
    intent.putExtra(EXTRA_CRIME_ID, crimeId);
    return intent;
}

我希望方法的名称以某种方式反映它所属的类的名称,类似于newIntentCPA. 有没有一种方法可以更改方法的名称,而不必寻找所有使用它的地方?

android-studio
  • 1 个回答
  • 10 Views
Martin Hope
Виталий Тодоров
Asked: 2020-01-10 03:07:06 +0000 UTC

如何在 kivy 中使用 action_items 和使用函数的问题

  • -1

有两个问题:

  1. 如何使它在按下按钮时执行该函数(在我的示例中,当按下 Button_1 时,应该执行 hl 函数)?就我而言,结果是一个错误:

    AttributeError:“MainMenu”对象没有属性“hl”

  2. 怎么做到的,当你点击left_action_items时,你会返回到上一个屏幕(嗯,一般如何使用它,例如,当你使用它时,会执行一个函数或变量的重新分配)?我尝试了以下选项:

left_action_items: [['arrow-left', lambda x: app.screen_manager.current = 'Screen_1']]'

并收到:

[['arrow-left', lambda x: app.screen_manager.current = 'Screen_1']]

SyntaxError:无效的语法

我实验过的一个例子:

主要.py:

from kivy.factory import Factory
from kivymd.app import MDApp
from kivy.lang import Builder
from kivy.config import Config
from kivy.core.window import Window
from kivy.uix.screenmanager import Screen

Config.set('graphics', 'resizable', '0')
Window.size = (351, 512)
Builder.load_file('ui.kv')

class MainMenu(Screen):
    def hl(self):
        print('hllo')

class Basic(MDApp):
    def __init__(self, **kvargs):
        super(Basic, self).__init__(**kvargs)
        self.title = "KivyMD Examples - Progress Loader"
        self.screen_manager = Factory.ManagerScreens() 


    def build(self):
        return self.screen_manager


Basic().run()

ui.kv:

<ManagerScreens@ScreenManager>:

    MainMenu:
        id: Screen_1
    Dictionary:
        id: Screen_2

<MainMenu@Screen>:
    name: 'Screen_1'

    BoxLayout:
        orientation: "vertical"
        padding: 30
        spacing: 20
        pos_hint: {'top': 1.6}

        MDFillRoundFlatButton:
            text: "Button_1"
            on_press: root.hl()

        MDFillRoundFlatButton:
            text: "Button_2"
            on_press: app.screen_manager.current = 'Screen_2'    

<Dictionary@Screen>:
    name: 'Screen_2'

    MDToolbar:
        size_hint_y: .08
        title: "Toolbar"
        md_bg_color: app.theme_cls.primary_color
        left_action_items: [['arrow-left', lambda x: x]]
        pos_hint: {'top':1}

    BoxLayout:
        orientation: "vertical"
python
  • 1 个回答
  • 10 Views
Martin Hope
Виталий Тодоров
Asked: 2020-01-05 03:57:23 +0000 UTC

ScrollView 不工作(kivy)

  • 0

我正在学习 kivy,我想从 kivymd 制作一组可滚动的按钮,为此我使用 MDScrollViewRefreshLayout(取自示例)。但是有些按钮是不可见的,可见的不滚动。我想看看使用 ScrollView 的最简单的例子,这样 python 代码和标记是分开的。我找到了一个对我来说很清楚的示例,但是没有单独的标记文件,我无法弄清楚如何获得所需的结果。

在此处输入图像描述

主文件

from kivy.factory import Factory

from kivymd.app import MDApp
from kivy.lang import Builder
from kivy.config import Config
from kivy.core.window import Window

Config.set('graphics', 'resizable', '0')    
Window.size = (351, 512)                     

Builder.load_file('dictionary.kv')

class Basic(MDApp):
    def __init__(self, **kvargs):
        super(Basic, self).__init__(**kvargs)
        self.main = Factory.MainMenu()

    def build(self):
        return self.main

Basic().run()

字典.kv:

MDScrollViewRefreshLayout:
    do_scroll_x: False
    size_hint_y: None
    BoxLayout:
        orientation: "vertical"
        padding: 30
        spacing: 20
        size_hint_y: None
        pos_hint: {"top": -.6}
        MDTextButton:
            text: 'game 1_'
            heigh: dp(60)
            size_hint_y: None
        MDTextButton:
            text: 'game 2'
            heigh: dp(60)
            size_hint_y: None
        MDTextButton:
            text: 'game 3'
            heigh: dp(60)
            size_hint_y: None
        MDTextButton:
            text: "game 4"
            heigh: dp(60)
            size_hint_y: None
        MDTextButton:
            text: 'game 1'
            heigh: dp(60)
            size_hint_y: None
        MDTextButton:
            text: 'game 2'
            heigh: dp(60)
            size_hint_y: None
        MDTextButton:
            text: 'game 3'
            heigh: dp(60)
            size_hint_y: None
        MDTextButton:
            text: "game 4"
            heigh: dp(60)
            size_hint_y: None

        MDTextButton:
            text: 'game 1'
            heigh: dp(60)
            size_hint_y: None
        MDTextButton:
            text: 'game 2'
            heigh: dp(60)
            size_hint_y: None
        MDTextButton:
            text: 'game 3'
            heigh: dp(60)
            size_hint_y: None
        MDTextButton:
            text: "game 4"
            heigh: dp(60)
            size_hint_y: None
        MDTextButton:
            text: 'game 1'
            heigh: dp(60)
            size_hint_y: None
        MDTextButton:
            text: 'game 2'
            heigh: dp(60)
            size_hint_y: None
        MDTextButton:
            text: 'game 3'
            heigh: dp(60)
            size_hint_y: None
        MDTextButton:
            text: "game 4"
            heigh: dp(60)
            size_hint_y: None
kivy
  • 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