Diablo/Diablo 2 Style Isometric View

Irrlicht.Net is no longer developed or supported, Irrlicht.Net Cross Platform is a much more complete wrapper. Please ask your C# related questions on their forums first.
Locked
Irme
Posts: 55
Joined: Sat Jul 16, 2005 8:24 am

Diablo/Diablo 2 Style Isometric View

Post by Irme »

As the title suggests i have developed a view that is 3d isometric like diablo 2 you move around the same way and such, its still very early but you can view the demo here:

http://thetrials.game-host.org/tools/Tr ... v0_0_1.zip

please comment and let me know what you think.

NOTE: This is all written in VB.Net
mikeyj
Posts: 7
Joined: Mon Jul 11, 2005 11:21 pm

Post by mikeyj »

Hi Irme!

Looks good so far!

<Superficial thought>
I think the camera should be a little higher if you are trying to mimic Diablo/Baldurs Gate etc. It seems a little 'low to the ground' to me (only if you are trying to exactly copy Diablo, that is!)..
</Superficial thought>

Not sure about the skybox, though! ;)

Best of luck - It's good to see others using .NET with Irrlicht!
Irme
Posts: 55
Joined: Sat Jul 16, 2005 8:24 am

Post by Irme »

Thanks mikeyj, i too had the thought about the camera being a little to low - i will prolly start messing with it more, when i get acutal people rendering instead of a ball.

The skybox was somethign i just kinda threw in at the last second so that it wasnt floating on a black nothing :D i'll make it look purdy eventually :D
karim1a2004
Posts: 41
Joined: Sat Jan 15, 2005 8:03 pm
Contact:

Post by karim1a2004 »

Irme
are you a sample code in vb.net
for you iso metric camera
thanks
Irme
Posts: 55
Joined: Sat Jul 16, 2005 8:24 am

Post by Irme »

sure thing as soon as i get a chance i will.
Irme
Posts: 55
Joined: Sat Jul 16, 2005 8:24 am

Post by Irme »

Okay here is the code - its actually really simple.

Code: Select all

Public Sub MoveCamera(ByVal vec As Vector3D)
    vec.Y += 150
    vec.X += 150
    vec.Z += 150
    cam.Position = vec
End Sub
cam is the variable of the camera that will be moving.
vec is the a vector3d variable that gets passed into my sub that is the current position of the player node.
the 150s are the offset values that i have chosen, you can alter them all you want to change your iso view for diff angles.

this is what i work and its clean and clear ive had no problems with it. if you wanna see it in action head over to thetrials.game-host.org and download the current version.
karim1a2004
Posts: 41
Joined: Sat Jan 15, 2005 8:03 pm
Contact:

Post by karim1a2004 »

thank irme
show this code
Public Sub MoveCamera(ByVal vec As Vector3D)
vec.Y += 150
vec.X += 150
vec.Z += 150
cam.Position = vec
End Sub

End Module


Public Class MyEventReceiver
Implements IEventReceiver

Public Function OnEvent(ByVal e As [Event]) As Boolean Implements IEventReceiver.OnEvent
If e.Type = EventType.KeyInput Then
'37=leftkey,38=upkey,39=rightkey,40=downkey,
If e.Key = 27 Then End
If e.Key = 38 Then Xc = Xc - 4
If e.Key = 40 Then Xc = Xc + 4
MoveCamera(New Vector3D(Xc, Yc, Zc))

Return True
End If

Return False
End Function


End Class
it s good of no
Irme
Posts: 55
Joined: Sat Jul 16, 2005 8:24 am

Post by Irme »

First off - make sure you use the code segments to post code.

Code: Select all

Public Sub MoveCamera(ByVal vec As Vector3D)
    vec.Y += 150 
    vec.X += 150
    vec.Z += 150
    cam.Position = vec
End Sub
End Module


Public Class MyEventReceiver
Implements IEventReceiver
Public Function OnEvent(ByVal e As [Event]) As Boolean Implements 
IEventReceiver.OnEvent
    select case e.type
    
    case eventtype.keyinput
        select case e.key
        case 27
            End
        case 38
            Xc -= 4
        case 40
            Xc += 4 
        end select
        MoveCamera(New Vector3d(Xc,Yx,Zc)
        return true
    end select
    return false
end function
end class
try using select statements - i've found they work better for things like this.

also, if you dont have a point of reference in the scene you wont be able to tell if it's moveing or not - but this should work - if it doesnt let me know.
Locked