HLFX.Ru Forum
профиль •  правила •  регистрация •  календарь •  народ •  FAQ •  поиск •  новое •  сутки •  главная •  выход  
HLFX.Ru Forum HLFX.Ru Forum > Теория и практика > Half-Life SDK > несколько вопросов
Страницы (78): « Первая ... « 32 33 34 35 [36] 37 38 39 40 » ... Последняя »   Предыдущая тема   Следующая тема
Автор
Тема Новая тема    Ответить
marikcool
Житель форума

Дата регистрации: Jul 2011
Проживает: kz
Сообщений: 1522
Возраст: 39

Рейтинг



кто может скинуть хорошую статью плюсы и минусы по работе со строкой через указатель или объявленный массив ну вообще с любыми объектами по типу:
char * s1 = "test" и char s2[32]= "test"

Сообщить модератору | IP: Записан
Сообщение: 89810

Старое сообщение 04-01-2012 07:45
- За что?
 Дядя Миша
racing for fish

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 33064
Нанёс повреждений: 392 ед.

Рейтинг



Цитата:
marikcool писал:
само выставление флага FL_ONGROUND я чето ненашол, походу сам движок

в SV_FinishPmove
C++ Source Code:
1
if( svgame.pmove->onground == -1 )
2
  clent->v.flags &= ~FL_ONGROUND;
3
else if( pmove->onground >= 0 && pmove->onground < pmove->numphysent )
4
{
5
  clent->v.flags |= FL_ONGROUND;
6
  clent->v.groundentity = EDICT_NUM( svgame.pmove->physents[svgame.pmove->onground].info );
7
}

По сути ускорение начинает нарастать за счёт аддитации гравитации.
То есть это не ускорение. Это просто прибавляется гравитация.
Если игрока подкинул триггер_пуш, то ускорение записывается в basevelocity.

Добавлено 04-01-2012 в 12:58:

Цитата:
marikcool писал:
кто может скинуть хорошую статью плюсы и минусы по работе со строкой через указатель или объявленный массив ну вообще с любыми объектами по типу:
char * s1 = "test" и char s2[32]= "test"

вообще по работе с указателями? или именно со строками?
Я давно хочу написать статью про арифметику указателей, потому что многие боятся её пользовать.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'

Сообщить модератору | IP: Записан
Сообщение: 89812

Старое сообщение 04-01-2012 08:58
-
VXP
Новичок

Дата регистрации: Jan 2011
Проживает: Украина, Одесса
Сообщений: 20
Возраст: 30

Рейтинг



Цитата:
Дядя Миша писал:
Я давно хочу написать статью про арифметику указателей, потому что многие боятся её пользовать.

Напиши и про это , пожалуйста

Сообщить модератору | IP: Записан
Сообщение: 89815

Старое сообщение 04-01-2012 09:35
- За что?
marikcool
Житель форума

Дата регистрации: Jul 2011
Проживает: kz
Сообщений: 1522
Возраст: 39

Рейтинг



Цитата:
Дядя Миша писал:
вообще по работе с указателями? или именно со строками?
Я давно хочу написать статью про арифметику указателей, потому что многие боятся её пользовать.

интересует строки а также другие классы, в чем преимущества, и в каком месте и как и где выделяется память в случае с указателем.
а также моменты как утечка/порча памяти.

еще хотел узнать static переменные после рестарта сервера (через команду restart) значения сохраняют?

также вопрос про memset, если я буду использовать значения 0, его следует вызывать если переменая больше 4 байт?

Сообщить модератору | IP: Записан
Сообщение: 89818

Старое сообщение 04-01-2012 10:55
- За что?
 Дядя Миша
racing for fish

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 33064
Нанёс повреждений: 392 ед.

Рейтинг



Во-во, вижу
Работа с памятью - это самое больное место современных программистов.
Потому что поверх современных языков понаворочено столько слоёв абстракции. призванных именно облегчить вот эту работу с паматью, что программист зачастую вообще не понимает и боится с ней работать напрямую. Я уже не говорю, что при виде конструкции такого плана:

C++ Source Code:
1
// give space for textures and skinrefs
2
size1 = thdr->numtextures * sizeof( mstudiotexture_t );
3
size2 = thdr->numskinfamilies * thdr->numskinref * sizeof( short );
4
mod->cache.data = Mem_Alloc( loadmodel->mempool, phdr->length + size1 + size2 );
5
Q_memcpy( loadmodel->cache.data, buffer, phdr->length ); // copy main mdl buffer
6
phdr = (studiohdr_t *)loadmodel->cache.data; // get the new pointer on studiohdr
7
phdr->numskinfamilies = thdr->numskinfamilies;
8
phdr->numtextures = thdr->numtextures;
9
phdr->numskinref = thdr->numskinref;
10
phdr->textureindex = phdr->length;
11
phdr->skinindex = phdr->textureindex + size1;
12
 
13
in = (byte *)thdr + thdr->textureindex;
14
out = (byte *)phdr + phdr->textureindex;
15
Q_memcpy( out, in, size1 + size2 );	// copy textures + skinrefs
16
phdr->length += size1 + size2;

в ужасе прячется под стол. А между тем ксаш именно потому и потребляет так мало памяти, что там очень многое делается вручную.
Мало - даже по сравнению с халфой, я имею в виду.

Добавлено 04-01-2012 в 15:32:

А и кстати, маленький тест на профпригодность:
чем вот эта конструкция
C++ Source Code:
ptr1 = ptr2;

отличается от вот этой
C++ Source Code:
*ptr1 = *ptr2;

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'

Сообщить модератору | IP: Записан
Сообщение: 89823

Старое сообщение 04-01-2012 11:32
-
 XaeroX
Crystice Softworks

Дата регистрации: Oct 2005
Проживает: Торонто
Сообщений: 35063
Нанёс повреждений: 514 ед.
Возраст: 39

Рейтинг



Награды
 
[1 награда]


Цитата:
marikcool писал:
еще хотел узнать static переменные после рестарта сервера (через команду restart) значения сохраняют?

я всегда удивлялся программистам, которые не знают языка, на котором пишут. Это как русский писатель, пишущий книги и не знающий русского языка (а что, и такие есть).

__________________

Сообщить модератору | IP: Записан
Сообщение: 89826

Старое сообщение 04-01-2012 11:36
-
FiEctro
Кот Арсис

Дата регистрации: Aug 2006
Проживает: код
Сообщений: 13519
Возраст: 33

Рейтинг



XaeroX
Можно сказать ты пряма прочитав Страуструпа прямо сразу сел и за вечер написал волатилу . В этом деле практика, практика.

__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!

Сообщить модератору | IP: Записан
Сообщение: 89827

Старое сообщение 04-01-2012 11:37
- За что?
 Дядя Миша
racing for fish

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 33064
Нанёс повреждений: 392 ед.

Рейтинг



Цитата:
FiEctro писал:
В этом деле практика, практика.

ну ты вон уже сколько лет практикуешься и что и где?

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'

Сообщить модератору | IP: Записан
Сообщение: 89830

Старое сообщение 04-01-2012 11:43
-
 XaeroX
Crystice Softworks

Дата регистрации: Oct 2005
Проживает: Торонто
Сообщений: 35063
Нанёс повреждений: 514 ед.
Возраст: 39

Рейтинг



Награды
 
[1 награда]


FiEctro
Прочитав Страуструпа (которого я, кстати, не читал), я не задавал глупых вопросов по основам языка. А в самом деле сел и написал волатилу, правда, не эту - а старую и глючную, и вообще на DirectX 7. Но тем не менее.

Добавлено 04-01-2012 в 18:45:

Цитата:
Дядя Миша писал:
ну ты вон уже сколько лет практикуешься и что и где?

В подписи у него, где ж ещё?

__________________

Сообщить модератору | IP: Записан
Сообщение: 89831

Старое сообщение 04-01-2012 11:45
-
FiEctro
Кот Арсис

Дата регистрации: Aug 2006
Проживает: код
Сообщений: 13519
Возраст: 33

Рейтинг



Дядя Миша
В том то и дело что забросил это дело, не практикуюсь давно.

__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!

Сообщить модератору | IP: Записан
Сообщение: 89833

Старое сообщение 04-01-2012 11:54
- За что?
 XaeroX
Crystice Softworks

Дата регистрации: Oct 2005
Проживает: Торонто
Сообщений: 35063
Нанёс повреждений: 514 ед.
Возраст: 39

Рейтинг



Награды
 
[1 награда]


FiEctro
Тогда и не советуй другим.

__________________

Сообщить модератору | IP: Записан
Сообщение: 89834

Старое сообщение 04-01-2012 11:55
-
marikcool
Житель форума

Дата регистрации: Jul 2011
Проживает: kz
Сообщений: 1522
Возраст: 39

Рейтинг



ptr1 = ptr2; - присваивание значений
*ptr1 = *ptr2; - указателю ptr1 присваиваем указатель ptr2,
отсюда значение переменной ptr1 будет ровно значению ptr2,
если ptr2 = NULL то и ptr1 станет NULL.
вроде так.

мне интересно когда мы тупо в указатель char пишем например 2000 байт букв, он же атким образом портит память в другом месте?
надо выделить память либо объявить char text[2000]
а потом уже можно *text работать?

вот пример:

C++ Source Code:
1
const char *pszName;
2
if (!II.pszName)
3
  pszName = "Empty";
4
else
5
  pszName = II.pszName;

куда слово "Empty" сохранилось, и как под нее память выделилась?

Отредактировано marikcool 04-01-2012 в 13:20

Сообщить модератору | IP: Записан
Сообщение: 89844

Старое сообщение 04-01-2012 13:06
- За что?
 Дядя Миша
racing for fish

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 33064
Нанёс повреждений: 392 ед.

Рейтинг



Цитата:
marikcool писал:
куда слово "Empty" сохранилось, и как под нее память выделилась?

прямо при компиляции. Открой дллку в блокноте и найди своё слово.
Когда дллка загружена в память, там есть и несколько байт для твоего слова.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'

Сообщить модератору | IP: Записан
Сообщение: 89880

Старое сообщение 04-01-2012 18:58
-
Government-Man
Призрак

Дата регистрации: Apr 2006
Проживает: N/A
Сообщений: 3507

Рейтинг



Награды
 
[1 награда]


Цитата:
Дядя Миша писал:
Открой дллку в блокноте и найди своё слово.


Изучая текстовые строки внутри бинарника зачастую можно узнать много нового и интересного о программе и программистах ее писавших. Из утекшей беты клиента Dota 2 таким образом половину исходников Ep3 достали...

Сообщить модератору | IP: Записан
Сообщение: 89887

Старое сообщение 04-01-2012 19:20
- За что?
 Дядя Миша
racing for fish

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 33064
Нанёс повреждений: 392 ед.

Рейтинг



Цитата:
Government-Man писал:
Из утекшей беты клиента Dota 2 таким образом половину исходников Ep3 достали...

лучше бы они оттуда достали целый иписод с текстураме.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'

Сообщить модератору | IP: Записан
Сообщение: 89888

Старое сообщение 04-01-2012 19:53
-
Тема: (Опционально)
Ваш ответ:



Переводчик транслита


[проверить длину сообщения]
Опции: Автоматическое формирование ссылок: автоматически добавлять [url] и [/url] вокруг интернет адресов.
Уведомление по E-Mail: отправить вам уведомление, если кто-то ответил в тему (только для зарегистрированных пользователей).
Отключить смайлики в сообщении: не преобразовывать текстовые смайлики в картинки.
Показать подпись: добавить вашу подпись в конец сообщения (только зарегистрированные пользователи могут иметь подписи).

Временная зона GMT. Текущее время 21:09. Новая тема    Ответить
Страницы (78): « Первая ... « 32 33 34 35 [36] 37 38 39 40 » ... Последняя »   Предыдущая тема   Следующая тема
HLFX.Ru Forum HLFX.Ru Forum > Теория и практика > Half-Life SDK > несколько вопросов
Версия для печати | Отправить тему по E-Mail | Подписаться на эту тему

Быстрый переход:
Оцените эту тему:

Правила Форума:
Вы not можете создавать новые темы
Вы not можете отвечать в темы
Вы not можете прикреплять вложения
Вы not можете редактировать ваши сообщения
HTML Код ВЫКЛ
vB Код ВКЛ
Смайлики ВКЛ
[IMG] Код ВКЛ
 

< Обратная связь - HLFX.ru >

На основе vBulletin
Авторское право © 2000 - 2002, Jelsoft Enterprises Limited.
Дизайн и программирование: Crystice Softworks © 2005 - 2024