Update C sources, add new functions and rename package to

This commit is contained in:
Milan Nikolic 2018-10-08 18:56:34 +02:00
parent 391c25482d
commit 08aa518a46
156 changed files with 34542 additions and 19573 deletions

View file

@ -8,41 +8,41 @@ func main() {
screenWidth := int32(800)
screenHeight := int32(450)
raylib.InitWindow(screenWidth, screenHeight, "raylib [models] example - drawing billboards")
rl.InitWindow(screenWidth, screenHeight, "raylib [models] example - drawing billboards")
camera := raylib.Camera{}
camera.Position = raylib.NewVector3(5.0, 4.0, 5.0)
camera.Target = raylib.NewVector3(0.0, 2.0, 0.0)
camera.Up = raylib.NewVector3(0.0, 1.0, 0.0)
camera := rl.Camera{}
camera.Position = rl.NewVector3(5.0, 4.0, 5.0)
camera.Target = rl.NewVector3(0.0, 2.0, 0.0)
camera.Up = rl.NewVector3(0.0, 1.0, 0.0)
camera.Fovy = 45.0
camera.Type = raylib.CameraPerspective
camera.Type = rl.CameraPerspective
bill := raylib.LoadTexture("billboard.png") // Our texture billboard
billPosition := raylib.NewVector3(0.0, 2.0, 0.0) // Position where draw billboard
bill := rl.LoadTexture("billboard.png") // Our texture billboard
billPosition := rl.NewVector3(0.0, 2.0, 0.0) // Position where draw billboard
raylib.SetCameraMode(camera, raylib.CameraOrbital) // Set an orbital camera mode
rl.SetCameraMode(camera, rl.CameraOrbital) // Set an orbital camera mode
raylib.SetTargetFPS(60)
rl.SetTargetFPS(60)
for !raylib.WindowShouldClose() {
raylib.UpdateCamera(&camera) // Update camera
for !rl.WindowShouldClose() {
rl.UpdateCamera(&camera) // Update camera
raylib.BeginDrawing()
rl.BeginDrawing()
raylib.ClearBackground(raylib.RayWhite)
rl.ClearBackground(rl.RayWhite)
raylib.BeginMode3D(camera)
rl.BeginMode3D(camera)
raylib.DrawBillboard(camera, bill, billPosition, 2.0, raylib.White)
rl.DrawBillboard(camera, bill, billPosition, 2.0, rl.White)
raylib.DrawGrid(10, 1.0) // Draw a grid
rl.DrawGrid(10, 1.0) // Draw a grid
raylib.EndMode3D()
rl.EndMode3D()
raylib.EndDrawing()
rl.EndDrawing()
}
raylib.UnloadTexture(bill) // Unload texture
rl.UnloadTexture(bill) // Unload texture
raylib.CloseWindow()
rl.CloseWindow()
}

View file

@ -8,62 +8,62 @@ func main() {
screenWidth := int32(800)
screenHeight := int32(450)
raylib.InitWindow(screenWidth, screenHeight, "raylib [models] example - box collisions")
rl.InitWindow(screenWidth, screenHeight, "raylib [models] example - box collisions")
camera := raylib.Camera{}
camera.Position = raylib.NewVector3(0.0, 10.0, 10.0)
camera.Target = raylib.NewVector3(0.0, 0.0, 0.0)
camera.Up = raylib.NewVector3(0.0, 1.0, 0.0)
camera := rl.Camera{}
camera.Position = rl.NewVector3(0.0, 10.0, 10.0)
camera.Target = rl.NewVector3(0.0, 0.0, 0.0)
camera.Up = rl.NewVector3(0.0, 1.0, 0.0)
camera.Fovy = 45.0
camera.Type = raylib.CameraPerspective
camera.Type = rl.CameraPerspective
playerPosition := raylib.NewVector3(0.0, 1.0, 2.0)
playerSize := raylib.NewVector3(1.0, 2.0, 1.0)
playerColor := raylib.Green
playerPosition := rl.NewVector3(0.0, 1.0, 2.0)
playerSize := rl.NewVector3(1.0, 2.0, 1.0)
playerColor := rl.Green
enemyBoxPos := raylib.NewVector3(-4.0, 1.0, 0.0)
enemyBoxSize := raylib.NewVector3(2.0, 2.0, 2.0)
enemyBoxPos := rl.NewVector3(-4.0, 1.0, 0.0)
enemyBoxSize := rl.NewVector3(2.0, 2.0, 2.0)
enemySpherePos := raylib.NewVector3(4.0, 0.0, 0.0)
enemySpherePos := rl.NewVector3(4.0, 0.0, 0.0)
enemySphereSize := float32(1.5)
collision := false
raylib.SetTargetFPS(60)
rl.SetTargetFPS(60)
for !raylib.WindowShouldClose() {
for !rl.WindowShouldClose() {
// Update
// Move player
if raylib.IsKeyDown(raylib.KeyRight) {
if rl.IsKeyDown(rl.KeyRight) {
playerPosition.X += 0.2
} else if raylib.IsKeyDown(raylib.KeyLeft) {
} else if rl.IsKeyDown(rl.KeyLeft) {
playerPosition.X -= 0.2
} else if raylib.IsKeyDown(raylib.KeyDown) {
} else if rl.IsKeyDown(rl.KeyDown) {
playerPosition.Z += 0.2
} else if raylib.IsKeyDown(raylib.KeyUp) {
} else if rl.IsKeyDown(rl.KeyUp) {
playerPosition.Z -= 0.2
}
collision = false
// Check collisions player vs enemy-box
if raylib.CheckCollisionBoxes(
raylib.NewBoundingBox(
raylib.NewVector3(playerPosition.X-playerSize.X/2, playerPosition.Y-playerSize.Y/2, playerPosition.Z-playerSize.Z/2),
raylib.NewVector3(playerPosition.X+playerSize.X/2, playerPosition.Y+playerSize.Y/2, playerPosition.Z+playerSize.Z/2)),
raylib.NewBoundingBox(
raylib.NewVector3(enemyBoxPos.X-enemyBoxSize.X/2, enemyBoxPos.Y-enemyBoxSize.Y/2, enemyBoxPos.Z-enemyBoxSize.Z/2),
raylib.NewVector3(enemyBoxPos.X+enemyBoxSize.X/2, enemyBoxPos.Y+enemyBoxSize.Y/2, enemyBoxPos.Z+enemyBoxSize.Z/2)),
if rl.CheckCollisionBoxes(
rl.NewBoundingBox(
rl.NewVector3(playerPosition.X-playerSize.X/2, playerPosition.Y-playerSize.Y/2, playerPosition.Z-playerSize.Z/2),
rl.NewVector3(playerPosition.X+playerSize.X/2, playerPosition.Y+playerSize.Y/2, playerPosition.Z+playerSize.Z/2)),
rl.NewBoundingBox(
rl.NewVector3(enemyBoxPos.X-enemyBoxSize.X/2, enemyBoxPos.Y-enemyBoxSize.Y/2, enemyBoxPos.Z-enemyBoxSize.Z/2),
rl.NewVector3(enemyBoxPos.X+enemyBoxSize.X/2, enemyBoxPos.Y+enemyBoxSize.Y/2, enemyBoxPos.Z+enemyBoxSize.Z/2)),
) {
collision = true
}
// Check collisions player vs enemy-sphere
if raylib.CheckCollisionBoxSphere(
raylib.NewBoundingBox(
raylib.NewVector3(playerPosition.X-playerSize.X/2, playerPosition.Y-playerSize.Y/2, playerPosition.Z-playerSize.Z/2),
raylib.NewVector3(playerPosition.X+playerSize.X/2, playerPosition.Y+playerSize.Y/2, playerPosition.Z+playerSize.Z/2)),
if rl.CheckCollisionBoxSphere(
rl.NewBoundingBox(
rl.NewVector3(playerPosition.X-playerSize.X/2, playerPosition.Y-playerSize.Y/2, playerPosition.Z-playerSize.Z/2),
rl.NewVector3(playerPosition.X+playerSize.X/2, playerPosition.Y+playerSize.Y/2, playerPosition.Z+playerSize.Z/2)),
enemySpherePos,
enemySphereSize,
) {
@ -71,40 +71,40 @@ func main() {
}
if collision {
playerColor = raylib.Red
playerColor = rl.Red
} else {
playerColor = raylib.Green
playerColor = rl.Green
}
// Draw
raylib.BeginDrawing()
rl.BeginDrawing()
raylib.ClearBackground(raylib.RayWhite)
rl.ClearBackground(rl.RayWhite)
raylib.BeginMode3D(camera)
rl.BeginMode3D(camera)
// Draw enemy-box
raylib.DrawCube(enemyBoxPos, enemyBoxSize.X, enemyBoxSize.Y, enemyBoxSize.Z, raylib.Gray)
raylib.DrawCubeWires(enemyBoxPos, enemyBoxSize.X, enemyBoxSize.Y, enemyBoxSize.Z, raylib.DarkGray)
rl.DrawCube(enemyBoxPos, enemyBoxSize.X, enemyBoxSize.Y, enemyBoxSize.Z, rl.Gray)
rl.DrawCubeWires(enemyBoxPos, enemyBoxSize.X, enemyBoxSize.Y, enemyBoxSize.Z, rl.DarkGray)
// Draw enemy-sphere
raylib.DrawSphere(enemySpherePos, enemySphereSize, raylib.Gray)
raylib.DrawSphereWires(enemySpherePos, enemySphereSize, 16, 16, raylib.DarkGray)
rl.DrawSphere(enemySpherePos, enemySphereSize, rl.Gray)
rl.DrawSphereWires(enemySpherePos, enemySphereSize, 16, 16, rl.DarkGray)
// Draw player
raylib.DrawCubeV(playerPosition, playerSize, playerColor)
rl.DrawCubeV(playerPosition, playerSize, playerColor)
raylib.DrawGrid(10, 1.0) // Draw a grid
rl.DrawGrid(10, 1.0) // Draw a grid
raylib.EndMode3D()
rl.EndMode3D()
raylib.DrawText("Move player with cursors to collide", 220, 40, 20, raylib.Gray)
rl.DrawText("Move player with cursors to collide", 220, 40, 20, rl.Gray)
raylib.DrawFPS(10, 10)
rl.DrawFPS(10, 10)
raylib.EndDrawing()
rl.EndDrawing()
}
raylib.CloseWindow()
rl.CloseWindow()
}

View file

@ -8,64 +8,64 @@ func main() {
screenWidth := int32(800)
screenHeight := int32(450)
raylib.InitWindow(screenWidth, screenHeight, "raylib [models] example - cubesmap loading and drawing")
rl.InitWindow(screenWidth, screenHeight, "raylib [models] example - cubesmap loading and drawing")
camera := raylib.Camera{}
camera.Position = raylib.NewVector3(16.0, 14.0, 16.0)
camera.Target = raylib.NewVector3(0.0, 0.0, 0.0)
camera.Up = raylib.NewVector3(0.0, 1.0, 0.0)
camera := rl.Camera{}
camera.Position = rl.NewVector3(16.0, 14.0, 16.0)
camera.Target = rl.NewVector3(0.0, 0.0, 0.0)
camera.Up = rl.NewVector3(0.0, 1.0, 0.0)
camera.Fovy = 45.0
camera.Type = raylib.CameraPerspective
camera.Type = rl.CameraPerspective
image := raylib.LoadImage("cubicmap.png") // Load cubicmap image (RAM)
cubicmap := raylib.LoadTextureFromImage(image) // Convert image to texture to display (VRAM)
image := rl.LoadImage("cubicmap.png") // Load cubicmap image (RAM)
cubicmap := rl.LoadTextureFromImage(image) // Convert image to texture to display (VRAM)
mesh := raylib.GenMeshCubicmap(*image, raylib.NewVector3(1.0, 1.0, 1.0))
model := raylib.LoadModelFromMesh(mesh)
mesh := rl.GenMeshCubicmap(*image, rl.NewVector3(1.0, 1.0, 1.0))
model := rl.LoadModelFromMesh(mesh)
// NOTE: By default each cube is mapped to one part of texture atlas
texture := raylib.LoadTexture("cubicmap_atlas.png") // Load map texture
model.Material.Maps[raylib.MapDiffuse].Texture = texture // Set map diffuse texture
texture := rl.LoadTexture("cubicmap_atlas.png") // Load map texture
model.Material.Maps[rl.MapDiffuse].Texture = texture // Set map diffuse texture
mapPosition := raylib.NewVector3(-16.0, 0.0, -8.0) // Set model position
mapPosition := rl.NewVector3(-16.0, 0.0, -8.0) // Set model position
raylib.UnloadImage(image) // Unload cubicmap image from RAM, already uploaded to VRAM
rl.UnloadImage(image) // Unload cubicmap image from RAM, already uploaded to VRAM
raylib.SetCameraMode(camera, raylib.CameraOrbital) // Set an orbital camera mode
rl.SetCameraMode(camera, rl.CameraOrbital) // Set an orbital camera mode
raylib.SetTargetFPS(60)
rl.SetTargetFPS(60)
for !raylib.WindowShouldClose() {
for !rl.WindowShouldClose() {
// Update
raylib.UpdateCamera(&camera) // Update camera
rl.UpdateCamera(&camera) // Update camera
// Draw
raylib.BeginDrawing()
rl.BeginDrawing()
raylib.ClearBackground(raylib.RayWhite)
rl.ClearBackground(rl.RayWhite)
raylib.BeginMode3D(camera)
rl.BeginMode3D(camera)
raylib.DrawModel(model, mapPosition, 1.0, raylib.White)
rl.DrawModel(model, mapPosition, 1.0, rl.White)
raylib.EndMode3D()
rl.EndMode3D()
raylib.DrawTextureEx(cubicmap, raylib.NewVector2(float32(screenWidth-cubicmap.Width*4-20), 20), 0.0, 4.0, raylib.White)
raylib.DrawRectangleLines(screenWidth-cubicmap.Width*4-20, 20, cubicmap.Width*4, cubicmap.Height*4, raylib.Green)
rl.DrawTextureEx(cubicmap, rl.NewVector2(float32(screenWidth-cubicmap.Width*4-20), 20), 0.0, 4.0, rl.White)
rl.DrawRectangleLines(screenWidth-cubicmap.Width*4-20, 20, cubicmap.Width*4, cubicmap.Height*4, rl.Green)
raylib.DrawText("cubicmap image used to", 658, 90, 10, raylib.Gray)
raylib.DrawText("generate map 3d model", 658, 104, 10, raylib.Gray)
rl.DrawText("cubicmap image used to", 658, 90, 10, rl.Gray)
rl.DrawText("generate map 3d model", 658, 104, 10, rl.Gray)
raylib.DrawFPS(10, 10)
rl.DrawFPS(10, 10)
raylib.EndDrawing()
rl.EndDrawing()
}
raylib.UnloadTexture(cubicmap) // Unload cubicmap texture
raylib.UnloadTexture(texture) // Unload map texture
raylib.UnloadModel(model) // Unload map model
rl.UnloadTexture(cubicmap) // Unload cubicmap texture
rl.UnloadTexture(texture) // Unload map texture
rl.UnloadModel(model) // Unload map model
raylib.CloseWindow()
rl.CloseWindow()
}

View file

@ -8,45 +8,45 @@ func main() {
screenWidth := int32(800)
screenHeight := int32(450)
raylib.InitWindow(screenWidth, screenHeight, "raylib [models] example - geometric shapes")
rl.InitWindow(screenWidth, screenHeight, "raylib [models] example - geometric shapes")
camera := raylib.Camera{}
camera.Position = raylib.NewVector3(0.0, 10.0, 10.0)
camera.Target = raylib.NewVector3(0.0, 0.0, 0.0)
camera.Up = raylib.NewVector3(0.0, 1.0, 0.0)
camera := rl.Camera{}
camera.Position = rl.NewVector3(0.0, 10.0, 10.0)
camera.Target = rl.NewVector3(0.0, 0.0, 0.0)
camera.Up = rl.NewVector3(0.0, 1.0, 0.0)
camera.Fovy = 45.0
raylib.SetTargetFPS(60)
rl.SetTargetFPS(60)
for !raylib.WindowShouldClose() {
raylib.BeginDrawing()
for !rl.WindowShouldClose() {
rl.BeginDrawing()
raylib.ClearBackground(raylib.RayWhite)
rl.ClearBackground(rl.RayWhite)
raylib.BeginMode3D(camera)
rl.BeginMode3D(camera)
raylib.DrawCube(raylib.NewVector3(-4.0, 0.0, 2.0), 2.0, 5.0, 2.0, raylib.Red)
raylib.DrawCubeWires(raylib.NewVector3(-4.0, 0.0, 2.0), 2.0, 5.0, 2.0, raylib.Gold)
raylib.DrawCubeWires(raylib.NewVector3(-4.0, 0.0, -2.0), 3.0, 6.0, 2.0, raylib.Maroon)
rl.DrawCube(rl.NewVector3(-4.0, 0.0, 2.0), 2.0, 5.0, 2.0, rl.Red)
rl.DrawCubeWires(rl.NewVector3(-4.0, 0.0, 2.0), 2.0, 5.0, 2.0, rl.Gold)
rl.DrawCubeWires(rl.NewVector3(-4.0, 0.0, -2.0), 3.0, 6.0, 2.0, rl.Maroon)
raylib.DrawSphere(raylib.NewVector3(-1.0, 0.0, -2.0), 1.0, raylib.Green)
raylib.DrawSphereWires(raylib.NewVector3(1.0, 0.0, 2.0), 2.0, 16, 16, raylib.Lime)
rl.DrawSphere(rl.NewVector3(-1.0, 0.0, -2.0), 1.0, rl.Green)
rl.DrawSphereWires(rl.NewVector3(1.0, 0.0, 2.0), 2.0, 16, 16, rl.Lime)
raylib.DrawCylinder(raylib.NewVector3(4.0, 0.0, -2.0), 1.0, 2.0, 3.0, 4, raylib.SkyBlue)
raylib.DrawCylinderWires(raylib.NewVector3(4.0, 0.0, -2.0), 1.0, 2.0, 3.0, 4, raylib.DarkBlue)
raylib.DrawCylinderWires(raylib.NewVector3(4.5, -1.0, 2.0), 1.0, 1.0, 2.0, 6, raylib.Brown)
rl.DrawCylinder(rl.NewVector3(4.0, 0.0, -2.0), 1.0, 2.0, 3.0, 4, rl.SkyBlue)
rl.DrawCylinderWires(rl.NewVector3(4.0, 0.0, -2.0), 1.0, 2.0, 3.0, 4, rl.DarkBlue)
rl.DrawCylinderWires(rl.NewVector3(4.5, -1.0, 2.0), 1.0, 1.0, 2.0, 6, rl.Brown)
raylib.DrawCylinder(raylib.NewVector3(1.0, 0.0, -4.0), 0.0, 1.5, 3.0, 8, raylib.Gold)
raylib.DrawCylinderWires(raylib.NewVector3(1.0, 0.0, -4.0), 0.0, 1.5, 3.0, 8, raylib.Pink)
rl.DrawCylinder(rl.NewVector3(1.0, 0.0, -4.0), 0.0, 1.5, 3.0, 8, rl.Gold)
rl.DrawCylinderWires(rl.NewVector3(1.0, 0.0, -4.0), 0.0, 1.5, 3.0, 8, rl.Pink)
raylib.DrawGrid(10, 1.0) // Draw a grid
rl.DrawGrid(10, 1.0) // Draw a grid
raylib.EndMode3D()
rl.EndMode3D()
raylib.DrawFPS(10, 10)
rl.DrawFPS(10, 10)
raylib.EndDrawing()
rl.EndDrawing()
}
raylib.CloseWindow()
rl.CloseWindow()
}

View file

@ -8,58 +8,58 @@ func main() {
screenWidth := int32(800)
screenHeight := int32(450)
raylib.InitWindow(screenWidth, screenHeight, "raylib [models] example - heightmap loading and drawing")
rl.InitWindow(screenWidth, screenHeight, "raylib [models] example - heightmap loading and drawing")
camera := raylib.Camera{}
camera.Position = raylib.NewVector3(18.0, 16.0, 18.0)
camera.Target = raylib.NewVector3(0.0, 0.0, 0.0)
camera.Up = raylib.NewVector3(0.0, 1.0, 0.0)
camera := rl.Camera{}
camera.Position = rl.NewVector3(18.0, 16.0, 18.0)
camera.Target = rl.NewVector3(0.0, 0.0, 0.0)
camera.Up = rl.NewVector3(0.0, 1.0, 0.0)
camera.Fovy = 45.0
image := raylib.LoadImage("heightmap.png") // Load heightmap image (RAM)
texture := raylib.LoadTextureFromImage(image) // Convert image to texture (VRAM)
image := rl.LoadImage("heightmap.png") // Load heightmap image (RAM)
texture := rl.LoadTextureFromImage(image) // Convert image to texture (VRAM)
mesh := raylib.GenMeshHeightmap(*image, raylib.NewVector3(16, 8, 16)) // Generate heightmap mesh (RAM and VRAM)
model := raylib.LoadModelFromMesh(mesh) // Load model from generated mesh
mesh := rl.GenMeshHeightmap(*image, rl.NewVector3(16, 8, 16)) // Generate heightmap mesh (RAM and VRAM)
model := rl.LoadModelFromMesh(mesh) // Load model from generated mesh
model.Material.Maps[raylib.MapDiffuse].Texture = texture // Set map diffuse texture
mapPosition := raylib.NewVector3(-8.0, 0.0, -8.0) // Set model position
model.Material.Maps[rl.MapDiffuse].Texture = texture // Set map diffuse texture
mapPosition := rl.NewVector3(-8.0, 0.0, -8.0) // Set model position
raylib.UnloadImage(image) // Unload heightmap image from RAM, already uploaded to VRAM
rl.UnloadImage(image) // Unload heightmap image from RAM, already uploaded to VRAM
raylib.SetCameraMode(camera, raylib.CameraOrbital) // Set an orbital camera mode
rl.SetCameraMode(camera, rl.CameraOrbital) // Set an orbital camera mode
raylib.SetTargetFPS(60)
rl.SetTargetFPS(60)
for !raylib.WindowShouldClose() {
for !rl.WindowShouldClose() {
// Update
raylib.UpdateCamera(&camera) // Update camera
rl.UpdateCamera(&camera) // Update camera
// Draw
raylib.BeginDrawing()
rl.BeginDrawing()
raylib.ClearBackground(raylib.RayWhite)
rl.ClearBackground(rl.RayWhite)
raylib.BeginMode3D(camera)
rl.BeginMode3D(camera)
raylib.DrawModel(model, mapPosition, 1.0, raylib.Red)
rl.DrawModel(model, mapPosition, 1.0, rl.Red)
raylib.DrawGrid(20, 1.0)
rl.DrawGrid(20, 1.0)
raylib.EndMode3D()
rl.EndMode3D()
raylib.DrawTexture(texture, screenWidth-texture.Width-20, 20, raylib.White)
raylib.DrawRectangleLines(screenWidth-texture.Width-20, 20, texture.Width, texture.Height, raylib.Green)
rl.DrawTexture(texture, screenWidth-texture.Width-20, 20, rl.White)
rl.DrawRectangleLines(screenWidth-texture.Width-20, 20, texture.Width, texture.Height, rl.Green)
raylib.DrawFPS(10, 10)
rl.DrawFPS(10, 10)
raylib.EndDrawing()
rl.EndDrawing()
}
raylib.UnloadTexture(texture) // Unload map texture
raylib.UnloadModel(model) // Unload map model
rl.UnloadTexture(texture) // Unload map texture
rl.UnloadModel(model) // Unload map model
raylib.CloseWindow()
rl.CloseWindow()
}

View file

@ -8,45 +8,45 @@ func main() {
screenWidth := int32(800)
screenHeight := int32(450)
raylib.InitWindow(screenWidth, screenHeight, "raylib [models] example - obj model loading")
rl.InitWindow(screenWidth, screenHeight, "raylib [models] example - obj model loading")
camera := raylib.Camera{}
camera.Position = raylib.NewVector3(3.0, 3.0, 3.0)
camera.Target = raylib.NewVector3(0.0, 1.5, 0.0)
camera.Up = raylib.NewVector3(0.0, 1.0, 0.0)
camera := rl.Camera{}
camera.Position = rl.NewVector3(3.0, 3.0, 3.0)
camera.Target = rl.NewVector3(0.0, 1.5, 0.0)
camera.Up = rl.NewVector3(0.0, 1.0, 0.0)
camera.Fovy = 45.0
dwarf := raylib.LoadModel("dwarf.obj") // Load OBJ model
texture := raylib.LoadTexture("dwarf_diffuse.png") // Load model texture
dwarf := rl.LoadModel("dwarf.obj") // Load OBJ model
texture := rl.LoadTexture("dwarf_diffuse.png") // Load model texture
dwarf.Material.Maps[raylib.MapDiffuse].Texture = texture // Set dwarf model diffuse texture
dwarf.Material.Maps[rl.MapDiffuse].Texture = texture // Set dwarf model diffuse texture
position := raylib.NewVector3(0.0, 0.0, 0.0) // Set model position
position := rl.NewVector3(0.0, 0.0, 0.0) // Set model position
raylib.SetTargetFPS(60)
rl.SetTargetFPS(60)
for !raylib.WindowShouldClose() {
raylib.BeginDrawing()
for !rl.WindowShouldClose() {
rl.BeginDrawing()
raylib.ClearBackground(raylib.RayWhite)
rl.ClearBackground(rl.RayWhite)
raylib.BeginMode3D(camera)
rl.BeginMode3D(camera)
raylib.DrawModel(dwarf, position, 2.0, raylib.White) // Draw 3d model with texture
rl.DrawModel(dwarf, position, 2.0, rl.White) // Draw 3d model with texture
raylib.DrawGrid(10, 1.0) // Draw a grid
rl.DrawGrid(10, 1.0) // Draw a grid
raylib.DrawGizmo(position) // Draw gizmo
rl.DrawGizmo(position) // Draw gizmo
raylib.EndMode3D()
rl.EndMode3D()
raylib.DrawText("(c) Dwarf 3D model by David Moreno", screenWidth-200, screenHeight-20, 10, raylib.Gray)
rl.DrawText("(c) Dwarf 3D model by David Moreno", screenWidth-200, screenHeight-20, 10, rl.Gray)
raylib.EndDrawing()
rl.EndDrawing()
}
raylib.UnloadTexture(texture) // Unload texture
raylib.UnloadModel(dwarf) // Unload model
rl.UnloadTexture(texture) // Unload texture
rl.UnloadModel(dwarf) // Unload model
raylib.CloseWindow()
rl.CloseWindow()
}