summaryrefslogtreecommitdiff
path: root/test/src/main.rb
diff options
context:
space:
mode:
authorFrederico Linhares <fred@linhares.blue>2022-08-02 16:52:33 -0300
committerFrederico Linhares <fred@linhares.blue>2022-08-02 16:52:33 -0300
commitf88712a929ee3543f8e1d45c6071f676df339cdb (patch)
treead4c9272ead49eb205b1c655bb1d878654863e26 /test/src/main.rb
parent9c6a166fa2b00a1ab177d9e9216a839b87e36ca7 (diff)
refa Use Vulkan for graphics
This is a partial refactory. Some functionalities implemented in SDL were removed and need reimplementation.
Diffstat (limited to 'test/src/main.rb')
-rw-r--r--test/src/main.rb64
1 files changed, 60 insertions, 4 deletions
diff --git a/test/src/main.rb b/test/src/main.rb
index 9e37faa..31affb8 100644
--- a/test/src/main.rb
+++ b/test/src/main.rb
@@ -12,14 +12,70 @@
# See the License for the specific language governing permissions and
# limitations under the License.
+ROTATION_SPEED = Math::PI/45;
+TRANSLATION_SPEED = 0.5;
+
def init()
- $mode = Mode::Collision.new();
+ $texture = CandyGear::Texture.from_image("textures/color_texture.png");
+ $model = CandyGear::Model.new("models/cube.cgmodel", $texture);
+
+ $instances = [
+ CandyGear::Model::Instance.new(
+ $model,
+ 5.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0),
+ CandyGear::Model::Instance.new(
+ $model,
+ -5.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0),
+ CandyGear::Model::Instance.new(
+ $model,
+ 0.0, 5.0, 0.0,
+ 0.0, 0.0, 0.0),
+ CandyGear::Model::Instance.new(
+ $model,
+ 0.0, -5.0, 0.0,
+ 0.0, 0.0, 0.0),
+ CandyGear::Model::Instance.new(
+ $model,
+ 0.0, 0.0, 5.0,
+ 0.0, 0.0, 0.0),
+ CandyGear::Model::Instance.new(
+ $model,
+ 0.0, 0.0, -5.0,
+ 0.0, 0.0, 0.0)
+ ];
+
+ $camera = CandyGear::Camera.new(0.0, 0.0, 0.0, 0.0, 0.0, 0.0);
+ $camera.use();
end
-def key_down(key) = $mode.controller.key_down(key);
+def key_down(key)
+ case key
+ when CandyGear::Key::I
+ $camera.rotate(ROTATION_SPEED, 0.0, 0.0);
+ when CandyGear::Key::K
+ $camera.rotate(-ROTATION_SPEED, 0.0, 0.0);
+ when CandyGear::Key::J
+ $camera.rotate(0.0, ROTATION_SPEED, 0.0);
+ when CandyGear::Key::L
+ $camera.rotate(0.0, -ROTATION_SPEED, 0.0);
+ when CandyGear::Key::E
+ $camera.translate_by_rotation(0.0, 0.0, -TRANSLATION_SPEED);
+ when CandyGear::Key::D
+ $camera.translate_by_rotation(0.0, 0.0, TRANSLATION_SPEED);
+ when CandyGear::Key::S
+ $camera.translate_by_rotation(-TRANSLATION_SPEED, 0.0, 0.0);
+ when CandyGear::Key::F
+ $camera.translate_by_rotation(TRANSLATION_SPEED, 0.0, 0.0);
+ end
+end
-def key_up(key) = $mode.controller.key_up(key);
+def key_up(key)
+end
def quit() = CandyGear.quit();
-def tick() = $mode.tick();
+def tick()
+ $instances.each {|i| i.draw();};
+end