• Какие существуют площадки для продажи шаблонов мобильных приложений?

    Denkuwus
    @Denkuwus
    15 y.o
    Маркетплейсы:
    CodeCanyon
    ThemeFores
    Chupamobile
    SellMyApp

    Знаю несколько критериев:

    Качество: убедиться, что шаблон хорошо разработан и имеет высокое качество. Это повысит шансы на покупку.

    Функциональность: убедиться, что шаблон полностью функционален и имеет все заявленные функции

    Документация: предоставить подробную документацию по шаблону, включая инструкции по установке и настройке

    Поддержка: предлагайте поддержку покупателям шаблона по электронной почте или через форум поддержки

    Ценообразование: определить справедливую цену за свой шаблон, исходя из его качества и функциональности
    Ответ написан
    6 комментариев
  • Как импортировать текстуру повторно, или как получить доступ к texture.GetPixel()?

    Denkuwus
    @Denkuwus
    15 y.o
    Чтобы получить доступ к TextureImporter, можно использовать класс AssetImporter:

    using UnityEngine;
    using UnityEditor;
    
    // ...
    
    // Загружаем текстуру
    Texture2D texture = AssetDatabase.LoadAssetAtPath<Texture2D>("Assets/MyTexture.png");
    
    // Получаем импортер ассетов для текстуры
    TextureImporter textureImporter = AssetImporter.GetAtPath(AssetDatabase.GetAssetPath(texture)) as TextureImporter;
    
    // Проверяем корректность импортера текстуры
    if (textureImporter != null)
    {
        // Задаем настройки листа спрайтов
        textureImporter.textureType = TextureImporterType.Sprite;
        textureImporter.spriteImportMode = SpriteImportMode.Multiple;
        textureImporter.mipmapEnabled = false;
        textureImporter.isReadable = true;
    
        // Задаем метаданные листа спрайтов
        TextureImporterSettings settings = new TextureImporterSettings();
        textureImporter.ReadTextureSettings(settings);
        List<SpriteMetaData> metadata = new List<SpriteMetaData>();
        // Add sprite sheet frames here
        settings.spriteMetaData = metadata.ToArray();
        textureImporter.SetTextureSettings(settings);
    
        // Импортируем текстуру
        AssetDatabase.ImportAsset(AssetDatabase.GetAssetPath(texture), ImportAssetOptions.ForceUpdate);
    }


    Код импортирует ресурс текстуры в виде листа спрайтов с указанными метаданными кадра. Для свойства isReadable будет установлено значение true, можно использовать Texture2D.GetPixel() для доступа к пиксельным данным текстуры.

    Чтобы код еще и работал при запуске игры нужно получить доступ к пиксельным данным текстуры во время выполнения, нужно будет установить свойство Read/Write Enabled в настройках импорта текстуры в редакторе Unity перед импортом текстуры.
    Ответ написан
    3 комментария
  • Как редактировать сообщение после ввода пользователя?

    Denkuwus
    @Denkuwus
    15 y.o
    Можно использовать метод edit_message_text класса Updater:

    async def set_id(message: types.Message, state: FSMContext):
        id = message.text
        # Удалить сообщение пользователя
        await message.delete()
        # Редактируем сообщение бота
        await message.bot.edit_message_text(
            chat_id=message.chat.id,
            message_id=message.message_id,
            text='ник изменен'
        )
        # Завершить процесс
        await state.finish()


    Здесь метод edit_message_text используется для редактирования сообщения бота с текстом «ник изменен». Параметры chat_id и message_id используются для указания редактируемого чата и сообщения.
    Ответ написан
  • Как сделать так, чтобы selenium webdriver использовал мои аккаунты?

    Denkuwus
    @Denkuwus
    15 y.o
    from selenium import webdriver
    from selenium.webdriver.common.by import By
    
    # Запустить браузер, я указал хром
    driver = webdriver.Chrome()
    
    # Перейти на страницу стим
    driver.get('https://steamcommunity.com/login/home/')
    
    # Найти элементы формы входа(ниже будет мини гайд)
    username_field = driver.find_element(By.ID, 'steamAccountName')
    password_field = driver.find_element(By.ID, 'steamPassword')
    login_button = driver.find_element(By.ID, 'SteamLogin')
    
    # Вводим свои данные
    username_field.send_keys('YOUR_USERNAME')
    password_field.send_keys('YOUR_PASSWORD')
    
    # Нажать на кнопку войти
    login_button.click()
    
    # Дождаться завершения процесса входа в систему
    # Возможно, придется настроить время ожидания в зависимости от скорости соединения
    time.sleep(5)
    
    # Сохранить куки
    cookies = driver.get_cookies()
    
    # Закрыть браузер
    driver.close()


    После того как куки были сохранены, их можно уже юзать для входа. Для этого можно использовать метод add_cookie класса webdriver.Chrome, чтобы добавить сохраненные файлы cookie в браузер перед переходом на нужную страницу.

    from selenium import webdriver
    
    # Запуск браузера
    driver = webdriver.Chrome()
    
    # Добавить наши сохраненные куки в браузер
    for cookie in cookies:
        driver.add_cookie(cookie)
    
    # Перейти на сайт
    driver.get('https://steamcommunity.com/market/')
    
    # Теперь при входе, страница должна быть авторизована


    Мини гайд на элементы форма входа:

    Открыть страницу входа в Steam в веб-браузере.
    Щелкнуть правой кнопкой мыши форму входа и выбрать «Проверить» или «Проверить элемент» в контекстном меню.
    Окно инструментов разработчика должно открыться и выделить выбранный элемент в HTML-коде.
    Найдите атрибут id элемента в коде HTML.

    Например, чтобы найти атрибут id поля имени пользователя, можно найти тег ввода, который представляет поле, и найти атрибут id в теге:

    <input type="text" class="input_text login_input_text" name="username" id="steamAccountName" placeholder="Username" tabindex="1">


    В этом примере атрибутом id поля имени пользователя является steamAccountName.

    И тем самым нужно использовать аналогичный процесс, чтобы найти атрибуты id других элементов формы входа, таких как поле пароля и кнопка входа.
    Ответ написан
    Комментировать
  • Как исправить логическую ошибку в коде?

    Denkuwus
    @Denkuwus
    15 y.o
    Можно попробовать немного изменить оператор if

    import random
    
    bombID = sorted(random.sample(range(0, 25), 5))
    
    for y in range(5):
         markup = []
    
         for x in range(5):
             idx = y * 5 + x
             if idx in bombID:
                 markup.append(f'bomb{idx}')
             else:
                 markup.append(str(idx))
         print(markup)


    Теперь оператор if должен быть истинным только в том случае, если текущий индекс (idx) является одним из чисел в списке bombID
    Ответ написан
    1 комментарий
  • В чем разница между получением доступа к компоненту объекта через .transform и .gameObject?

    Denkuwus
    @Denkuwus
    15 y.o
    По сути строки делают одно и тоже, и на выходе будет одно, разница лишь в том что первая строка обращается к компоненту Player через компонент Transform, а вторая строка обращается к компоненту Player напрямую через GameObject
    Ответ написан
    2 комментария
  • Как разместить два элемента в ряд?

    Denkuwus
    @Denkuwus
    15 y.o
    Можно установить для свойства width элемента .custom-file значение 100%, а для свойства display — значение flex, чтобы заполнить оставшееся пространство без переноса элемента. Еще можно установить для свойства align-items значение center, чтобы вертикально выровнять элементы внутри элемента .custom-file.

    <div class="col-lg-12 agreement-number-group-form">
        <label>@localizator["ProfilePhoto"]</label>
        <div style="border: 1px solid #cccccc; padding: 5px;">
            <img id="profile-image-preview" src="data:image;base64,@System.Convert.ToBase64String(Model.User.Avatar)" style="width: 40px; height: 40px;" />
            <div class="custom-file" style="display: flex; width: 100%; align-items: center;">
                <input type="file" class="custom-file-input" accept=".jpg" id="upload-avatar" required>
                <label id="profile-image-name-label" class="custom-file-label" for="upload-avatar">@localizator["ChooseFile..."]</label>
            </div>
            <br />
            <input type="button" class="btn btn-success btn-block d-none" id="upload-profile-image-btn" value="@localizator["Upload"]" />
        </div>
    </div>
    Ответ написан
  • Как распознать пустой спрайт в Unity?

    Denkuwus
    @Denkuwus
    15 y.o
    Чтобы распознать пустой спрайт с помощью Unity, можно использовать свойство SpriteRenderer.color, чтобы проверить, является ли спрайт прозрачным:

    using UnityEngine;
    
    public class SpriteChecker : MonoBehaviour
    {
        // Компонент рендеринга спрайтов
        private SpriteRenderer renderer;
    
        void Start()
        {
            // Получить компонент рендеринга спрайтов
            renderer = GetComponent<SpriteRenderer>();
    
            // Проверить, пуст ли спрайт
            if (renderer.color.a == 0)
            {
                Debug.Log("Спрайт пустой!");
            }
            else
            {
                Debug.Log("Спрайт не пустой.");
            }
        }
    }


    Здесь свойство SpriteRenderer.color.a используется для проверки прозрачности спрайта. Если прозрачность равна 0, то спрайт считается пустым. Если прозрачность не равна 0, спрайт считается непустым.
    Ответ написан
  • Как сделать так чтобы после убийства врагов начиналася другая сцена в Unity?

    Denkuwus
    @Denkuwus
    15 y.o
    Можно использовать функцию SceneManager.LoadScene():

    Надо создать сценарий, который будет обрабатывать логику перехода к следующей сцене. Можго прикрепить этот скрипт к пустому игровому объекту в сцене:

    using UnityEngine;
    using UnityEngine.SceneManagement;
    
    public class SceneTransition : MonoBehaviour
    {
        // Имя следующей сцены для загрузки
        public string nextScene;
    
        // Обновление вызывается один раз за кадр
        void Update()
        {
            // Проверить, все ли враги убиты
            if (EnemiesKilled())
            {
                // Загрузить следующую сцену
                SceneManager.LoadScene(nextScene);
            }
        }
    
        // Возвращает true, если все враги убиты, иначе false
        bool EnemiesKilled()
        {
            // Реализуй эту функцию, чтобы проверить, все ли враги были убиты.
            return true;
        }
    }


    В редакторе Unity нужно поставить значение переменной nextScene на имя сцены, которую надо загрузить после убийства врагов.

    В функции EnemiesKilled() реализуй логику проверки того, все ли враги убиты. Можно использовать счетчик, чтобы отслеживать количество убитых врагов, или можное использовать логический флаг, чтобы указать, все ли враги были уничтожены.

    Когда все враги будут убиты, будет вызвана функция SceneManager.LoadScene() и будет загружена следующая сцена.
    Ответ написан
    Комментировать
  • Как исправить ошибку: _tkinter.TclError: image doesn't exist?

    Denkuwus
    @Denkuwus
    15 y.o
    Можно использовать класс PhotoImage из модуля tkinter:

    import tkinter as tk
    from PIL import ImageTk
    
    root = tk.Tk()
    
    # Загрузить изображение с помощью модуля ImageTk
    image = ImageTk.PhotoImage(file='win10button.png')
    
    # Создать кнопку с изображением
    win10 = tk.Button(root, image=image, command=lambda: print('test'))
    win10.place(x=0, y=0)
    
    root.mainloop()


    Код загружает файл изображения win10button.png с помощью функции ImageTk.PhotoImage(), и создает кнопку tkinter с изображением с помощью функции tk.Button().
    Ответ написан
    Комментировать
  • Как изменить время из одного часового пояса в другой?

    Denkuwus
    @Denkuwus
    15 y.o
    Можно использовать либру pytz

    import pytz
    import datetime
    
    # Разобрать исходную строку даты
    mess_date = datetime.datetime.strptime("2023-01-02 18:01:23+00:00", "%Y-%m-%d %H:%M:%S%z")
    
    # Установить часовой пояс на UTC+5.
    tz = pytz.timezone("Etc/GMT-5")
    
    # Конвертировать время в новый часовой пояс
    mess_date_utc5 = tz.normalize(mess_date.astimezone(tz))
    
    # Формат даты в новом часовом поясе
    format_date = mess_date_utc5.strftime("%d-%m-%Y %H:%M")
    
    print(format_date)  # На выходе получится: "02-01-2023 18:01"


    Код сначала анализирует исходную дату функцией datetime.datetime.strptime(). Затем устанавливает часовой пояс в UTC+5, используя функцию pytz.timezone(). Затем время переводит в новый часовой пояс с помощью astimezone(), а дата форматируется с помощью метода strftime().
    Ответ написан
  • Какие есть более мощные материнские платы на замену на Lenovo IdeaPad 3 15ada05?

    Denkuwus
    @Denkuwus
    15 y.o
    В ноутах вроде как нет возможности заапгрейдить плату, и они разрабатываются специально для модели ноутбука, в которой они используются, и не взаимозаменяемы с другими моделями или брендами.
    То есть один из вариков это купить новый ноут поддерживающий большее количество озу.
    Ответ написан
    Комментировать
  • Как сделать систему авторизации с помощью php?

    Denkuwus
    @Denkuwus
    15 y.o
    Тут mysqli_query() вызывается только с одним параметром, но ожидает как минимум два параметра. Для функции mysqli_query() надо подключения к серверу MySQL в качестве первого параметра и строки запроса в качестве второго параметра.
    Нужно передать соединение с сервером MySQL в качестве первого параметра функции mysqli_query(). Можно использовать переменную $mysqli для получения соединения:

    $result = mysqli_query($mysqli, "SELECT * FROM `user` WHERE `login` = '$login' OR `mail` = '$email'");
    Ответ написан
    Комментировать
  • Python, как по части ключа JSON получить саму строку?

    Denkuwus
    @Denkuwus
    15 y.o
    Да
    import json
    
    # Загрузить данные JSON из файла или строки
    json_data = json.load(open('data.json'))
    
    # Перебрать ключи в данных JSON
    for key in json_data:
        # Проверить, содержит ли ключ определенную строку
        if 'specific_string' in key:
            # Получить саму строку
            string = key.split('specific_string')[1]
            print(string)


    Код загружает данные JSON из файла с именем data.json, а затем перебирает ключи в данных. Если ключ содержит строку 'specific_string', он разделяет ключ на эту строку и получает часть после строки. Выводя строку в консоль
    Ответ написан
  • Стоить ли брать 3060ti на GDDR6X памяти?

    Denkuwus
    @Denkuwus
    15 y.o
    Если так посмотреть, то некоторые пользователи сообщали о проблемах с перегревом, в то время как у других их не было. Может дело в разнице их охлаждения или рукожопости на сборке.
    Вообще, можно сделать андервольтинг и в целом особо не парится с температурой, тем самым карточка приобретет отличную цену и качество за свои деньги, или попросту улучшить охлад, но что уже влетит в копеечку
    Ответ написан
  • Как найти записи за определенный используя в tortoise?

    Denkuwus
    @Denkuwus
    15 y.o
    Можно использовать метод .filter() в модели Activity и указать аргумент created_at__gte (больше или равно) с нужной датой.

    import datetime
    
    n_days_ago = datetime.datetime.now() - datetime.timedelta(days=n)
    activity_records = await Activity.filter(created_at__gte=n_days_ago).all()


    Он извлечет все записи Activity, в которых поле created_at больше или равно n дням назад.

    Можно еще юзать метод .filter() с другими операторами сравнения, такими как __lt (меньше чем), __lte (меньше или равно), __gt (больше чем) и __gte (больше или равно). Например, чтобы получить записи между двумя конкретными датами, можн использовать операторы __gte и __lt:

    start_date = datetime.datetime(2022, 1, 1)
    end_date = datetime.datetime(2022, 12, 31)
    activity_records = await Activity.filter(created_at__gte=start_date, created_at__lt=end_date).all()


    Благодаря этому можно получить все записи Activity, в которых поле created_at больше или равно start_date и меньше end_date.
    Ответ написан
    Комментировать
  • Что не так в моём коде Python?

    Denkuwus
    @Denkuwus
    15 y.o
    Похоже, ошибка, с которой вы столкнулись, вызвана тем, что функция pygame.display.flip() вызывается до того, как режим отображения был установлен с помощью pygame.display.set_mode().

    Чтобы решить эту проблему, вам нужно переместить вызов pygame.display.set_mode() перед вызовом pygame.display.flip(). Это гарантирует, что режим отображения будет установлен до обновления экрана, и устранит ошибку «видеосистема не инициализирована».

    Вот пример того, как вы можете изменить код, чтобы исправить ошибку:

    import pygame
    
    # Initialize pygame
    pygame.init()
    
    # Set window size and title
    screen_width, screen_height = 640, 480
    screen = pygame.display.set_mode((screen_width, screen_height))
    pygame.display.set_caption('Flappy Triangle')
    
    # Set colors
    red = pygame.Color(255, 0, 0)
    blue = pygame.Color(0, 0, 255)
    white = pygame.Color(255, 255, 255)
    
    # Set font
    font = pygame.font.Font(None, 36)
    
    # Set main character size
    character_size = 50
    
    # Set gravity
    gravity = 0.25
    
    # Set main character initial position
    character_x, character_y = screen_width / 2, screen_height / 2
    
    # Set main character speed
    character_speed = 0
    
    # Set game over flag
    game_over = False
    
    # Set points
    points = 0
    
    # Set clock to control frame rate
    clock = pygame.time.Clock()
    
    while not game_over:
        # Handle events
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                game_over = True
            if event.type == pygame.KEYDOWN:
                if event.key == pygame.K_SPACE:
                    character_speed = -5
                    points += 1 # Increase points by 1 for each jump
    
        # Update main character position
        character_y += character_speed
        character_speed += gravity
    
        # Check if main character has reached the bottom or top of the screen
        if character_y > screen_height or character_y < 0:
            points = 0 # Reset points to 0 when main character dies
            game_over = True
    
        # Draw the screen
        screen.fill((0, 0, 0))
        pygame.draw.polygon(screen, blue, [[character_x, character_y], [character_x + character_size, character_y + character_size / 2], [character_x, character_y + character_size]]) # n.m.
        pygame.draw.line(screen, red, (0, 0), (screen_width, 0), 5)
        pygame.draw.line(screen, red, (0, screen_height), (screen_width, screen_height), 5)
        points_text = font.render(f'Points: {points}', True, white)
        screen.blit(points_text, (10, 10))
    
        # Limit frame rate to 60 FPS
        clock.tick(60)
    
        # Update the screen
        pygame.display.flip()
    
    # Quit pygame
    Ответ написан
    Комментировать
  • Как прикрутить к сайту логин по QR из Яндекс.Ключа?

    Denkuwus
    @Denkuwus
    15 y.o
    Невозможно создать собственный QR-код, который позволит вам войти на свой сайт с помощью Яндекс.Ключа, поскольку QR-код, предоставленный Яндекс.Ключом, относится к их системе аутентификации и не может использоваться для внешних сайтов.

    Чтобы использовать Яндекс.Ключ для аутентификации на вашем сайте, вам потребуется использовать API Яндекс.Ключа — набор инструментов и протоколов, предоставляемых Яндексом для интеграции Яндекс.Ключа со сторонними сайтами и приложениями.

    Чтобы начать работу с API Яндекс.Ключа, вам необходимо зарегистрировать учетную запись Яндекса и зарегистрировать свое приложение в Яндексе. Это даст вам доступ к необходимым API-ключам и документации для интеграции Яндекс.Ключа на ваш сайт.

    После того, как вы зарегистрировали свое приложение и получили необходимые API-ключи, вы можете использовать API Яндекс.Ключа для аутентификации пользователей на вашем сайте с помощью сервиса Яндекс.Ключ. Обычно это включает создание QR-кода, который пользователи могут сканировать с помощью своего приложения Яндекс.Ключ, а затем проверку запроса аутентификации на вашем сервере с помощью точки доступа Яндекс.Ключа.
    Ответ написан
    Комментировать
  • Вопрос в чем проблема, почему мне выдает эту ошибку NullReferenceException: Ссылка на объект не указывает на экземпляр объекта Gun.Update() (в Asset?

    Denkuwus
    @Denkuwus
    15 y.o
    Сообщение об ошибке «NullReferenceException: ссылка на объект не указывает на экземпляр объекта» указывает на то, что вы пытаетесь получить доступ к объекту или свойству объекта, который имеет значение null или не установлен.

    В предоставленном вами сценарии есть несколько мест, где вы используете объект, не проверяя сначала, является ли он нулевым. Одним из примеров является следующая строка кода:

    player = GameObject.FindGameObjectWithTag("Player").GetComponent<Player>();


    Здесь вы пытаетесь получить компонент Player игрового объекта с тегом «Player», но вы не проверяете, существует ли игровой объект или существует ли компонент Player. Если игровой объект с тегом Player не существует или существует, но не имеет присоединенного компонента Player, эта строка кода вызовет исключение NullReferenceException.

    Чтобы исправить эту ошибку, вы должны убедиться, что объект или компонент, к которому вы пытаетесь получить доступ, не имеет значения null, прежде чем использовать его. Например, вы можете сделать что-то вроде этого:

    GameObject playerGameObject = GameObject.FindGameObjectWithTag("Player");
    if (playerGameObject != null)
    {
        player = playerGameObject.GetComponent<Player>();
        if (player != null)
        {
            // если player не нулевой, вы можете использовать его здесь
        }
        else
        {
            // если player пуст, обработайте ошибку
        }
    }
    else
    {
        // если playerGameObject имеет значение null, обработайте ошибку
    }


    Вы также должны проверять наличие нулевых значений при доступе к другим объектам или компонентам в вашем скрипте, таким как джойстик, пуля и точка выстрела.
    Ответ написан
    Комментировать
  • Типизировать src,The expected type comes from property 'src' which is declared here on type?

    Denkuwus
    @Denkuwus
    15 y.o
    Эта ошибка, вероятно, вызвана ошибкой типа в вашем коде. В TypeScript атрибут src элемента img должен иметь тип string, но вы пытаетесь присвоить ему значение неизвестного типа.

    Чтобы исправить эту ошибку, вам нужно убедиться, что значение, которое вы присваиваете атрибуту src, является строкой. В этом случае похоже, что вы импортируете файл изображения и пытаетесь использовать его в качестве атрибута src. Для этого вам нужно будет указать правильный путь к файлу изображения.

    Например, если файл изображения находится по адресу src/assets/empty-cart.png, вы можете обновить свой код, чтобы он выглядел следующим образом:

    import React from 'react';
    import { Link } from 'react-router-dom';
    
    const CartEmpty: React.FC = () => {
       return(
         <>
           <div className='cart cart--empty'>
             <h2>Cart is empty :(</h2>
             <p>
               Most likely, you haven't ordered pizza yet.<br />
               in order to order pizza, go to the main page.
             </p>
             <img src='/src/assets/empty-cart.png' />
             <Link to='/'className='button button--black'>
               <span>Go Back</span>
             </Link>
           </div>
         </>
       );
    }
    
    export default CartEmpty;


    Это должно исправить ошибку типа и позволить вам использовать изображение в качестве атрибута src элемента img.
    Ответ написан