|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
25.01.2010, 16:15 | #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. |
25.01.2010, 18:27 | #52 |
Участник клуба
Регистрация: 06.03.2009
Сообщений: 1,346
|
Во первых в типы чипманка ничего добавлять не надо. Если у тела должны быть дополнительные переменные создавай тип который будет включать Body и дополнительные переменные:
Код:
Код:
Последний раз редактировалось Вадим Буренков; 25.01.2010 в 18:32. |
26.01.2010, 05:52 | #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. |
26.01.2010, 09:49 | #54 |
Форумчанин
Регистрация: 04.08.2009
Сообщений: 684
|
насколько я понимаю, pbody - это указатель. Если просто создать переменную var b1: pbody, то она будет указывать на мусор. Поэтому ее нужно инициализировать. как раз для этого используется cpBodyCreate(): pbody. Вот уже после этого можно менять параметры тела при помощи b1.m:=...;
b1.i:=...; b1.w:=... ...
Еслия Вам помог, не поленитесь нажать на весы и оставить отзыв. Это не займет много времени, но даст понять, что я старался не зря =)
Мой ник зарегистрирован, а твой? |
26.01.2010, 13:19 | #55 |
Участник клуба
Регистрация: 06.03.2009
Сообщений: 1,346
|
Попробую разъяснить:
Вся информация о телах и формах (тела и формы это разыне вещи, это понятно?) chipmunk содержится в типах: PShape для формы и PBody для тела. Это указатели на области памяти, изначально они не на что не ссылаются. При их создании специальными коммандами (cpBodyCreate,cpShapeCreate) выделяется память под них, проводятся инициализации и результат сохраняется в внутреннем массиве чипманка, а также передается как результат функции нам. Обработка и отрисовка тел происходит через внутренний массив способом (используется Prev/Next) , который я приводил в своем предидущем сообщении. Чтобы манипулировать с каким-либо конкретным объектом при создании на него надо сохранить указатель который возвращается при создании, и потом через указатель использовать и изменять его параметры. Пример: Код:
Код:
Последний раз редактировалось Beermonza; 26.01.2010 в 15:06. |
27.01.2010, 14:51 | #56 |
Люблю жизнь
Форумчанин
Регистрация: 01.12.2009
Сообщений: 193
|
Теперь все понятно. Теперь занимаюсь отрисовкой. Только текстура привязана к экрану, и тела подвижны относительно неё. Т.е. она не вращается с телом, не двигается.
Не стыдно не уметь, стыдно не учиться.
|
27.01.2010, 16:20 | #57 | |
Участник клуба
Регистрация: 06.03.2009
Сообщений: 1,346
|
Цитата:
|
|
27.01.2010, 18:14 | #58 |
Люблю жизнь
Форумчанин
Регистрация: 01.12.2009
Сообщений: 193
|
Исполняемый файл
Не стыдно не уметь, стыдно не учиться.
|
27.01.2010, 18:15 | #59 |
Люблю жизнь
Форумчанин
Регистрация: 01.12.2009
Сообщений: 193
|
Исполняемый файл
Не стыдно не уметь, стыдно не учиться.
|
27.01.2010, 18:20 | #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 |