Skip to content

Instantly share code, notes, and snippets.

@godfat
Created August 8, 2017 10:36
Show Gist options
  • Save godfat/9e8b2ed0b594667aa7dcb1bc2ccdd9ca to your computer and use it in GitHub Desktop.
Save godfat/9e8b2ed0b594667aa7dcb1bc2ccdd9ca to your computer and use it in GitHub Desktop.
This produces "@@ -24,7 +24,7 @@ Redactedでは**レイヤ**における**zIndex**属性を制御可能にする�"
require 'rugged'
require 'fileutils'
def with_empty_bare_repository(name = nil)
path = name || 'empty-bare-repository'
yield(Rugged::Repository.init_at(path, :bare))
ensure
FileUtils.rm_rf(path)
end
def commit(repo, path, content)
oid = repo.write(content, :blob)
index = repo.index
index.read_tree(repo.head.target.tree) unless repo.empty?
index.add(path: path, oid: oid, mode: 0100644)
Rugged::Commit.create(
repo,
tree: index.write_tree(repo),
message: "Update #{path}",
parents: repo.empty? ? [] : [repo.head.target].compact,
update_ref: 'HEAD'
)
end
with_empty_bare_repository do |repo|
content = DATA.read
commit_a = commit(repo, 'Japanese.md', content)
commit_b = commit(repo, 'Japanese.md',
content.sub('[TODO: Link]', '[現在作業中です: Link]'))
puts repo.diff(commit_a, commit_b).each_line.map(&:content).join
end
__END__
+++
date = "2017-05-21T13:05:07+09:00"
title = "レイヤ"
weight = 10
+++
## このチュートリアルで扱う内容
1. Redactedにおける2D開発でのレイヤの基本的な概要
2. スクリーン上のスプライトの順序付け方法
### Redactedにおける2D開発でのレイヤの基本的な概要
2Dにおいてはz軸が存在しないため、シーン内要素の描画順を制御するためには代替となる仕組みが必要です。
Redactedでは**レイヤ**における**zIndex**属性を制御可能にすることで、この課題を解決しています。
**デフォルトでは、zIndexは0となりオブジェクトはレイヤに追加された順番に描画されます。**
レイヤにはいくつかの重要な特性があります。
* レイヤにはレイヤ化されたオブジェクトのみを含めることができます。(**3Dモデルは絶対に追加しないでください**)
* レイヤはレイヤ化されたオブジェクトです。(したがって、レイヤには他のレイヤを含めることができます)
* レイヤ化されたオブジェクトは、最大で1つのレイヤに属すことができます。
レイヤを直接初期化することはできませんが、その派生クラスは初期化することが可能です。**Scene2D**と**コンテナ**は、**レイヤ**から派生する2つの主なオブジェクトです。すべての初期化(createContainer、instantiate、...)はレイヤ上で行われます。つまり、2Dで初期化されるすべてのオブジェクトは、zIndexプロパティを持つレイヤ化されたオブジェクトです。
**zIndexはグローバルではありません!**
CSSとは異なり、zIndexはすべてのオブジェクトに対してグローバルではありません。zIndexプロパティは親レイヤに対してローカルです。詳細につきましては、コンテナチュートリアルで説明しています。 [TODO: Link]。
### スクリーン上のスプライトの順序付け方法
これまで学んだことを生かして、画面にスプライトを表示して、zIndexの設定をしてみましょう!
* まず、最初に (A,B,C) スプライトを生成します。
* スプライトAをシーンに追加します(zIndex = 0、標準色)
* スプライトBをシーン2に追加すると、**スプライトAの上に**表示されます(zIndex = 0、赤色)
* 最後にスプライトCをシーンに追加します(青色)が、スプライトのzIndexを-1に設定すると、スプライトはAとBの後側に表示されます。
{{< code "static/tutorials/layers.html" >}}
### ソースコード全体
```js
{{< snippet "static/tutorials/layers.html" >}}
```
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment