4 / 4 / 1
Регистрация: 18.08.2008
Сообщений: 73
1

Пишу игру "змейка". Есть вопрос по ней

15.10.2008, 20:11. Показов 3715. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Я сейчас пишу игру "змейка". (в консоли), но возникла одна проблема. Направление движения от пользователя я принимаю так: раз в секунду запускаю getch(). Если пользователь ничего не вводит, тогда вся программа останавливается, т. е. операторы, идущие дальше, не выполняются, пока пользоваеть что-либо не вводит. Если так и оставить, игрок сможет мухлевать: не нажимать никакую клавишу и тем самым приостановливать ход исполнения игры. Как этого избежать? Может, есть какой-то другой оператор, кроме getch() для приёма данных от пользователя?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.10.2008, 20:11
Ответы с готовыми решениями:

Создал игру(змейка в консоли) есть несколько неточностей
Проблемы: 1. при съедании фрукта игра заканчивается 2 всё мигает настолько, что у меня...

Поправить игру ЗМЕЙКА
Всем привет. Решил переписать код с си++ на c# в рамках обучения - не более того (делаю по данному...

дописать игру змейка
Народ, нужна помощь. Думаю есть люди который помогут. Короче, мне в школе надо сделать работу...

Пишу игру
Хотел бы найти людей, которые поддержали бы идею создания физической игры жанра sandbox Суть игры...

пишу игру:D
Ребят,какую можно написать простую консольную игрушку? а то вообще в голову ничего не лезет!

5
365 / 68 / 2
Регистрация: 25.09.2008
Сообщений: 401
16.10.2008, 14:53 2
твоя ошибка в том, что ты пытаешься использовать однопоточный режим, ИМХО в одном потоке красиво реализовать подобное приложение нельзя+)
создай два потока, один поток для отображения того что делает змейка, второй для приема информации от пользователя+)
(как конкретно это реализуется зависит от ОС...)
0
6139 / 1897 / 14
Регистрация: 07.07.2008
Сообщений: 10,417
16.10.2008, 15:46 3
Можно в однопоточном. Надопросто проверять нажата-ли клавиша. А как конкретно это сделать не скажу потому что не помню.
0
365 / 68 / 2
Регистрация: 25.09.2008
Сообщений: 401
16.10.2008, 17:04 4
могу ошибаться, по моему можно проверить, нажата ли клавиша, считав информацию из входного потока in (уже непомню точно как это должно выглядеть, т.к. сями давно не занимался...+) помниться что там есть потоки in и out, которые поидее могут помочь с этим+) )
но имхо 2 потока всётки красивее будет+) если считывать значение клавиши в том же потоке, ИМХО, больше места для глюков будет...хотя то наверно дело личных предпочтений+)) мне было бы проще в соседнем потоке всё предусмотреть, и уже в основной выдать, должна ли змейка поворачивать+)
0
4 / 4 / 1
Регистрация: 18.08.2008
Сообщений: 73
16.10.2008, 22:05  [ТС] 5
а где можно почитать про многопочное программирование? просто никогда не имел с ним дело.
0
Эксперт С++
2255 / 770 / 25
Регистрация: 27.05.2008
Сообщений: 1,496
16.10.2008, 22:22 6
leviaphan,почитать можно в вебе. Однако,многопоточное программирование есть программирование с тесным взаимодействием с операционкой. Если вы ниразу не программировали именно под вашу ось (буд то винда или никс) могут возникнуть сложности. Другое дело,что совсем не обязательно делать все так мрачно.
C++
1
2
3
4
5
while ( gameon )  {
if(kbhit() ) // нажата кнопка!обрабатываем пользовательский ввод.
// Здесь обрабатываем игровую логику. Скажем,передвигаем змейку каждые N милисекунд.
 
};
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.10.2008, 22:22
Помогаю со студенческими работами здесь

Пишу игру пятнашки
Пишу игру пятнашки с использованием openGL(библиотеки glut) и ООП. Проблема возникла в следущей...

Пишу текстовую игру на Си
У меня такой вопрос. Как рисовать анимацию и не прохлопать нажатия клавиш? Есть ли Сях какие-то...

Пишу свою игру
Здравствуйте! Помогите, плз. Делаю(тренируюсь, просто для себя) игру. На данный момент застрял на...

Есть страница на html в ней проходим тест и узнаем результат.. Вопрос как этот результат записать в бд mysql в таблицу rezuitaty
вот код страницы: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">...

подключить русскую раскладку в игру змейка
пока всё выглядит отвратно, знаю:) В ОБЩЕМ, я запускаю, нажимаю wasd (у меня включена русская, а не...

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


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru