![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#51 |
Люблю жизнь
Форумчанин
Регистрация: 01.12.2009
Сообщений: 193
|
![]()
Понятно. Сейчас хочу сделать управление стрелками. Я уже делал, но потом удалил проект. Теперь не могу тем же способом: добавляю в pBody ещё одно свойство n:integer. Затем, при создании объекта (окружность во 2-ом демо) задаю ему параметр n=1. В процедуре Demo2_Update прописываю:
b:= cpBody; if key_down(k_right) then while b <> nil do begin if b.n=1 then b.w:=b.w+0.2; b:= b.next; end; То есть телу со значением n=1 (в данном случае окружности) повышаем угловую скорость, чтобы оно катилось. Иногда работает хорошо, а иногда вместо круга крутится что попало: то стенки демки, то квадратики...
Не стыдно не уметь, стыдно не учиться.
Последний раз редактировалось Андрей 93; 26.01.2010 в 05:46. |
![]() |
![]() |
![]() |
#52 |
Участник клуба
Регистрация: 06.03.2009
Сообщений: 1,346
|
![]()
Во первых в типы чипманка ничего добавлять не надо. Если у тела должны быть дополнительные переменные создавай тип который будет включать Body и дополнительные переменные:
Код:
Код:
Последний раз редактировалось Вадим Буренков; 25.01.2010 в 18:32. |
![]() |
![]() |
![]() |
#53 |
Люблю жизнь
Форумчанин
Регистрация: 01.12.2009
Сообщений: 193
|
![]()
Т.е. создавать так?:
var b1: pbody; ... begin b1.m:=...; b1.i:=...; b1.w:=... ... end. получается, что можно не использовать функцию cpBodyCreate(): pbody? Будет ли в этом случае ChipMunk находить свои объекты через указатели prev/next? Наверное, я чего-то не понимаю
Не стыдно не уметь, стыдно не учиться.
Последний раз редактировалось Андрей 93; 26.01.2010 в 08:34. |
![]() |
![]() |
![]() |
#54 |
Форумчанин
Регистрация: 04.08.2009
Сообщений: 684
|
![]()
насколько я понимаю, pbody - это указатель. Если просто создать переменную var b1: pbody, то она будет указывать на мусор. Поэтому ее нужно инициализировать. как раз для этого используется cpBodyCreate(): pbody. Вот уже после этого можно менять параметры тела при помощи b1.m:=...;
b1.i:=...; b1.w:=... ...
Еслия Вам помог, не поленитесь нажать на весы и оставить отзыв. Это не займет много времени, но даст понять, что я старался не зря =)
Мой ник зарегистрирован, а твой? |
![]() |
![]() |
![]() |
#55 |
Участник клуба
Регистрация: 06.03.2009
Сообщений: 1,346
|
![]()
Попробую разъяснить:
Вся информация о телах и формах (тела и формы это разыне вещи, это понятно?) chipmunk содержится в типах: PShape для формы и PBody для тела. Это указатели на области памяти, изначально они не на что не ссылаются. При их создании специальными коммандами (cpBodyCreate,cpShapeCreate) выделяется память под них, проводятся инициализации и результат сохраняется в внутреннем массиве чипманка, а также передается как результат функции нам. Обработка и отрисовка тел происходит через внутренний массив способом (используется Prev/Next) , который я приводил в своем предидущем сообщении. Чтобы манипулировать с каким-либо конкретным объектом при создании на него надо сохранить указатель который возвращается при создании, и потом через указатель использовать и изменять его параметры. Пример: Код:
Код:
Последний раз редактировалось Beermonza; 26.01.2010 в 15:06. |
![]() |
![]() |
![]() |
#56 |
Люблю жизнь
Форумчанин
Регистрация: 01.12.2009
Сообщений: 193
|
![]()
Теперь все понятно. Теперь занимаюсь отрисовкой. Только текстура привязана к экрану, и тела подвижны относительно неё. Т.е. она не вращается с телом, не двигается.
Не стыдно не уметь, стыдно не учиться.
|
![]() |
![]() |
![]() |
#57 | |
Участник клуба
Регистрация: 06.03.2009
Сообщений: 1,346
|
![]() Цитата:
|
|
![]() |
![]() |
![]() |
#58 |
Люблю жизнь
Форумчанин
Регистрация: 01.12.2009
Сообщений: 193
|
![]()
Исполняемый файл
Не стыдно не уметь, стыдно не учиться.
|
![]() |
![]() |
![]() |
#59 |
Люблю жизнь
Форумчанин
Регистрация: 01.12.2009
Сообщений: 193
|
![]()
Исполняемый файл
Не стыдно не уметь, стыдно не учиться.
|
![]() |
![]() |
![]() |
#60 |
Форумчанин
Регистрация: 04.08.2009
Сообщений: 684
|
![]()
тут одного экзешника мало чтоб посмотреть. Нужны все dll-ки и текстуры
Еслия Вам помог, не поленитесь нажать на весы и оставить отзыв. Это не займет много времени, но даст понять, что я старался не зря =)
Мой ник зарегистрирован, а твой? |
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Физика в 2D играх | Вадим Буренков | Gamedev - cоздание игр: Unity, OpenGL, DirectX | 32 | 02.11.2010 22:00 |
Искуственый интелект в играх | VintProg | Gamedev - cоздание игр: Unity, OpenGL, DirectX | 26 | 01.08.2009 23:09 |
Сюжет в 2D играх | ZotaC | Свободное общение | 8 | 05.07.2009 15:42 |
Физика программы. | Манжосов Денис :) | Gamedev - cоздание игр: Unity, OpenGL, DirectX | 1 | 09.05.2008 18:14 |
Анимация в играх | frai | Gamedev - cоздание игр: Unity, OpenGL, DirectX | 4 | 25.11.2007 14:28 |