|
3D-программирование Вопросы, касающиеся программирования 3D мира |
17.03.2010, 08:47
|
#1
|
Элита
Регистрация: 17.04.2007
Сообщений: 1,950
Написано 1,506 полезных сообщений (для 7,979 пользователей)
|
RPM
Подскажите, как можно реализовать такой тахометр на чистом блице?
|
(Offline)
|
|
17.03.2010, 09:04
|
#2
|
Дэвелопер
Регистрация: 04.11.2009
Адрес: Украина, Днепропетровск
Сообщений: 1,480
Написано 662 полезных сообщений (для 1,985 пользователей)
|
Ответ: RPM
Именно такой чтобы вот так крутился?
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
17.03.2010, 09:13
|
#3
|
Модератор
Регистрация: 11.07.2007
Сообщений: 2,910
Написано 686 полезных сообщений (для 1,694 пользователей)
|
Ответ: RPM
ну, у меня только 1 но тупое решение - сделай анимационную картинку, и в зависимости от того, что нужно - выводи. кадров на 50-100 картинку.
|
(Offline)
|
|
17.03.2010, 09:16
|
#4
|
Дэвелопер
Регистрация: 04.11.2009
Адрес: Украина, Днепропетровск
Сообщений: 1,480
Написано 662 полезных сообщений (для 1,985 пользователей)
|
Ответ: RPM
Некрасивый спидометр. Легче и проще сделать картинку спидометра с маской и поверх этой картинки рендерить крутящуюся стрелочку.
|
(Offline)
|
|
17.03.2010, 09:25
|
#5
|
Дэвелопер
Регистрация: 17.01.2007
Сообщений: 1,552
Написано 351 полезных сообщений (для 774 пользователей)
|
Ответ: RPM
две текстуры. Тахометр и стрелка. Менять УВ координаты по Sin Cos от угла, также крутить стрелку.
|
(Offline)
|
|
Эти 4 пользователя(ей) сказали Спасибо H@NON за это полезное сообщение:
|
|
17.03.2010, 10:24
|
#6
|
Злобный Админ
Регистрация: 04.09.2005
Сообщений: 5,926
Написано 3,415 полезных сообщений (для 9,330 пользователей)
|
Ответ: RPM
+Обрезать вьюпортом
__________________
|
(Offline)
|
|
17.03.2010, 11:34
|
#7
|
Дэвелопер
Регистрация: 17.01.2007
Сообщений: 1,552
Написано 351 полезных сообщений (для 774 пользователей)
|
Ответ: RPM
пример с текстурными координатами.
Graphics3D 800, 600, 32, 2
Local tex_tablo = CreateTexture(256,256, 16+32)
SetBuffer TextureBuffer(tex_tablo)
ClsColor 0,0,0
Cls
Color 0, 255, 0
Oval 10, 10, 236, 236, 1
SetBuffer BackBuffer()
Local mesh_tahometr = CreateQuad(2,2)
Local surf = GetSurface(mesh_tahometr, 1)
EntityTexture mesh_tahometr, tex_tablo, 0, 1
Local cam = CreateCamera()
MoveEntity cam, 0, 0, -4
CameraClsColor cam, 100,100,100
Local ANGLE
While KeyDown(1)=0
ANGLE = ANGLE + KeyDown(200) - KeyDown(208)
For n = 0 To CountVertices(surf)
Select n
; Bottom Left
Case 0 : VertexTexCoords surf, n, 0.25-Sin(ANGLE)*0.25, Cos(ANGLE)*0.25+0.25
; top left
Case 1 : VertexTexCoords surf, n, 0.25-Sin(ANGLE)*0.25, Cos(ANGLE)*0.25+0.75
; top right
Case 2 : VertexTexCoords surf, n, 0.75-Sin(ANGLE)*0.25, Cos(ANGLE)*0.25+0.75
; Bottom right
Case 3 : VertexTexCoords surf, n, 0.75-Sin(ANGLE)*0.25, Cos(ANGLE)*0.25+0.25
End Select
Next
RenderWorld()
Text 10, 10, "Arrows top/bottom"
Text 10, 30, "Angle "+ANGLE
Flip
Wend
End
Function CreateQuad(XSize#=1,ZSize#=1,Brush=0)
Local Surf
Local Mesh=CreateMesh()
If Brush>0 Then
Surf=CreateSurface(Mesh,Brush)
Else
Surf=CreateSurface(Mesh)
End If
Local t=AddVertex (Surf,0,0,0,0,1)
AddVertex (Surf,0,ZSize,0,0,0)
AddVertex (Surf,XSize,ZSize,0,1,0)
AddVertex (Surf,XSize,0,0,1,1)
AddTriangle Surf,t,t+2,t+3
AddTriangle Surf,t,t+1,t+2
Return Mesh
End Function
|
(Offline)
|
|
Эти 2 пользователя(ей) сказали Спасибо H@NON за это полезное сообщение:
|
|
17.03.2010, 15:49
|
#8
|
Элита
Регистрация: 17.04.2007
Сообщений: 1,950
Написано 1,506 полезных сообщений (для 7,979 пользователей)
|
Ответ: RPM
Спасибо, буду думать.
Данил, я про это сразу подумал... но мне кажется, будет не очень плавно
Reks888, почему? ИМХО, это лучшая реализация тахометра. Выглядит стильно, хорошо видно значение, а главное занимает мало места на экране.
H@NON, большое спасибо.
З.Ы. Тахометр этот из Need for Speed 4 (версия для первой PlayStation)
|
(Offline)
|
|
17.03.2010, 15:53
|
#9
|
Ференька
Регистрация: 26.01.2007
Адрес: улица Пушкина дом Колотушкина
Сообщений: 10,741
Написано 5,461 полезных сообщений (для 15,675 пользователей)
|
Ответ: RPM
Чё-то дергается как-то противно... Или это скрин такой упоротый? UV-координатами - самый нормальный вариант, Ханон уже опередил с ответом.
__________________
Мои проекты:
Анальное Рабство
Зелёный Слоник
Дмитрий Маслов*
Различие**
Клюква**
* — в стадии разработки
** — в стадии проектирования
Для проектов в стадии проектирования приведены кодовые имена
|
(Offline)
|
|
17.03.2010, 16:23
|
#10
|
Элита
Регистрация: 17.04.2007
Сообщений: 1,950
Написано 1,506 полезных сообщений (для 7,979 пользователей)
|
Ответ: RPM
Вот геймплейное видео: http://www.youtube.com/watch?v=ShdQgufq1cY
На нем хорошо видно как он работает
|
(Offline)
|
|
02.04.2010, 07:37
|
#11
|
Элита
Регистрация: 16.01.2010
Адрес: Новосибирск
Сообщений: 2,157
Написано 502 полезных сообщений (для 1,012 пользователей)
|
Ответ: RPM
Ресуй самим блитцом, долго но красиво
|
(Offline)
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 10:59.
|