Jump to content

Obtener partes de un vehículo.


aka Blue

Recommended Posts

  • 2 months later...
Posted

Que yo sepa solo se puede hacer separando la textura de los faros del vehículo

es decir separas los faros y les asignas una nueva textura a la cual dentro del juego mediante shader aplicas una u otra imagen depende del estado del intermitente.

Posted

Aunque obtengas la posiciones exactas para cada vehículo de los faros traseros y delanteros y tal no podrás de ninguna manera remplazar la textura de ellos si no los tienes separados bueno podrías también remplazar la textura general de los vehículos cada vez que usas el intermitente puede que funcione

Posted

@Arsilex El tema no es reemplazar la textura (eso ya lo sé, hay una textura de los faros, con un poco de edición en photoshop y shaders puedo aplicar y quitar para hacer el efecto de intermitente), sino, dibujar en esa posición. Algo como esto:

x, y, z = posicionfaro

x1, y1 = getScreenFromWorldPosition( x, y, z )

dxDrawText( "←", x1, y1, x1, y1 )

 

Posted

Usando esta funcion

function getElementMatrix(element)
    local rx, ry, rz = getElementRotation(element, "ZXY")
    rx, ry, rz = math.rad(rx), math.rad(ry), math.rad(rz)
    local matrix = {}
    matrix[1] = {}
    matrix[1][1] = math.cos(rz)*math.cos(ry) - math.sin(rz)*math.sin(rx)*math.sin(ry)
    matrix[1][2] = math.cos(ry)*math.sin(rz) + math.cos(rz)*math.sin(rx)*math.sin(ry)
    matrix[1][3] = -math.cos(rx)*math.sin(ry)
    matrix[1][4] = 1
    
    matrix[2] = {}
    matrix[2][1] = -math.cos(rx)*math.sin(rz)
    matrix[2][2] = math.cos(rz)*math.cos(rx)
    matrix[2][3] = math.sin(rx)
    matrix[2][4] = 1
	
    matrix[3] = {}
    matrix[3][1] = math.cos(rz)*math.sin(ry) + math.cos(ry)*math.sin(rz)*math.sin(rx)
    matrix[3][2] = math.sin(rz)*math.sin(ry) - math.cos(rz)*math.cos(ry)*math.sin(rx)
    matrix[3][3] = math.cos(rx)*math.cos(ry)
    matrix[3][4] = 1
	
    matrix[4] = {}
    matrix[4][1], matrix[4][2], matrix[4][3] = getElementPosition(element)
    matrix[4][4] = 1
	
    return matrix
end

Pero claro la cosa esta en sacar el offset de cada vehículo a mano. Sigo pensando que es mucho mas eficiente y rápido editar el archivo .dff para dejar los faros como un componente y con la función getVehicleComponentPosition con el valor de base="root" sacar la posición exacta.

  • 4 weeks later...
Posted
On 11/3/2017 at 16:08, Arsilex said:

Usando esta funcion


function getElementMatrix(element)
    local rx, ry, rz = getElementRotation(element, "ZXY")
    rx, ry, rz = math.rad(rx), math.rad(ry), math.rad(rz)
    local matrix = {}
    matrix[1] = {}
    matrix[1][1] = math.cos(rz)*math.cos(ry) - math.sin(rz)*math.sin(rx)*math.sin(ry)
    matrix[1][2] = math.cos(ry)*math.sin(rz) + math.cos(rz)*math.sin(rx)*math.sin(ry)
    matrix[1][3] = -math.cos(rx)*math.sin(ry)
    matrix[1][4] = 1
    
    matrix[2] = {}
    matrix[2][1] = -math.cos(rx)*math.sin(rz)
    matrix[2][2] = math.cos(rz)*math.cos(rx)
    matrix[2][3] = math.sin(rx)
    matrix[2][4] = 1
	
    matrix[3] = {}
    matrix[3][1] = math.cos(rz)*math.sin(ry) + math.cos(ry)*math.sin(rz)*math.sin(rx)
    matrix[3][2] = math.sin(rz)*math.sin(ry) - math.cos(rz)*math.cos(ry)*math.sin(rx)
    matrix[3][3] = math.cos(rx)*math.cos(ry)
    matrix[3][4] = 1
	
    matrix[4] = {}
    matrix[4][1], matrix[4][2], matrix[4][3] = getElementPosition(element)
    matrix[4][4] = 1
	
    return matrix
end

Pero claro la cosa esta en sacar el offset de cada vehículo a mano. Sigo pensando que es mucho mas eficiente y rápido editar el archivo .dff para dejar los faros como un componente y con la función getVehicleComponentPosition con el valor de base="root" sacar la posición exacta.

Evita todo esto con OOP & .matrix

De ahi puedes hacer :transformPosition(Vector3(offset)).

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...