Тема: Спидометр
Показать сообщение отдельно
Старый 30.08.2007, 22:23   #7
impersonalis
Зануда с интернетом
 
Аватар для impersonalis
 
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений
(для 20,935 пользователей)
Re: Спидометр

;рисуем табло спидометра
BACK=CreateImage(64,64);создаём память для хранения картинки размером 64 на 64
;обратите внимание: размеры - степень двойки
SetBuffer ImageBuffer(BACK);устанавливаем в качестве текущего буфера для рисования
;буфер картинки
Color 255,255,255;устаниавливаем цвет рисования - белый
Oval 0,0,64,64;рисуем овал (вписываем его в нашу квадратную картинку)

Color 0,0,255;устаниавливаем цвет рисования - синий

For i=0 To 359 Step 15;проходим по окружности от 0 до 359 градусов
;с шагом 15
Line 32,32,32+Cos(i)*30,32+Sin(i)*30;рисуем линию из центра к краю овала
Next

Color 255,255,255;устаниавливаем цвет рисования - белый
Oval 32-20,32-20,40,40;рисуем в центре картинки небольшой овал (радиус - 20пкс)

Color 255,0,0;устаниавливаем цвет рисования - красный
Oval 32-2,32-2,4,4;рисуем в центре картинки маленький кружок (радиус - 4пкс)
SaveBuffer(ImageBuffer(BACK),"back.bmp");сохраняем нашу картинку как "back.bmp"
FreeImage BACK;удаляем картинку из памяти
;=====================================
;рисуем стрелку
BACK=CreateImage(64,64)
;создаём память для хранения картинки размером 64 на 64
;обратите внимание: размеры - степень двойки
SetBuffer ImageBuffer(BACK);устанавливаем в качестве текущего буфера для рисования
Rect 31,2,3,30;рисуем стрелку: прямоугольник из середины верхней стороны квадарата к центру
SaveBuffer(ImageBuffer(BACK),"back2.bmp");сохраняе м нашу картинку как "back2.bmp"
FreeImage BACK;удаляем картинку из памяти
;=====================================
Graphics3D 800,600,32,2;инициализация 3д-режима
SetBuffer BackBuffer();устанавливаем в кач-ве текущего - задний буфер
camera=CreateCamera();создаём камеру
light=CreateLight();создаём свет

SP0=LoadSprite("back.bmp",4,camera);загружаем спрайт - панель спидометра
;аттачим его к камере
SP1=LoadSprite("back2.bmp",4,SP0);загружаем спрайт - стрелку спидометра
;аттачим его к панели спидометра

EntityOrder SP0,0;устанавливаем порядок отрисовки - поверх всех
EntityFX SP0,1;убираем влияние освещения на спрайт

EntityOrder SP1,-1;устанавливаем порядок отрисовки - поверх всех
EntityFX SP1,1убираем влияние освещения на спрайт

PositionEntity SP0,-4,2.7,5;позиционируем панель спидометра (а, следовательно, и стрелку)
;=
;создаём и позиционируем кубик - чтобы не пребывать в пустоте
cube=CreateCube()
PositionEntity cube,-3,2,6.5


While Not KeyHit(1)
RotateSprite SP1,-MilliSecs()*0.01; в кач-ве показаний спидометра ставим кол-во мск с момента
;запуска ситемы *(-0.01)
RenderWorld();отрсиовка 3д-сцены
Flip;смена буферов
Wend
End
вот
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
(Offline)
 
Ответить с цитированием