# Copyright 2022 Frederico de Oliveira Linhares # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # 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() $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) 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) end def quit() = CandyGear.quit(); def tick() $instances.each {|i| i.draw();}; end