#!ruby -Ks # -*- mode: ruby; encoding: sjis -*- # Last updated: <2014/06/25 06:50:55 +0900> require 'dxruby' font = Font.new(24) imgs = Image.loadTiles("road_bg.png", 1, 480) bgimg = Image.load("road_bg.png") Window.bgcolor = [68, 97, 255] mode = 0 bz = 0 start_y = 1 Window.loop do break if Input.keyPush?(K_ESCAPE) # Zキーで描画を変更 mode = (mode + 1) % 6 if Input.keyPush?(K_Z) case mode when 0 Window.draw(-320, 0, bgimg) Window.drawFont(4, 4, "BG全体を描画", font) when 1 start_y.step(240-1, 1) { |y| i = y Window.draw(-320, y + 240, imgs[i]) } Window.drawFont(4, 4, "上半分だけ描画", font) when 2 start_y.step(240-1, 1) { |y| i = y + 240 Window.draw(-320, y + 240, imgs[i]) } Window.drawFont(4, 4, "下半分だけ描画", font) when 3 start_y.step(240-1, 1) { |y| i = y + 240 * ((y / 16) & 0x01) Window.draw(-320, y + 240, imgs[i]) } Window.drawFont(4, 4, "上と下を、ラスター単位で交互に描画 (一定間隔)", font) when 4 sz = 320 h = 240 start_y.step(240-1, 1) { |y| z = (h * sz / y) # y座標毎のz値を求める i = y + 240 * ((z.to_i / 128) & 0x01) Window.draw(-320, y + 240, imgs[i]) } Window.drawFont(4, 4, "上と下を、ラスター単位で交互に描画 (z値に基づく)", font) when 5 sz = 320 h = 240 start_y.step(240-1, 1) { |y| z = (h * sz / y) + bz i = y + 240 * ((z.to_i / 128) & 0x01) Window.draw(-320, y + 240, imgs[i]) } Window.drawFont(4, 4, "上と下を、ラスター単位で交互に描画 (z値を加算)", font) bz += 8 end end