This commit is contained in:
Nefrace 2024-04-07 22:12:13 +03:00
parent d5b2cdd376
commit 474cb11d0c
4 changed files with 70 additions and 0 deletions

1
.gitignore vendored Normal file
View File

@ -0,0 +1 @@
src.bin

BIN
assets/ship.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 574 B

20
ols.json Normal file
View File

@ -0,0 +1,20 @@
{
"$schema": "https://raw.githubusercontent.com/DanielGavin/ols/master/misc/ols.schema.json",
"enable_document_symbols": true,
"enable_hover": true,
"enable_snippets": true,
"collections": [
{
"name": "core",
"path": "/home/vlad/dev/builds/Odin/core"
},
{
"name": "vendor",
"path": "/home/vlad/dev/builds/Odin/vendor"
},
{
"name": "src",
"path": "src"
}
]
}

49
src/main.odin Normal file
View File

@ -0,0 +1,49 @@
package main
import rl "vendor:raylib"
import "core:math"
Object :: struct {
position: [2]f32,
velocity: [2]f32,
}
Player :: struct {
using object: Object,
direction: f32,
}
main :: proc() {
rl.InitWindow(800, 600, "Torpedo Bots")
rl.SetTargetFPS(60)
ship := rl.LoadTexture("assets/ship.png")
defer rl.UnloadTexture(ship)
player := Player{}
for !rl.WindowShouldClose() {
delta := rl.GetFrameTime()
if rl.IsKeyDown(rl.KeyboardKey.UP) {
player.velocity = rl.Vector2MoveTowards(player.velocity, 300 * rl.Vector2Rotate({1,0}, math.to_radians(player.direction)), 700 * delta)
}
if rl.IsKeyDown(rl.KeyboardKey.LEFT) {
player.direction -= 360 * delta
}
if rl.IsKeyDown(rl.KeyboardKey.RIGHT) {
player.direction += 360 * delta
}
player.position += player.velocity * delta
using rl
{
BeginDrawing()
ClearBackground(RAYWHITE)
DrawTexturePro(ship, {0, 0, 32, 32}, {player.position.x, player.position.y, 32, 32}, {16, 16}, player.direction + 90, WHITE)
EndDrawing()
}
}
}