Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Помогите в создании простой игры на С#

19K
29 ноября 2006 года
DARKW
8 / / 22.11.2006
У меня такая проблема. Для курсовика по ООП решил написать небольшую игру, не претендуя на оригинальность, решил написать что-то наподобие игры "Galaxy". Т.е. космический корабль летает убивает врагов и т.д. :) Проблема такая: как я понимаю все процессы движения врагов, корабля, ракеты и всё такое должны работать одновременно. Получается для каждого процесса нужно создавать свой поток ?:confused: Т.е. если 10 врагов, то и 10 потоков будет?:confused: Враги и всё такое я думал сделать в виде picturebox со вставленной картинкой. Если можно напишите как это в коде выглядит простой пример какой-нибудь. И вообще реально это написать с базовыми знаниями С# или там надо с DirectX мутить.Посоветуйте что-нибудь пожалуйста. :)
5.8K
29 ноября 2006 года
ivan1985
42 / / 29.06.2005
Цитата: DARKW
как я понимаю все процессы движения врагов, корабля, ракеты и всё такое должны работать одновременно. Получается для каждого процесса нужно создавать свой поток ?:confused: Т.е. если 10 врагов, то и 10 потоков будет?


Если кратко и упрощенно:
корабль - структура
враги - массив структур
ракеты - массив структур
структура содержит координаты, вектор скорости
в цикле происходит обработка нажатий клавиш(мыши); изменение координат врагов(поочереди), ракет(поочереди), корабля в соответствии с их векторами скорости; обработка столкновений(проверять все ракеты(поочереди) на близость к врагу или кораблю);генерация случайных событий - создание новых объектов(появляющиеся враги, ракеты врагов), изменение векторов скорости врагов(поочереди);
и в конце перерисовка экрана.

11K
30 ноября 2006 года
BKnight
4 / / 02.05.2005
Кривовато будет работать!
Лучше сделать три потока:
-игрок
-объекты
-враги

Смысл в том, что юзер может ничего не делать, а ракеты, астероиды, какие-либо другие объекты и враги должны перемещаться и жить "своей жизнью"... структуры, возможно имеет смысл заменить на класы...
По-крайней-мере мы так PacMan'а (извращенного) писали... на c++ правда... )
5.8K
30 ноября 2006 года
ivan1985
42 / / 29.06.2005
Цитата: BKnight
Кривовато будет работать!


все работало на ура и даже не тормозило...

смысла в создании нескольких потоков нету - разве что для оптимизации под многоядерные процессоры :)

19K
01 декабря 2006 года
DARKW
8 / / 22.11.2006
Спасибо за советы.:) Покажите на примере как обрабатывать нажатия кнопок клавиатуры, а то в книгах чё-то не нашёл ничего, и как перерисовать форму.:confused: Спасибо.
273
02 декабря 2006 года
3A3-968M
1.2K / / 22.12.2005
У формы есть события KeyPress, KeyUp и KeyDown
19K
02 декабря 2006 года
DARKW
8 / / 22.11.2006
Я знаю эти события. А как это в цикле всё обработать, как предлагали?
Пример простой напишите, ПОЖАЛУЙСТА.
263
02 декабря 2006 года
koltaviy
816 / / 16.12.2004
Дык и пиши сам - тебе же объяснили чо делать!..
Кидаешь таймер на форму. При тике "двигаешь" своих врагов.. Затем все это перерисовываешь конечно..
Никаких циклов не надо!..
При щелчке на форме, отслеживашь где именно был сделан клик.. - если в это время там находился враг - врагу крендец;),.. ну или отслеживаешь полет пули:)
273
03 декабря 2006 года
3A3-968M
1.2K / / 22.12.2005
При срабатывании событий клавиатуры в обработке записываешь коды клавиши (или другую информацию) в какую-нибудь переменную, события возикают асинхронно по отношению к циклу. А в нём ты обрабатываешь переменные, соедржащие информацию с клавишь.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог