User Tag List

Страница 45 из 45 ПерваяПервая ... 4142434445
Показано с 441 по 445 из 445

Тема: Пишем игры под РК подобные

  1. #441

    Регистрация
    26.11.2021
    Адрес
    г. Санкт Петербург
    Сообщений
    192
    Спасибо Благодарностей отдано 
    32
    Спасибо Благодарностей получено 
    133
    Поблагодарили
    66 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Hammer Посмотреть сообщение
    ...смотря для какого разрешения.
    При псевдографике 2х3 точки пальмира выжимает 140х120 точек. Функция на си выглядит вот так...
    Код:
    // Быстрый алгоритм Брезенхэма для линий
    void draw_line(uint8_t x0, uint8_t y0, uint8_t x1, uint8_t y1) {
    int16_t dx;
    int8_t dy;
    char sx;
    char sy;
    int err;
    // Вычисляем dx = abs(x1 - x0)
        if(x1 >= x0) {
            dx = x1 - x0;
            sx = 1;
        } else {
            dx = x0 - x1;
            sx = -1;
        }
        
        // Вычисляем dy = -abs(y1 - y0)
        if(y1 >= y0) {
            dy = -(y1 - y0);
            sy = 1;
        } else {
            dy = -(y0 - y1);
            sy = -1;
        }
            err = dx + dy;
       while(1) {
            set_pixel_2x3(x0, y0); //  оптимизированная функция
            
            if(x0 == x1 && y0 == y1) break;
            
            int e2 = err<<1;
            if(e2 >= dy) {
                err += dy;
                x0 += sx;
            }
            if(e2 <= dx) {
                err += dx;
                y0 += sy;
            }
        }
    }
    Как видишь инт уже нужен для err и для вычисления dx. К тому же нужно понимание что есть знаковые переменные.
    Радио86 рк (Пальмира), Электроника кр04, Поиск 1

  2. #442

    Регистрация
    08.12.2023
    Адрес
    г. Жуковский
    Сообщений
    282
    Спасибо Благодарностей отдано 
    53
    Спасибо Благодарностей получено 
    149
    Поблагодарили
    45 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Ведущий_специалист Посмотреть сообщение
    выжимает 140х120 точек
    Ну и отлично, каждая координата значит занимает один байт. Но алгоритм чудовищно долгий.

  3. #443

    Регистрация
    11.04.2023
    Адрес
    г. Ташкент, Узбекистан
    Сообщений
    183
    Спасибо Благодарностей отдано 
    57
    Спасибо Благодарностей получено 
    87
    Поблагодарили
    41 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Lightbulb Затравочный пример скоростного построения линий

    Пусть не смущает скорость и артефакты при запуске.
    Это - достаточно скоростной алгоритм построения линий по дельта-таблице через стек.
    Вариант A выводит просто звёздочки.
    Вариант B выводит блочную псевдографику.

    Вариант C интерактивно рисует линию световым пером Emu80: Клавиша A выставляет позицию X1Y1, клавиша B - позицию X2Y2.
    Скорость отрисовки линии из точки 1.1 в точку 155,59 варьируется примерно от 64664 до 64981 такта - зависит от попадания в циклы ПДП.
    Из расчёта 1,777 МГц процессора получаем не более 27 линий на 156 пунктов каждая.

    P.S.: Ниже - демонстрация для Партнёра с исходным кодом.
    Клавиши F1-F5 выбирают вершину фигуры, световое перо / мышь - перемещают вершину.
    Цикл DRAW плохо оптимизирован и сильно тормозит.
    Но, ощутимо быстрее PLOT-LINE Бейсика.
    Вложения Вложения
    Последний раз редактировалось Alikberov; 05.09.2025 в 19:30.
    Электроника КР-03; ZX-Spectrum "Ленинград-48"; Atari-130XE; Поиск-1...

    Этот пользователь поблагодарил Alikberov за это полезное сообщение:

    yevrowl(05.12.2025)

  4. #444

    Регистрация
    11.04.2023
    Адрес
    г. Ташкент, Узбекистан
    Сообщений
    183
    Спасибо Благодарностей отдано 
    57
    Спасибо Благодарностей получено 
    87
    Поблагодарили
    41 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Lightbulb Постропие линии "жуком" через стек

    Нажатие любой клавиши замедляет движение, чтобы рассмотреть отдельные детали или подморозить координату:
    1. «X1»
    2. «Y1»
    3. «X2»
    4. «Y2»
    Вложения Вложения
    Электроника КР-03; ZX-Spectrum "Ленинград-48"; Atari-130XE; Поиск-1...

  5. #445

    Регистрация
    11.04.2023
    Адрес
    г. Ташкент, Узбекистан
    Сообщений
    183
    Спасибо Благодарностей отдано 
    57
    Спасибо Благодарностей получено 
    87
    Поблагодарили
    41 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Lightbulb Бейсик-Микрон с ускоренной LINE-графикой

    Вашему вниманию представляю собственную маленькую доработку с ускоренным алгоритмом оператора LINE.
    В архиве - собственно файл Бейсика и маленькая демонстрация.
    Особенностью также является имитация двухслойного буфера экрана - текст не затирается.

    P.S.: Математику никто не ускорял и после муара придётся дождаться построения всех фаз вращающейся фигуры.
    P.P.S.: Можете запустить листинг на обычном Микроне, чтобы сравнить и оценить производительность оператора LINE.
    Вложения Вложения
    Электроника КР-03; ZX-Spectrum "Ленинград-48"; Atari-130XE; Поиск-1...

    Этот пользователь поблагодарил Alikberov за это полезное сообщение:

    yevrowl(05.12.2025)

Страница 45 из 45 ПерваяПервая ... 4142434445

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Игры под Spec256
    от Spectramine в разделе Игры
    Ответов: 184
    Последнее: 24.07.2025, 13:42
  2. Игры под джойстик
    от Underground1 в разделе PC-совместимые компьютеры
    Ответов: 4
    Последнее: 21.12.2022, 20:14
  3. Игры под ZX-Poly
    от Raydac в разделе Игры
    Ответов: 21
    Последнее: 16.11.2019, 16:52
  4. Пишем на ассемблере под эмулятором
    от GM BIT в разделе Для начинающих
    Ответов: 76
    Последнее: 15.07.2016, 20:04
  5. хорошие игры под 48k
    от шин в разделе Игры
    Ответов: 16
    Последнее: 23.12.2007, 08:25

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •