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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 31.08.2008, 12:57   #11
GreenDan
Никто
Пользователь
 
Аватар для GreenDan
 
Регистрация: 25.08.2008
Сообщений: 28
По умолчанию

непонятно одно:
почему функция MoveBall всё время работает, в таймере вроде как не указывается это.
GreenDan вне форума Ответить с цитированием
Старый 31.08.2008, 13:31   #12
mutabor
Телепат с дипломом
Старожил
 
Аватар для mutabor
 
Регистрация: 10.06.2007
Сообщений: 4,929
По умолчанию

Смотри внимательнее
Цитата:
if game then
case MoveBall of
1: begin ...
Функция вызывается и одновременно проверяется ее возвращаемое значение. Она двигает мяч и делает много чего еще (определяет столкновения со стенками с ракетками), в том числе определяет, забил ли кто нибудь или нет, и возвращает соотв. результат.

Если что еще не ясно не стесняемся, спрашиваем. Я специально код не стал упрощать до уровня Hello World. Если есть еще вопросы по матчасти, задавайте.
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог

Последний раз редактировалось mutabor; 31.08.2008 в 13:34.
mutabor вне форума Ответить с цитированием
Старый 31.08.2008, 13:44   #13
GreenDan
Никто
Пользователь
 
Аватар для GreenDan
 
Регистрация: 25.08.2008
Сообщений: 28
По умолчанию

Просто тут выполняется if но как бы кажется что процедура не вызывается, а просто проверка идёт, это я заметил.
tmpX:=Shape3.Left+BallXSpeed;
tmpY:=Shape3.Top+BallYSpeed;
Что обозначает этот код. на русскаом я знаю как, я не пойму зачем идёт сложение.
GreenDan вне форума Ответить с цитированием
Старый 31.08.2008, 14:47   #14
mutabor
Телепат с дипломом
Старожил
 
Аватар для mutabor
 
Регистрация: 10.06.2007
Сообщений: 4,929
По умолчанию

Мяч имеет горизонтальную скорость и вертикальную. Скорость может быть или положительной или отрицательной, при этом абсолютная ее величина не меняется. Меняется только знак, делается это так скорость := 0 - скорость. Поэтому скорость только прибавляем.

tmpX и tmpY нужны для того, чтобы мяч никуда не двигался во время выполнения функции, пока окончательно не определятся координаты. Здесь это нужно, т.к. графики по сути нет, Shape тут же сместится при изменении его координат. Если делать графику отдельно, то такие переменные обычно не нужны, т.к. вывод на экран произойдет только после окончания функции в уже определившихся координатах.

Цитата:
Просто тут выполняется if но как бы кажется что процедура не вызывается, а просто проверка идёт, это я заметил.
Верно, только не процедура а функция. С процедурой такой номер не пройдет. Вообще с функцией можно работать как с обычной переменной, помещать ее во всевозможные конструкции, присваивать её, нужно только помнить что помимо этого она еще и выполнит свой код.
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог

Последний раз редактировалось mutabor; 31.08.2008 в 14:51.
mutabor вне форума Ответить с цитированием
Старый 01.09.2008, 08:55   #15
DeKot
Участник клуба
 
Аватар для DeKot
 
Регистрация: 12.08.2008
Сообщений: 1,977
По умолчанию

Цитата:
DeKot, любимый цвет clLime?
Если честно, то это такой рекламный менеджмент - главное правило - продукт должен бросаться в глаза. А для функциональности изменить цвет фона даже новичку не проблема.
Теперь о главном. Я не предлагаю строить сложную игру.Наоборот, все гораздо проще должно получиться ( в смысле кода по сравнению с приведенным в simple tennis). А по виду смотрите скрин. Код специально не привожу. Мы договорились, что каждый по своему пишет программу, а потом совместно изменяем по необходимости. Так что все таки давайте поэтапно - делаем сначала корт, ракетки и мяч.
Изображения
Тип файла: jpg Tennis.jpg (9.1 Кб, 143 просмотров)
И не сомневайся даже ... отдых - кайф, работа - лажа!

Последний раз редактировалось Beermonza; 28.10.2011 в 15:31.
DeKot вне форума Ответить с цитированием
Старый 01.09.2008, 16:11   #16
Манжосов Денис :)
Участник клуба
 
Регистрация: 29.01.2008
Сообщений: 1,039
По умолчанию

А как начинать то делать? Мы должны посмотреть рисунок и оценить его, или ещё что-то? Если начинать - давайте начнём...
Манжосов Денис :) вне форума Ответить с цитированием
Старый 01.09.2008, 17:11   #17
mutabor
Телепат с дипломом
Старожил
 
Аватар для mutabor
 
Регистрация: 10.06.2007
Сообщений: 4,929
По умолчанию

Я тоже не совсем понял, кому и что нужно делать. Каждый как умеет что-ли? Ну так те, кто хотят научиться, пока никак не умеют.
Фраза непонятная - давайте делать ракетки и т.д.

Цитата:
Мы договорились, что каждый по своему пишет программу, а потом совместно изменяем по необходимости
Кажется я понял, я тоже должен написать игру с тем же внешним видом, а потом мы сравним код? Можно и так, тогда пару небольших изменений в цвете, расположении ракеток, счет сверху и из моего simple tennis получится такой же скрин. А ученикам тогда что делать? Вообще поясни подробнее, я не совсем понимаю.

Кстати насчет понятности, вот Денис смотрел мой код, не по частям, а весь сразу. Все понятно? Или лучше если было бы все отдельно разжевано?
Если все понятно, можно продолжить дальше, добавить графику или полет мяча изменить - сделать отскок на произвольный угол, заставить компьютер мяч отбивать. Говорите, что в первую очередь сделать. (Сначала только с Dekot'ом определится надо, кто и что делает)
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог
mutabor вне форума Ответить с цитированием
Старый 01.09.2008, 19:24   #18
DeKot
Участник клуба
 
Аватар для DeKot
 
Регистрация: 12.08.2008
Сообщений: 1,977
По умолчанию

Цитата:
А ученикам тогда что делать?
Первый шаг в составлении программы. Нужно игровое поле - корт, на котором происходит игра. Пусть каждый построит этот корт так как считает нужным или умеет. Сделает мячик, ракетки. Ведь все это можно делать различными способами. Графическими примитивами, с помощью Shape, через OpenGL, нарисовать в редакторе и вывести в Image и т.д. Вот чистая практика. Потом уже учиться придавать движения объектам.

Я, к примеру вот так построил поле игры (см. вложение).А вы предлагайте свои варианты.
Вложения
Тип файла: rar TENNIS01.rar (6.1 Кб, 41 просмотров)
И не сомневайся даже ... отдых - кайф, работа - лажа!

Последний раз редактировалось Beermonza; 28.10.2011 в 15:33.
DeKot вне форума Ответить с цитированием
Старый 01.09.2008, 20:46   #19
mutabor
Телепат с дипломом
Старожил
 
Аватар для mutabor
 
Регистрация: 10.06.2007
Сообщений: 4,929
По умолчанию

Цитата:
Пусть каждый построит этот корт так как считает нужным или умеет
Если бы они умели, они бы не спрашивали. Хотя я частично согласен, я уже об этом говорил, любому новичку известен достаточный набор средств чтобы сделать подобие игры, но они не знают как их для этого применить.
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог
mutabor вне форума Ответить с цитированием
Старый 02.09.2008, 09:26   #20
DeKot
Участник клуба
 
Аватар для DeKot
 
Регистрация: 12.08.2008
Сообщений: 1,977
По умолчанию

Все таки предполагается, что начальные базовые знания имеются. И все же разберемся подробно на примере tennis01. Строим игровое поле. Корт - это прямоугольник, внутри которого будет передвигаться мяч.По кромке корта ракетки также в виде прямоугольников. Названные элементы можно нарисовать различными способами. Скажем, воспользоваться компонентом Shape (раздел Additional). Вывести его на форму, в свойствах задать размеры, цвет. Можно взять готовый рисунок (с травкой, цветочками) и загрузить как Image. Мы же воспользуемся методами объекта TCanvas.Canvas (холст) поверхность, на которой можно
рисовать. Для этого у холста есть методы, называемые графическими примитивами. С помощью этих методов можно рисовать различные фигуры, линии, выводить текст.

Нам достаточно метода Rectangle(x1,y1,x2,y2) - рисует прямоугольник (коорд.лев.верхн.угла x1,y1 ; прав. нижн.- x2,y2).
Ellipse(x1,y1,x2,y2) - рисует элипс или круг вписаный в прямоугольник с коорд. аналогично как в методе Rectangle. И еще используем метод TextOut(X,Y,'нужный ТЕКСТ') - выводит текст, начиная с координат X,Y. Определяем размеры корта - у нас 800 х 440 и будем рисовать его в процедуре FormOnPaint. Для этого нам необходимы четыре координаты прямоугольника. Т.к. корт свои размеры не меняет, вводим координаты в разделе const и присваиваем им сразу значения. Стараемся дать названия константам, (как и дальше переменным и методам) осмысленные названия, отображающие фактическое назначение. Здесь XlineL - левая линия по оси Х (левая не в смысле "левая", а в смысле слева); YlineU (Up) - верхняя боковая линия по оси Y и т.д.

Можно было бы задать значения координат в Rectangle явно, конкретными цифрами. Почему так, поймем дальше.
И не сомневайся даже ... отдых - кайф, работа - лажа!

Последний раз редактировалось Beermonza; 28.10.2011 в 15:38.
DeKot вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Доделать браузерную игру Beliar Gamedev - cоздание игр: Unity, OpenGL, DirectX 1 31.07.2008 19:24
Доделать браузерную игру. Beliar Gamedev - cоздание игр: Unity, OpenGL, DirectX 1 31.07.2008 15:07
Зацените игру snake-as Софт 3 08.01.2008 00:16
Ищу игру PAVEL315 Gamedev - cоздание игр: Unity, OpenGL, DirectX 10 20.04.2007 12:13