ブルーであなたの最初のゲームを作る


皆さんこんにちは!今日、私はブルーから始める方法についてのポストを書いています.青は、プログラミングを始めるために簡単で楽しいものにする、創造的で、グラフィカルで、ブラウザーベースのプログラミング言語です.まず、あなたはそれをチェックアウトすることができますhttps://blue-js.herokuapp.com . ブルーもオープンソースであり、そのGithubはhttps://github.com/i8sumPi/blue .
このチュートリアルでは、我々はニンジンのゲームをキャッチすることhere )

コード!


主人公を描き始めましょう.以下のようにします.
var player = new Premade(costume, x, y, size)
私たちは「衣装」という単語を私たちが欲しいキャラクターと置き換え、XとYを私たちの新しいキャラクターを配置する場所の座標で置き換えます.
青は、同じ座標系を使用します.X軸は−240から240に、Y軸は−180から180まで移動する.

この例では、次のように使用できます.
var player = new Premade("bunny1_ready", 0, -112, 0.4)
これは、下の中央にバニーを置き、そのサイズは、元の0.4になります.コスチュームの名前が引用でなければならない点に注意してください.
あなたがバニーより異なる文字を使用したい場合は、ドキュメントに入力します.

背景


今すぐシンプルな背景を描きましょう.長方形を使って描画できます.矩形は以下のようにして作成されます:
new Rectangle(x, y, width, height, color)
The x and y 長方形の値は左上隅の座標を表します.色は、“赤”や“青”のような色の名前を持つ文字列にすることができますが、詳細をする場合は、六色の色を使用することもできます.を使用して16進数の色を見つけることができますhtmlcolorcodes.com .
私たちの場合、青い空と緑の地面が欲しいです.
new Rectangle(-240,180, 480, 360, "#D0F8FF") # sky
new Rectangle(-240, -150, 480, 30, "green") # ground
の後の灰色のテキスト# は動作しません.それはコメントです、そして、その目的はちょうど我々がしていることを思い出させることです.
注:あなたがバックグラウンドを描画した後、ウサギを見ていない場合は、それ以上の背景を描いた.あなたはいずれかの背景の後にバニーのコードを置くか、またはラインを追加することによって上にバニーを置くことができますplayer.layer = 1 . 1層以上が上に文字を持ってきて、マイナス層が下に持ってくる.

モーション


我々は、ウサギがマウスに従うようにする必要があります.次のコードでこれを行うことができます.
forever:
    player.x = mouse.x
永遠のループ内のコードは常に実行されます.2行目はプレイヤーのX位置をマウスのX位置に設定する.これは、瞬間ごとに、プレイヤーがマウスのどこに移動しているか、つまり、マウスがプレーヤーを動かしていることを意味します.
どのように、青は永遠のループの内外で何を知っていますか?それは永遠のループの内側にあるかなり単純なコードですインデント.コードのこのインデントされたチャンクはコードブロックとして知られています.永久ループ内にないコードはインデントされません.
この例は(現在のプロジェクトとは関係がないので、コードに追加しないでください).
forever:
    print("I am inside the forever loop")
    print("I am also inside the forever loop")
print("I am not inside the forever loop")
コードブロック内のコードブロック、またはコードブロック内のコードブロック内のコードブロックを持つこともできます.これを行うには、単に複数のインデントを使用します.

クローン


今多くの多くのニンジンを生成する必要があります:D
ニンジンを追跡するために、我々はリストを使用します.リストは複数の値を保持できる特別な種類の変数です.新しい空のリストを初期化します.
var carrots = []
ニンジンをたっぷり加えることができます.
var carrots = []
repeatEvery 0.3:
    carrots.push(new Premade("crop_carrot", random(-230, 230), 180))
このコードを壊しましょう.new Premade("crop_carrot", random(-230, 230), 180) は、ランダムなX値を持つ新しいニンジンを作成し、画面の上部にそれを置く180のY値、.random(-230, 230) - 230から230までの値を返します.carrots.push() この新しく生成されたニンジンをCarrotsと呼ばれるリストに加えます.repeatEvery 0.3 それを0.3秒ごとに以下のコードを繰り返します.あなたが使用する場合は、例えば、この数を変更することにより、ゲームの難易度を変更することができますrepeatEvery 0.5 その代わりに、ニンジンはよりゆっくり見えます、そして、ゲームはより簡単です.このコードを実行すると、画面の上部にニンジンがたくさん表示されます.

にんじんを動かす


私たちは、それぞれのニンジンをforEach loop . foreachループは、ニンジンを下に動かすことができるようにニンジンを通して(または、各々を通過します)繰り返します.我々は常にこれを行うには、既存の永遠のループの最後にそれを追加します.このコードの最初の2行は、我々が既に持っている永遠のループからであることに注意してください.
forever:
    player.x = mouse.x
    forEach carrot in carrots:
    carrot.y -= 10
carrot.y -= 10 ショートカットcarrot.y = carrot.y - 10 . それはちょうどニンジンのYの位置を10に移動します.

スコア


我々は、スコアを使用してスコアを表示することができますtext . 使用する新しいテキストを作成します.
new Text(text, x, y, font size)
我々はスコアを表示するテキスト、およびスコア自体を格納する別の1つの変数が必要です.
var scoreCounter = new Text("Score: 0", 0, 0, 20)
var score = 0
ためには、バニーにニンジンに触れるたびにスコアを更新するには、我々は使用することができますdistanceTo . これをforeachループの最後に追加します.
    if carrot.distanceTo(player) < 50:
    carrot.delete()
    score += 1
    scoreCounter.text = "Score: "+score
    new Sound("jingles_PIZZI16", 0.2)
carrot.delete() それが消えるように、ニンジンを削除してください.score += 1 スコアに1を追加します.scoreCounter.text = "Score: "+score スコアの表示を更新します.new Sound("jingles_PIZZI16", 0.2) bu dup音をしてください.0.2は元のボリュームの0.2です.ブルードキュメンテーションで別のサウンドを選択することができます.

負ける


最後のものは、ニンジンを欠場するときにゲームを停止することです.我々は、任意のニンジンのYは、画面の下部にある- 240より小さいかどうかチェックすることによってこれを行うことができます場合は、ゲームを停止します.それで、我々はforeachループの底にこれを加えることができます:
    if carrot.y < -240:
    scoreCounter.text = "You missed a carrot! Your score was "+score+"."
    pause()
    new Sound("jingles_PIZZI01")
The pause() その瞬間にゲームをフリーズします.The new Sound("jingles_PIZZI01") 失う音を再生します.

ミュージック


最後のタッチとして、バイブを完了するためにいくつかの音楽を追加する必要があります.1は、ボリュームの100 %を維持することを意味し、真のゲームを続けるようにループに音楽をしたいことを示します.
new Sound("bensound-jazzyfrenchy", 1, true)

もう終わりました


青であなたの最初のゲームを終えておめでとう!お友達と共有すること自由に感じ、自分の別のプロジェクトを開始します.読書ありがとう!

最後のコード


new Sound("bensound-jazzyfrenchy", 1, true) # background music
new Rectangle(-240,180, 480, 360, "#D0F8FF") # sky
new Rectangle(-240, -150, 480, 30, "green") # ground

var carrots = [] # store carrots
var player = new Premade("bunny1_ready", 0, -112, 0.4)
var scoreCounter = new Text("Score: 0", 0, 0, 20)
var score = 0

forever:
    player.x = mouse.x
    forEach carrot in carrots:
    carrot.y -= 10
    if carrot.distanceTo(player) < 50:
    carrot.delete()
    score += 1
    scoreCounter.text = "Score: "+score
    new Sound("jingles_PIZZI16", 0.2)
    if carrot.y < -240:
    scoreCounter.text = "You missed a carrot! Your score was "+score+"."
    pause()
    new Sound("jingles_PIZZI01")

repeatEvery 0.3:
    carrots.push(new Premade("crop_carrot", random(-230, 230), 180))