Sha256: 246a1b3550c98ca55605696b4e44fe7ceb43be4b57ef508adfa01d08315ab50c

Contents?: true

Size: 1.49 KB

Versions: 1

Compression:

Stored size: 1.49 KB

Contents

class AuthorEngine
  class Game
    include AuthorEngine::Part::Common
    include AuthorEngine::Part::CollisionDetection
    include AuthorEngine::Part::Colors

    if RUBY_ENGINE == "opal"
      include AuthorEngine::Part::OpalGraphics
      include AuthorEngine::Part::OpalInput
    else
      include AuthorEngine::Part::GosuGraphics
      include AuthorEngine::Part::GosuInput
    end

    attr_accessor :scale, :canvas, :canvas_context
    attr_accessor :collision_detection
    def initialize(code:)
      if RUBY_ENGINE == "opal"
        @scale  = 1.0
        @canvas = `document.getElementById('canvas')`
        @canvas_context = `#{@canvas}.getContext('2d')`
      end

      if RUBY_ENGINE != "opal"
        @sprites = SpriteEditor.instance.sprites

        @levels = []
        # Create a "Deep Copy" to allow for swapping of a level's sprites without corrupting LevelEditor's version
        LevelEditor.instance.levels.each do |level|
          @levels << level.sort_by {|sprite| sprite.z}.map {|sprite| sprite.dup}
        end
        size = 16
        @levels.each {|level| level.each {|sprite| sprite.x = sprite.x * size; sprite.y = sprite.y * size}}

        @collision_detection = CollisionDetection.new(@sprites, @levels, Window.instance.container.savefile.sprites)
      end

      @background_color = black
      self.instance_eval(code)
    end

    def draw_background
      rect(0, 0, width, height, @background_color)
    end

    def init
    end

    def draw
    end

    def update
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
author_engine-0.6.1 lib/author_engine/game/game.rb