1

Тема: Потоки

Доброго вечора чи вже скоріше ночі) Тут така проблемка у мене (гра в консолі, да): рухається персонаж, а рухається він за допомогою стрілок з клавіатури. Коли натискаєш Enter, на екрані повинна з'явитись бомба, а через деякий час вибухнути, а персонаж весь цей час може рухатись, тобто це все одночасно. Як це зробити? Я вже заплуталась, в моїй голові каша %) Допоможіть, будь ласка)

2 Востаннє редагувалося /KIT\ (08.07.2021 13:18:15)

Re: Потоки

bomberman?

3

Re: Потоки

/KIT\ написав:

bomberman?

ага)

4

Re: Потоки

На C++

5

Re: Потоки

Вам не потрібні потоки, вам треба в циклі перевіряти поточний час і стан клавіатури

Подякували: sensei, bee, М18х003

6 Востаннє редагувалося Alchimic (30.01.2018 08:12:36)

Re: Потоки

дуже просто. робиш його класом. описуєш функціонал.  робиш клас аніматор... там ще бомбу. підключаєш до аніматора. і все рухається по оперейт. клавіші считуєш окремо і обробляєш.

class pers
{
    public:
        operete();
        doleft();
        doright();
    private:
        int x, y;
        draw();
}
class bomb
{
    public:
        operete();
    private:
        draw();
        boolean OnExplosion;
        int x, y, t;
}
class animator
{
    public:
        animate();
        addbomb(bomb);
        addpers(pers);
    private:
        pers[] perses;
        bomb[] bombs;
}

приблизно понятно. можна узагальнити в один абстракт animation. класи bomb and pers.

Подякували: bee1

7

Re: Потоки

Пане Alchimic, якщо не помітили, питання було саме в тому, як зчитувати клавіші, а не як організувати код у класи.

Подякували: varkon, bee2

8

Re: Потоки

Прихований текст
Alchimic написав:

а фото твоє? дуже просто. робиш його класом. описуєш функціонал.  робиш клас аніматор... там ще бомбу. підключаєш до аніматора. і все рухається по оперейт. клавіші считуєш окремо і обробляєш.

class pers
{
    public:
        operete();
        doleft();
        doright();
    private:
        int x, y;
        draw();
}
class bomb
{
    public:
        operete();
    private:
        draw();
        boolean OnExplosion;
        int x, y, t;
}
class animator
{
    public:
        animate();
        addbomb(bomb);
        addpers(pers);
    private:
        pers[] perses;
        bomb[] bombs;
}

приблизно понятно. можна узагальнити в один абстракт animation. класи bomb and pers.

Alchimic, дякую, спробую розібратись)
Фото не моє (але я така ж мила :-* )

9

Re: Потоки

koala написав:

Пане Alchimic, якщо не помітили, питання було саме в тому, як зчитувати клавіші, а не як організувати код у класи.

та як считувати... звичайно- getch(). А краще заюзати 2д двіжок якись.

10

Re: Потоки

Alchimic написав:
koala написав:

Пане Alchimic, якщо не помітили, питання було саме в тому, як зчитувати клавіші, а не як організувати код у класи.

та як считувати... звичайно- getch(). А краще заюзати 2д двіжок якись.

Ви пропонуєте зчитувати getch-ем і паралельно із цим щось рухати? Удачі :)

Подякували: LoganRoss, Betterthanyou, leofun013

11

Re: Потоки

Якщо консолька, то можна обійтися без потоків, бо постійно перемальовування буде і обробку клавіш можна засунути в цикл. Але якщо пишете для вінди, подивіться GetAsyncKeyState(). Функція фіксує зміни стану клавіші з моменту останнього виклику.

Подякували: leofun011

12

Re: Потоки

Пане LoganRoss, це некропост. Тема давно розібрана, автор отримав відповідь, просто один тип бажає залишити всюди своє останнє слово.

Подякували: LoganRoss1

13

Re: Потоки

koala написав:

Пане LoganRoss, це некропост. Тема давно розібрана, автор отримав відповідь, просто один тип бажає залишити всюди своє останнє слово.

Пардон, давно не заходив, не подивився на дату створення теми.

14

Re: Потоки

koala написав:
Alchimic написав:
koala написав:

Пане Alchimic, якщо не помітили, питання було саме в тому, як зчитувати клавіші, а не як організувати код у класи.

та як считувати... звичайно- getch(). А краще заюзати 2д двіжок якись.

Ви пропонуєте зчитувати getch-ем і паралельно із цим щось рухати? Удачі :)

а в чому проблема затримка консолі... так це в іншому потоці . считуй чим хочеш. але в іншому потоці.

15

Re: Потоки

Alchimic написав:

а в чому проблема затримка консолі... так це в іншому потоці . считуй чим хочеш. але в іншому потоці.

Удачі, пане, удачі. Консольне введення буферизується, доки Enter не натиснете - getch нічого не отримає. А якщо ще й в два потоки спробуєте читати... пісня буде, не програма.

Подякували: Betterthanyou, sensei2