Исходница
В этой теме предлагаю выкладывать полезные функции, куски кода, математические формулы, которые будут полезны каждому и упростят жизнь среднестатистическому прогеру.
Прошу выкладывать только код, т.е. эта тема посвящена только исходному коду и не затрагивает библиотеки |
Ответ: Исходница
Эта функция позволяет манипулировать размером изображения в реальном времени без большой нагрузки на систему
Код:
Global scratch%=CreateImage(100,100) ;картинка для DrawSize Код:
Function DrawSizeImage(image,x%,y%,w%,h%) |
Ответ: Исходница
Несколько полезных математических формул
Вычисление расстояния до объекта: Код:
2D Sqr((x1-x2)^2+(y1-y2)^2) Код:
coef=1.4 Код:
boolvar = 1 - boolvar Код:
zaderjka = 5 |
Ответ: Исходница
Сегодня понадобилась функция разбиения строки:
Например имеем: 1,2,3,4,5,6,7,8,9,10 Нужно разбить по символу запятой и соответственно поместить всё в массив. PHP код:
SplitCount - количество результатов Простенький примерчик: PHP код:
|
Ответ: Исходница
|
Ответ: Исходница
Рекурсивный пробег по чилдам:
PHP код:
Не раз писалось, но думаю пусть будет и тут тоже. Область применения: Например у вас вся игровая локация сделана одной сценой в формате B3d. Вы хотите поставить точку старта в особом месте или расставить NPC прямо в 3dsmax (или другом пакете 3d моделирования) Имя каждого чилда вполне подходит для хранения такой информации. Для обработки каждого чилда можно завести вспомогательную ф-цию: допустим ApplyChild(child) где child - хендл чилда. ;---> Put code here <---; в ф-ции SeekChilds(ent) заменим на ApplyChild(child) У нас получился такой код: PHP код:
|
Ответ: Исходница
Мышь.
Все знают, что в интерфейсе Windows (да и не только) срабатывание щелчка по кнопке срабатывает в момент отпускания клавиши мыши. Вот скромная реализация подобного на Blitz3D: PHP код:
Приставка IM - Input manager (Менеджер ввода) Вместо MouseDown пишем IMMouseDown Вместо IMMouseHit пишем IMMouseHit И конечно IMMouseUP, которая возвращаят True при отпускании кнопки. Это решает сразу 2 беды. 1) Нет MouseUP 2) Как вы наверное заметили, при повторном вызывании ф-ции MouseHit или MouseDown в цикле функция возвращает False, хотя при первом вызове True. Чтобы этого избежать приходилось заводить глобальные переменные. Теперь это в прошлом. |
Ответ: Исходница
Функция выводит текст по буквам (написана для проекта "Часовёнок")
Код:
Пример использования: Код:
Dim currenttext$(99) |
Ответ: Исходница
Понеслась. Тут функции почти все мои, некоторые переделаны с других языков :)
Функции для работы с base64 Код:
Function base64_encode$(msg$) Код:
Function isLeapYear(year) Код:
Function yearDay(day,month,year) Код:
Function maxWidth() Код:
Function toJulian(day%,month%,year%) Код:
Function julianDay(jd%) Код:
Function setRYB(iR#,iY#,iB#) Код:
Function ID3_GetInfo(file$) Код:
Function httpGetRequest$(http_url$) Код:
Function httpGetFile(http_url$,savename$) Код:
Function unixtime() Код:
Function createField(w%,h%,sz#=1.0) |
Ответ: Исходница
Преобразование short (2байта), засейвенного в 4-байтовом блитцевском int-е, в адекватный 4-байтовый блитцевский же инт.
Код:
Function Short2Int%(a%) Цитата:
Цитата:
|
Ответ: Исходница
Ну чочо, продолжим:
Чётность: PHP код:
PHP код:
Узнать размер куба, в который вписан меш. Когда пользовался PhysX`ом функция была дико полезна. PHP код:
|
Ответ: Исходница
Позвольте не согласиться с первой реализацией: чётность проверяется сравнением последнего бита с 0.
Нужно битово домножить число на маску 00000000 00000000 00000000 00000001 а затем результат сравнить с 0. Если =0, то число чётное (т.е. можно сразу return (value and mask) ). В этой реализации нет долгих арифметических операций (тем паче деления!) и не надо реализовывать отдельную проверку для 0. (б3д под рукой нет) А так - занятные фунЕции |
Ответ: Исходница
Порт (реализация средствами б3д) функции из темы http://forum.boolean.name/showthread.php?t=9230 ( www.boolean.name > Программирование игр для компьютеров > C++ : Проверка: является ли строка числом?)
Проверка: является ли текст в строке числом. Код:
Function CheckIsNum%(S$) |
Ответ: Исходница
UPD функции, согласно посту №28 из темы
http://forum.boolean.name/showthread.php?t=9230 ( www.boolean.name > Программирование игр для компьютеров > C++ : Проверка: является ли строка числом?) Проверка: является ли текст в строке числом. http://forum.boolean.name/showpost.p...2&postcount=28 Код:
Function CheckIsNum%(S$) |
Ответ: Исходница
|
Часовой пояс GMT +4, время: 19:30. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot