Фиксированный шаг времени
Atrium: интеграция физики

atrium-physics-test2-win32.zip (3.13 Мб)
Поддержка боксов в физическом движке

physics-test7-win32.zip (0.9 Мб)
Исходники физического движка
physics-src-alpha0.zip (0.95 Мб).
Поддержка trimesh’ей в физическом движке
physics-test6-win32-optimized2.zip (0.98 Мб)
Журнал «FPS» №22
Вышел 22 номер электронного PDF-журнала «FPS», посвященного разработке игр, программированию, компьютерной графике и звуку.

Читайте в этом номере:
> «FPS» 5 лет спустя…
> Blender: новости
> Open Shading Language
> Python-скриптинг в Blender. Добавляем новый тип объектов
> Обзор дополнений Blender. Выпуск 4
> OpenVDB
> Интервью с Фабио Руссо
> GIMP: новости
> Секреты мастерства Python-Fu. Скрипт для создания миниатюр
> Оптимизация проверки столкновений
> Дао программиста: 10 правил успеха
> Закрытое железо. Что находится в «черном ящике»?
> Linux. Полезные команды. Выпуск 2
Дао программиста
1. Лучшая программа — это та, которая не была написана.
2. Простота — мать надежности.
3. Сложное должно быть простым.
4. Обычный программист думает: «Как сделать так, чтобы оно работало?»
Хакер думает: «Как сделать так, чтобы оно не сломалось?»
5. Оптимизация — это зло.
6. Если программа падает, в ней есть ошибка.
Если программа не падает, в ней все равно есть ошибка.
Просто она еще себя не проявила.
7. Защита от дурака важнее защиты от недоброжелателя.
8. Хороший код не нуждается в комментариях.
9. Красивое решение — правильное решение.
10. Улучшить порой сложнее, чем переписать заново.
Обновление физического движка
Исходники ждите в ближайшем будущем — они вскоре будут интегрированы в Atrium.
physics-test5-win32.zip (0.8 МБ)
physics-test5-linux-x86.tar.bz2 (2.0 МБ)
Кроме того, недавно я завел аккаунт на DropBox — теперь все публичные файлы буду выкладывать туда.
Thumbnailer для GIMP
Терпеть не могу рутинную, механическую работу! Сейчас вот пришлось вручную изготовлять миниатюры изображений произвольного разрешения, центрируя и уменьшая их до квадрата размером 128х128. Не стал долго мучиться, написал для GIMP скрипт на Python – и решил сразу выложить, вдруг кому-нибудь тоже пригодится:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
from gimpfu import *
def python_fu_thumbnailer(image, layer, width, height):
origWidth = pdb.gimp_image_width(image)
origHeight = pdb.gimp_image_height(image)
newWidth = origWidth
newHeight = origHeight
newX = 0
newY = 0
if (origWidth > origHeight):
newWidth = origHeight
newX = -(origWidth/2 - newWidth/2)
elif (origWidth < origHeight):
newHeight = origWidth
newY = -(origHeight/2 - newHeight/2)
pdb.gimp_layer_resize(layer, newWidth, newHeight, newX, newY)
pdb.gimp_image_resize_to_layers(image)
pdb.gimp_context_set_interpolation(INTERPOLATION_LANCZOS)
pdb.gimp_image_scale(image, width, height)
register(
"python-fu-thumbnailer",
"Thumbnailer",
"Thumbnailer 0.1",
"Timur Gafarov",
"(c) Copyright 2013 Timur Gafarov",
"09-02-2013",
"Make a thumbnail...",
"RGB*, GRAY*",
[
(PF_IMAGE, "image", "Target image", None),
(PF_DRAWABLE, "drawable", "Target layer", None),
(PF_SPINNER, "width", "Width:", 128, (1, 262144, 1)),
(PF_SPINNER, "height", "Height:", 128, (1, 262144, 1))
],
[],
python_fu_thumbnailer,
menu = "/Python-Fu/Transform")
main()
Тестировал с GIMP 2.7.4 и Python 2.7.1.