Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 25, средняя оценка - 4.64
leviaphan
4 / 4 / 0
Регистрация: 18.08.2008
Сообщений: 73
#1

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

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

Я сейчас пишу игру "змейка". (в консоли), но возникла одна проблема. Направление движения от пользователя я принимаю так: раз в секунду запускаю getch(). Если пользователь ничего не вводит, тогда вся программа останавливается, т. е. операторы, идущие дальше, не выполняются, пока пользоваеть что-либо не вводит. Если так и оставить, игрок сможет мухлевать: не нажимать никакую клавишу и тем самым приостановливать ход исполнения игры. Как этого избежать? Может, есть какой-то другой оператор, кроме getch() для приёма данных от пользователя?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.10.2008, 20:11     Пишу игру "змейка". Есть вопрос по ней
Посмотрите здесь:

Загрузка информации из файла (система рекордов в игре "Змейка") - C++
Не получается сделать считывание из файла и загрузки рекорда,помогите.Пытался сам,но всё запорол#include <glut.h> #include <iostream> ...

Вопрос про "Наследование" и "Объединение" - C++
Доброго времени суток. Изучаю ООП, пока что не удачно. Появилось пару вопросиков. первый вид Animals // Млекопитающие class...

"Змейка", не работают кнопки направления движения - C++
Всем привет! Нашёл рабочий программный код змейки в С++,откомпилированный и запущенный в Dev C++ При запуске не работают кнопки...

Исправление кода игры "Змейка" - C++
Добрый вечер, помогите исправить код(игра змейка), на данный момент когда запускаю игру, появляется 5 яблок, после того как змейка ест...

Программа не работает когда пишу "getch()", исправьте ошибки - C++
#include <iostream> #include <string> #include <conio.h> using namespace std; int count(string a, int i); int main() { ...

Программа игра "Змейка" - C++
Программа выдает ошибки не понимаю, что сделать. Вот код самой программы. Буду очень благодарна за помощь. #include "zmejka.h" int main...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Varlock
365 / 68 / 2
Регистрация: 25.09.2008
Сообщений: 402
16.10.2008, 14:53     Пишу игру "змейка". Есть вопрос по ней #2
твоя ошибка в том, что ты пытаешься использовать однопоточный режим, ИМХО в одном потоке красиво реализовать подобное приложение нельзя+)
создай два потока, один поток для отображения того что делает змейка, второй для приема информации от пользователя+)
(как конкретно это реализуется зависит от ОС...)
Lurker
6127 / 1885 / 13
Регистрация: 07.07.2008
Сообщений: 10,443
16.10.2008, 15:46     Пишу игру "змейка". Есть вопрос по ней #3
Можно в однопоточном. Надопросто проверять нажата-ли клавиша. А как конкретно это сделать не скажу потому что не помню.
Varlock
365 / 68 / 2
Регистрация: 25.09.2008
Сообщений: 402
16.10.2008, 17:04     Пишу игру "змейка". Есть вопрос по ней #4
могу ошибаться, по моему можно проверить, нажата ли клавиша, считав информацию из входного потока in (уже непомню точно как это должно выглядеть, т.к. сями давно не занимался...+) помниться что там есть потоки in и out, которые поидее могут помочь с этим+) )
но имхо 2 потока всётки красивее будет+) если считывать значение клавиши в том же потоке, ИМХО, больше места для глюков будет...хотя то наверно дело личных предпочтений+)) мне было бы проще в соседнем потоке всё предусмотреть, и уже в основной выдать, должна ли змейка поворачивать+)
leviaphan
4 / 4 / 0
Регистрация: 18.08.2008
Сообщений: 73
16.10.2008, 22:05  [ТС]     Пишу игру "змейка". Есть вопрос по ней #5
а где можно почитать про многопочное программирование? просто никогда не имел с ним дело.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.10.2008, 22:22     Пишу игру "змейка". Есть вопрос по ней
Еще ссылки по теме:

Как на C++ сделать игру "Нужна вода" (Need Water)? - C++
Хочу написать игру "Нужна Вода" http://onlinegamesfree.ru/game/need_water и возникло несколько вопросов 1. Какие игровые движки и...

Создать игру "Кто хочет стать миллионером" на языке С++ пожалуйста - C++
Создать игру "Кто хочет стать миллионером" на языке С++ пожалуйста

Как можно реализовать на C++ "Игру жизни Конвея" (Conway's Game of Life)? - C++
как реализовать игру конвея жизнь в с++,подскажите какие-то треды посвященные этому и т.п

Реализовать игру "Жизнь" (Conway's Game of Life) с помощью иерархии классов - C++
У нас есть такие правила: Правила Место действия этой игры — «вселенная» — это размеченная на клетки поверхность или плоскость —...

Оцените мою 1 игру "21 card game" - C++
Вот решил я сделать свою 1 игру и залить сюда для "конструктивной критики". Правила игры: Выигрывает тот кто наберет больше очков но не...

нужно составить игру "Доктор Марио" - C++
Нужно написать игру "доктор марио") Это игра,в которой как и в тетрисе выпадают фигурки,только состоящие из 2 частей разных цветов:...


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

Или воспользуйтесь поиском по форуму:
XuTPbIu_MuHTAu
Эксперт С++
2224 / 739 / 10
Регистрация: 27.05.2008
Сообщений: 1,508
16.10.2008, 22:22     Пишу игру "змейка". Есть вопрос по ней #6
leviaphan,почитать можно в вебе. Однако,многопоточное программирование есть программирование с тесным взаимодействием с операционкой. Если вы ниразу не программировали именно под вашу ось (буд то винда или никс) могут возникнуть сложности. Другое дело,что совсем не обязательно делать все так мрачно.
C++
1
2
3
4
5
while ( gameon )  {
if(kbhit() ) // нажата кнопка!обрабатываем пользовательский ввод.
// Здесь обрабатываем игровую логику. Скажем,передвигаем змейку каждые N милисекунд.
 
};
Yandex
Объявления
16.10.2008, 22:22     Пишу игру "змейка". Есть вопрос по ней
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru