Update C sources and examples
|
@ -1,140 +0,0 @@
|
|||
package main
|
||||
|
||||
import (
|
||||
"github.com/gen2brain/raylib-go/raylib"
|
||||
)
|
||||
|
||||
func main() {
|
||||
screenWidth := int32(800)
|
||||
screenHeight := int32(450)
|
||||
|
||||
raylib.InitWindow(screenWidth, screenHeight, "raylib [text] example - font selector")
|
||||
|
||||
// NOTE: Textures MUST be loaded after Window initialization (OpenGL context is required)
|
||||
fonts := make([]raylib.SpriteFont, 8) // SpriteFont array
|
||||
|
||||
fonts[0] = raylib.LoadSpriteFont("fonts/alagard.rbmf") // SpriteFont loading
|
||||
fonts[1] = raylib.LoadSpriteFont("fonts/pixelplay.rbmf") // SpriteFont loading
|
||||
fonts[2] = raylib.LoadSpriteFont("fonts/mecha.rbmf") // SpriteFont loading
|
||||
fonts[3] = raylib.LoadSpriteFont("fonts/setback.rbmf") // SpriteFont loading
|
||||
fonts[4] = raylib.LoadSpriteFont("fonts/romulus.rbmf") // SpriteFont loading
|
||||
fonts[5] = raylib.LoadSpriteFont("fonts/pixantiqua.rbmf") // SpriteFont loading
|
||||
fonts[6] = raylib.LoadSpriteFont("fonts/alpha_beta.rbmf") // SpriteFont loading
|
||||
fonts[7] = raylib.LoadSpriteFont("fonts/jupiter_crash.rbmf") // SpriteFont loading
|
||||
|
||||
currentFont := 0 // Selected font
|
||||
|
||||
colors := [8]raylib.Color{raylib.Maroon, raylib.Orange, raylib.DarkGreen, raylib.DarkBlue, raylib.DarkPurple, raylib.Lime, raylib.Gold, raylib.Red}
|
||||
|
||||
fontNames := [8]string{"[0] Alagard", "[1] PixelPlay", "[2] MECHA", "[3] Setback", "[4] Romulus", "[5] PixAntiqua", "[6] Alpha Beta", "[7] Jupiter Crash"}
|
||||
|
||||
text := "THIS is THE FONT you SELECTED!" // Main text
|
||||
|
||||
textSize := raylib.MeasureTextEx(fonts[currentFont], text, float32(fonts[currentFont].BaseSize)*3, 1)
|
||||
|
||||
mousePoint := raylib.Vector2{}
|
||||
|
||||
btnNextOutColor := raylib.DarkBlue // Button color (outside line)
|
||||
btnNextInColor := raylib.SkyBlue // Button color (inside)
|
||||
|
||||
framesCounter := 0 // Useful to count frames button is 'active' = clicked
|
||||
|
||||
positionY := int32(180) // Text selector and button Y position
|
||||
|
||||
btnNextRec := raylib.NewRectangle(673, positionY, 109, 44) // Button rectangle (useful for collision)
|
||||
|
||||
raylib.SetTargetFPS(60)
|
||||
|
||||
for !raylib.WindowShouldClose() {
|
||||
// Update
|
||||
|
||||
// Keyboard-based font selection (easy)
|
||||
if raylib.IsKeyPressed(raylib.KeyRight) {
|
||||
if currentFont < 7 {
|
||||
currentFont++
|
||||
}
|
||||
}
|
||||
|
||||
if raylib.IsKeyPressed(raylib.KeyLeft) {
|
||||
if currentFont > 0 {
|
||||
currentFont--
|
||||
}
|
||||
}
|
||||
|
||||
if raylib.IsKeyPressed('0') {
|
||||
currentFont = 0
|
||||
} else if raylib.IsKeyPressed('1') {
|
||||
currentFont = 1
|
||||
} else if raylib.IsKeyPressed('2') {
|
||||
currentFont = 2
|
||||
} else if raylib.IsKeyPressed('3') {
|
||||
currentFont = 3
|
||||
} else if raylib.IsKeyPressed('4') {
|
||||
currentFont = 4
|
||||
} else if raylib.IsKeyPressed('5') {
|
||||
currentFont = 5
|
||||
} else if raylib.IsKeyPressed('6') {
|
||||
currentFont = 6
|
||||
} else if raylib.IsKeyPressed('7') {
|
||||
currentFont = 7
|
||||
}
|
||||
|
||||
// Mouse-based font selection (NEXT button logic)
|
||||
mousePoint = raylib.GetMousePosition()
|
||||
|
||||
if raylib.CheckCollisionPointRec(mousePoint, btnNextRec) {
|
||||
// Mouse hover button logic
|
||||
if framesCounter == 0 {
|
||||
btnNextOutColor = raylib.DarkPurple
|
||||
btnNextInColor = raylib.Purple
|
||||
}
|
||||
|
||||
if raylib.IsMouseButtonDown(raylib.MouseLeftButton) {
|
||||
framesCounter = 20 // Frames button is 'active'
|
||||
btnNextOutColor = raylib.Maroon
|
||||
btnNextInColor = raylib.Red
|
||||
}
|
||||
} else {
|
||||
// Mouse not hover button
|
||||
btnNextOutColor = raylib.DarkBlue
|
||||
btnNextInColor = raylib.SkyBlue
|
||||
}
|
||||
|
||||
if framesCounter > 0 {
|
||||
framesCounter--
|
||||
}
|
||||
|
||||
if framesCounter == 1 { // We change font on frame 1
|
||||
currentFont++
|
||||
if currentFont > 7 {
|
||||
currentFont = 0
|
||||
}
|
||||
}
|
||||
|
||||
// Text measurement for better positioning on screen
|
||||
textSize = raylib.MeasureTextEx(fonts[currentFont], text, float32(fonts[currentFont].BaseSize)*3, 1)
|
||||
|
||||
// Draw
|
||||
raylib.BeginDrawing()
|
||||
|
||||
raylib.ClearBackground(raylib.RayWhite)
|
||||
|
||||
raylib.DrawText("font selector - use arroys, button or numbers", 160, 80, 20, raylib.DarkGray)
|
||||
raylib.DrawLine(120, 120, 680, 120, raylib.DarkGray)
|
||||
|
||||
raylib.DrawRectangle(18, positionY, 644, 44, raylib.DarkGray)
|
||||
raylib.DrawRectangle(20, positionY+2, 640, 40, raylib.LightGray)
|
||||
raylib.DrawText(fontNames[currentFont], 30, positionY+13, 20, raylib.Black)
|
||||
raylib.DrawText("< >", 610, positionY+8, 30, raylib.Black)
|
||||
|
||||
raylib.DrawRectangleRec(btnNextRec, btnNextOutColor)
|
||||
raylib.DrawRectangle(675, positionY+2, 105, 40, btnNextInColor)
|
||||
raylib.DrawText("NEXT", 700, positionY+13, 20, btnNextOutColor)
|
||||
|
||||
raylib.DrawTextEx(fonts[currentFont], text, raylib.NewVector2(float32(screenWidth)/2-textSize.X/2, 260+(70-textSize.Y)/2), float32(fonts[currentFont].BaseSize*3), 1, colors[currentFont])
|
||||
|
||||
raylib.EndDrawing()
|
||||
}
|
||||
|
||||
raylib.CloseWindow()
|
||||
}
|
BIN
examples/text/raylib_fonts/fonts/alagard.png
Normal file
After Width: | Height: | Size: 4.3 KiB |
BIN
examples/text/raylib_fonts/fonts/alpha_beta.png
Normal file
After Width: | Height: | Size: 2.4 KiB |
BIN
examples/text/raylib_fonts/fonts/jupiter_crash.png
Normal file
After Width: | Height: | Size: 3.4 KiB |
BIN
examples/text/raylib_fonts/fonts/mecha.png
Normal file
After Width: | Height: | Size: 2.3 KiB |
BIN
examples/text/raylib_fonts/fonts/pixantiqua.png
Normal file
After Width: | Height: | Size: 2.9 KiB |
BIN
examples/text/raylib_fonts/fonts/pixelplay.png
Normal file
After Width: | Height: | Size: 2.8 KiB |
BIN
examples/text/raylib_fonts/fonts/romulus.png
Normal file
After Width: | Height: | Size: 2.9 KiB |
BIN
examples/text/raylib_fonts/fonts/setback.png
Normal file
After Width: | Height: | Size: 2.5 KiB |
|
@ -4,21 +4,23 @@ import (
|
|||
"github.com/gen2brain/raylib-go/raylib"
|
||||
)
|
||||
|
||||
const maxFonts = 8
|
||||
|
||||
func main() {
|
||||
screenWidth := int32(800)
|
||||
screenHeight := int32(450)
|
||||
|
||||
raylib.InitWindow(screenWidth, screenHeight, "raylib [text] example - rBMF fonts")
|
||||
raylib.InitWindow(screenWidth, screenHeight, "raylib [text] example - raylib fonts")
|
||||
|
||||
fonts := make([]raylib.SpriteFont, 8)
|
||||
fonts[0] = raylib.LoadSpriteFont("fonts/alagard.rbmf")
|
||||
fonts[1] = raylib.LoadSpriteFont("fonts/pixelplay.rbmf")
|
||||
fonts[2] = raylib.LoadSpriteFont("fonts/mecha.rbmf")
|
||||
fonts[3] = raylib.LoadSpriteFont("fonts/setback.rbmf")
|
||||
fonts[4] = raylib.LoadSpriteFont("fonts/romulus.rbmf")
|
||||
fonts[5] = raylib.LoadSpriteFont("fonts/pixantiqua.rbmf")
|
||||
fonts[6] = raylib.LoadSpriteFont("fonts/alpha_beta.rbmf")
|
||||
fonts[7] = raylib.LoadSpriteFont("fonts/jupiter_crash.rbmf")
|
||||
fonts := make([]raylib.SpriteFont, maxFonts)
|
||||
fonts[0] = raylib.LoadSpriteFont("fonts/alagard.png")
|
||||
fonts[1] = raylib.LoadSpriteFont("fonts/pixelplay.png")
|
||||
fonts[2] = raylib.LoadSpriteFont("fonts/mecha.png")
|
||||
fonts[3] = raylib.LoadSpriteFont("fonts/setback.png")
|
||||
fonts[4] = raylib.LoadSpriteFont("fonts/romulus.png")
|
||||
fonts[5] = raylib.LoadSpriteFont("fonts/pixantiqua.png")
|
||||
fonts[6] = raylib.LoadSpriteFont("fonts/alpha_beta.png")
|
||||
fonts[7] = raylib.LoadSpriteFont("fonts/jupiter_crash.png")
|
||||
|
||||
messages := []string{
|
||||
"ALAGARD FONT designed by Hewett Tsoi",
|
||||
|
@ -32,15 +34,20 @@ func main() {
|
|||
}
|
||||
|
||||
spacings := []int32{2, 4, 8, 4, 3, 4, 4, 1}
|
||||
positions := make([]raylib.Vector2, 8)
|
||||
positions := make([]raylib.Vector2, maxFonts)
|
||||
|
||||
var i int32
|
||||
for i = 0; i < 8; i++ {
|
||||
for i = 0; i < maxFonts; i++ {
|
||||
x := screenWidth/2 - int32(raylib.MeasureTextEx(fonts[i], messages[i], float32(fonts[i].BaseSize*2), spacings[i]).X/2)
|
||||
y := 60 + fonts[i].BaseSize + 45*i
|
||||
positions[i] = raylib.NewVector2(float32(x), float32(y))
|
||||
}
|
||||
|
||||
// Small Y position corrections
|
||||
positions[3].Y += 8
|
||||
positions[4].Y += 2
|
||||
positions[7].Y -= 8
|
||||
|
||||
colors := []raylib.Color{raylib.Maroon, raylib.Orange, raylib.DarkGreen, raylib.DarkBlue, raylib.DarkPurple, raylib.Lime, raylib.Gold, raylib.DarkBrown}
|
||||
|
||||
raylib.SetTargetFPS(60)
|
||||
|
@ -52,14 +59,14 @@ func main() {
|
|||
raylib.DrawText("free fonts included with raylib", 250, 20, 20, raylib.DarkGray)
|
||||
raylib.DrawLine(220, 50, 590, 50, raylib.DarkGray)
|
||||
|
||||
for i = 0; i < 8; i++ {
|
||||
for i = 0; i < maxFonts; i++ {
|
||||
raylib.DrawTextEx(fonts[i], messages[i], positions[i], float32(fonts[i].BaseSize*2), spacings[i], colors[i])
|
||||
}
|
||||
|
||||
raylib.EndDrawing()
|
||||
}
|
||||
|
||||
for i = 0; i < 8; i++ {
|
||||
for i = 0; i < maxFonts; i++ {
|
||||
raylib.UnloadSpriteFont(fonts[i])
|
||||
}
|
||||
|
|
@ -19,7 +19,7 @@ func main() {
|
|||
fontChars := int32(0)
|
||||
|
||||
// TTF SpriteFont loading with custom generation parameters
|
||||
font := raylib.LoadSpriteFontTTF("fonts/KAISG.ttf", 96, 0, &fontChars)
|
||||
font := raylib.LoadSpriteFontEx("fonts/KAISG.ttf", 96, 0, &fontChars)
|
||||
|
||||
// Generate mipmap levels to use trilinear filtering
|
||||
// NOTE: On 2D drawing it won't be noticeable, it looks like FILTER_BILINEAR
|
||||
|
@ -69,7 +69,7 @@ func main() {
|
|||
|
||||
if count == 1 { // Only support one ttf file dropped
|
||||
raylib.UnloadSpriteFont(font)
|
||||
font = raylib.LoadSpriteFontTTF(droppedFiles[0], fontSize, 0, &fontChars)
|
||||
font = raylib.LoadSpriteFontEx(droppedFiles[0], fontSize, 0, &fontChars)
|
||||
raylib.ClearDroppedFiles()
|
||||
}
|
||||
}
|
||||
|
|