Ir ao conteúdo
  • Cadastre-se

Outro VB6 - Raycasting - como obter a linha texturada?


Posts recomendados

eis o código para desenhar 1 linha:
 

WallDistance = WallDistance * Cos(RayRadians - Player.Radians) 'avoiding the Fish Effect
        RayHeight = (ObjectSize / WallDistance) * 200 ' is the height screen\
        a.drawline(x0,y0,x1,y1) A.DrawLine 475 + 50 + RayCounts, 200 / 2 - RayHeight / 2, 475 + 50 + RayCounts, 200 / 2 + RayHeight / 2

a linha vertical aparece sem problemas... agora queria mostrar com textura:
 

'obter o a linha mais curta(horizontal ou vertical):
        If VertDist < HorizDist Then
            ' Draw the vertical ray:
            A.DrawLine Fix(Player.PosX), Fix(Player.PosY), Fix(VertX), Fix(VertY)
            WallDistance = VertDist
            GridX = VertX Mod ObjectSize
            GridY = VertY Mod ObjectSize
        Else
            ' Draw the horizontal ray:
            A.DrawLine Fix(Player.PosX), Fix(Player.PosY), Fix(HorizX), Fix(HorizY)
            
            WallDistance = HorizDist
            
            GridX = HorizX Mod ObjectSize
            GridY = HorizY Mod ObjectSize
        End If
        'Debug.Print GridX & "  " & GridY
        WallDistance = WallDistance * Cos(RayRadians - Player.Radians) 'avoiding the Fish Effect
        RayHeight = (ObjectSize / WallDistance) * 200 ' is the height screen\
        'a.drawline(x0,y0,x1,y1) A.DrawLine 475 + 50 + RayCounts, 200 / 2 - RayHeight / 2, 475 + 50 + RayCounts, 200 / 2 + RayHeight / 2
        If (GridX = 0) Then
            StretchBlt A.MemoryHDC, 475 + 50 + RayCounts, 200 / 2 - RayHeight / 2, 475 + 50 + RayCounts, 200 / 2 + RayHeight / 2, picWall1.hdc, 0, GridY, 1, picWall1.Height, SRCCOPY
        Else
            StretchBlt A.MemoryHDC, 475 + 50 + RayCounts, 200 / 2 - RayHeight / 2, 475 + 50 + RayCounts, 200 / 2 + RayHeight / 2, picWall1.hdc, GridX, 0, picWall1.Width, 1, SRCCOPY
        End If

mas não desenha nada de jeito 😞
os calculos podem estar errados sem me aparecer:
image.thumb.png.a764846cb86737491015dabf4bda3175.png

onde errei para obter a linha da imagem?

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!