Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > разработка игр, графический дизайн и моделирование > Gamedev - cоздание игр: Unity, OpenGL, DirectX
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.11.2010, 11:55   #41
Манжосов Денис :)
Участник клуба
 
Регистрация: 29.01.2008
Сообщений: 1,039
По умолчанию

Есть следующая функция, пользуюсь ей долго время.

Код:
function IsKeyDown(Key: byte): boolean;
begin
  Result := false;
  if (Keys[Key] = 128) or (Keys[Key] = 129) then Result := true;
end;
Создай глобальную переменную Keys: TKeyboardState; и запиши в обработчик таймера в начале строку GetKeyBoardState(Keys);. Чтобы проверить, что нажата клавиша, стрелка вправо например, ты должен написать следующий код:
Код:
if IsKeyDown(39) then begin
  // Действия
end;
P.S. Если кто-то знает способ лучше, поделитесь пожалуйста.

Последний раз редактировалось Манжосов Денис :); 09.11.2010 в 12:24.
Манжосов Денис :) вне форума Ответить с цитированием
Старый 12.11.2010, 20:39   #42
Ponkole
Форумчанин
 
Регистрация: 02.07.2010
Сообщений: 167
По умолчанию

Блин, Манжосов Денис, спасибо тебе: ещё даже не пробовал использовать эту
идею в мой код, но точно знаю это крутая штука.
Result получается функция при заданных условиях?.
Аpromix, я знаю что спрашиваю слишком много, но это для благородных целей,
и спрашиваю не от того что не хочу лазить в книгу, а от того что не знаю (я читаю
пару сайтов и не всегда нахожу того что хочу, даже если оно есть).
Если я тебе помог, помоги и ты мне +ом с комментарием

Последний раз редактировалось Ponkole; 12.11.2010 в 20:51.
Ponkole вне форума Ответить с цитированием
Старый 12.11.2010, 20:57   #43
Манжосов Денис :)
Участник клуба
 
Регистрация: 29.01.2008
Сообщений: 1,039
По умолчанию

Цитата:
Result получается функция при заданных условиях?.
Эм... ну вместо Result := true; можно писать IsKeyDown := true;, что в принципе одно и тоже. А значение Result(IsKeyDown) зависит от того, выполнилось ли условие или нет. =)
Манжосов Денис :) вне форума Ответить с цитированием
Старый 12.11.2010, 21:18   #44
Ponkole
Форумчанин
 
Регистрация: 02.07.2010
Сообщений: 167
По умолчанию

Спасибо. Понял. Дела идут на лад... ещё раз спасибо.

Вот что получилось на первый раз, все которые ошибки видел исправил.
стрелки - перемещение змея, в края не врезаться, скоро появятся враги
(в нов вер)
Выйдет черное окно кликнете мышкой
Вложения
Тип файла: zip Woko - waka.zip (281.4 Кб, 30 просмотров)
Если я тебе помог, помоги и ты мне +ом с комментарием

Последний раз редактировалось Stilet; 22.11.2010 в 16:43.
Ponkole вне форума Ответить с цитированием
Старый 20.11.2010, 20:08   #45
Вадим Буренков
Участник клуба
 
Аватар для Вадим Буренков
 
Регистрация: 06.03.2009
Сообщений: 1,346
По умолчанию

Кривой выход из игры, после запуска если не нажать мышь висит черный экран, графика никакая, змейка может ездить по себе и останавливаться. Если закрыть глаза на выше перечисленное то нормально.
Поэтому советую прежде чем добавлять что-то новое разобраться с этими проблемами.
Если интересно можешь посмотреть статью про написание простенькой змейки:
http://procoder.info/index.php?optio...dia&Itemid=151
Вадим Буренков вне форума Ответить с цитированием
Старый 20.11.2010, 23:01   #46
Ponkole
Форумчанин
 
Регистрация: 02.07.2010
Сообщений: 167
По умолчанию

Спасибо змея больше не тормозит, черезсебя тоже не проходит, с графикой у меня не лады, анед меню работаю в общем спасибо.У меня появился вопрос лучше сделать чтобы если змея на себя наезжает, она "откусывала" от себя кусок или умирала?
Если я тебе помог, помоги и ты мне +ом с комментарием
Ponkole вне форума Ответить с цитированием
Старый 21.11.2010, 00:26   #47
Casper-SC
Форумчанин
 
Регистрация: 04.07.2007
Сообщений: 549
По умолчанию

Сделай меню. Поставь фон нормальный, только не бредятину типа: "пальма и вода", а какой нибудь более менее подходящий для игры. Квадратики бы тоже сделал цветными. Скорость змейки лучше бы росла с каждым уровнем или какие там правила в оригинальной змейке, короче мне не нравится, что змейка гоняет с самого начала как бешеная. Правда для некоторых и это медленно покажется, так что выбор скорости не помешал бы. При повороте змейки угловой кубик лучше бы показывал, что это изгиб. Ну там же есть в кубиках полоски показывающие направление. А так вроде работает.
Casper-SC вне форума Ответить с цитированием
Старый 22.11.2010, 13:29   #48
Ponkole
Форумчанин
 
Регистрация: 02.07.2010
Сообщений: 167
По умолчанию

У меня новая задача:
у меня есть изображение Х*У как мне из него достать прямоугольную область
Х1*У1 (обе переменной в формате TBitMap)
Если я тебе помог, помоги и ты мне +ом с комментарием
Ponkole вне форума Ответить с цитированием
Старый 22.11.2010, 13:50   #49
Гром
Старожил
 
Аватар для Гром
 
Регистрация: 21.03.2009
Сообщений: 2,193
По умолчанию

Функция CopyRect из TCanvas. Указываете в качестве параметров TRect(x0, y0, x0 + x1, y0 + y1) и TRect(0, 0, x1, y1).
Простые и красивые программы - коды программ + учебник C++
Создание игры - взгляд изнутри - сайт проекта
Тема на форуме, посвященная ему же
Гром вне форума Ответить с цитированием
Старый 22.11.2010, 17:58   #50
Ponkole
Форумчанин
 
Регистрация: 02.07.2010
Сообщений: 167
По умолчанию

спасибо Гром
Как видно у меня не совсем правильно организованно копирование
области. Как это исправить? Сам пробовал изменять значения х1 и у1
чего то не вышло

вот код в ответ за это
Код:
Screenbit.Free;
ScreenBit:=nil;
ScreenBit:=Tbitmap.Create;
y0:=-(PlayerSnail[1].Y*25);
x0:=-(PlayerSnail[1].x*25);
y1:=600;
x1:=800;
Screenbit.Height:=y1;
Screenbit.Width:=x1;
Screenbit.Canvas.CopyRect(rect(x0, y0, x0 + x1, y0 + y1),
ScreenBitmap.Canvas,Rect(0, 0, x1, y1));
Если я тебе помог, помоги и ты мне +ом с комментарием

Последний раз редактировалось Beermonza; 04.12.2010 в 23:18.
Ponkole вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Создаю 2D игру Deamonig Gamedev - cоздание игр: Unity, OpenGL, DirectX 22 20.09.2009 17:23
Кто может написать игру для мобильного? Иван Викторович Gamedev - cоздание игр: Unity, OpenGL, DirectX 8 14.03.2008 21:07