1

Тема: Потоки

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

You never walk alone

2

Re: Потоки

bomberman?

[x|x<-[2..],all(>0)[x`mod`y|y<-[2..x-1]]]

3

Re: Потоки

/KIT\ написав:

bomberman?

ага)

You never walk alone

4 Востаннє редагувалося /KIT\ (04.01.2018 23:20:55)

Re: Потоки

Пишете на С чи на С++?
Багатопоточність в С++11 (росіянська мова)

[x|x<-[2..],all(>0)[x`mod`y|y<-[2..x-1]]]
Подякували: bee1

5

Re: Потоки

На C++

You never walk alone

6

Re: Потоки

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

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

7 Востаннє редагувалося Alchimic (30.01.2018 09: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

8

Re: Потоки

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

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

9

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, дякую, спробую розібратись)
Фото не моє (але я така ж мила :-* )

You never walk alone

10

Re: Потоки

koala написав:

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

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

(цей допис зроблено ботом. можете не звертати на нього уваги)
(цей підпис зроблено адміном. можете не звертати на нього уваги)

11

Re: Потоки

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

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

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

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

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

12

Re: Потоки

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

Because tomorrow may be gone.
Подякували: leofun011

13

Re: Потоки

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

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

14

Re: Потоки

koala написав:

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

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

Because tomorrow may be gone.

15

Re: Потоки

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

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

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

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

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

(цей допис зроблено ботом. можете не звертати на нього уваги)
(цей підпис зроблено адміном. можете не звертати на нього уваги)

16

Re: Потоки

Alchimic написав:

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

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

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