oc2019kaizo
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
]
開始行:
[[oc2019]]
改造のヒント
* 敵の動きを変える [#se835e25]
class Enemy extends Actor {
*main() {
this.p=$pat_neko+44;
this.cy=this.y;//追加:往復する中心の座標
while(this.x>0) {
this.x+=this.vx;
this.y=this.cy+Math.sin($t)*10;//変更:三角関数で往復...
if (this.rnd(100)<1) {
new EnemyBullet({x:this.x, y:this.y});
}
yield;
}
this.die();
}
}
**やってみよう [#b4fe7acb]
- もっとゆっくり振動させるには?
- もっと大きい幅で振動させるには?
* 敵の形をランダムに変更する [#s5368518]
class Enemy extends Actor {
*main() {
this.p=$pat_neko+44;//★この部分を変更
class Enemy extends Actor {
*main() {
this.n=this.rnd(2);// 0または1がthis.nに...
if (this.n==0) this.p=$pat_neko+44;// 0だ...
if (this.n==1) this.p=$pat_neko+45;// 1だ...
**やってみよう [#b4fe7acb]
- 3通りの形にするには?
* 弾の発射する向きを変える [#me6ef813]
** プレイヤーの動作を変更 [#pc85b75c]
class Player extends Actor {
*main() {
this.p=$pat_neko+45;
this.count=0;
while (true) {
this.x=$mouseX;
this.y=$mouseY;
if (this.count==30) {
new PlayerBullet({x:this.x, y:this.y, vx:10,vy:3});//...
//★
this.count=0;
}
this.count+=1;
if (this.crashTo(Enemy) || this.crashTo(EnemyBullet)) {
break;
}
yield;
}
}
}
** プレイヤーの弾の動作も変更 [#y2f47e74]
class PlayerBullet extends Actor {
*main() {
this.p=$pat_neko+48;
this.vx=10;
while (this.x<400) {
this.x+=this.vx;
this.y+=this.vy;//追加
var c=this.crashTo(Enemy)
if (c) {
$score++;
c.die();
break;
}
yield;
}
this.die();
}
}
**やってみよう [#xd0c9fc3]
- ★の部分に命令を追加して,弾が3方向に発射されるようにし...
* プレイヤーの方向に発射する敵弾 [#yeffe830]
class EnemyBullet extends Actor {
*main() {
this.p=$pat_neko+49;
// -- ここから追加
if (this.y>$player.y) {
this.vy=-1;
} else {
this.vy=1;
}
// -- ここまで追加
while(this.x>0) {
this.x-=10;
this.y+=this.vy;//追加
yield;
}
this.die();
}
}
**やってみよう [#r4f2efaa]
- もっと角度をつけて発射するには?
* ゲームオーバー [#s6bc6d23]
プレイヤーが敵に触れたとき「ゲームオーバー」というメッセ...
表示し,スペースキーが押されたか画面をタッチされたらもう...
※「タイトル画面」を作っている人は,ゲームオーバー後にタイ...
class Player extends Actor {
*main() {
this.p=$pat_neko+45;
this.count=0;
while (true) {
this.x=$mouseX;
this.y=$mouseY;
if (this.count==30) {
new PlayerBullet({x:this.x, y:this.y});
this.count=0;
}
this.count+=1;
if (this.crashTo(Enemy) || this.crashTo(EnemyBullet)) {
break;//ゲームオーバーになると★に移動
}
yield;
}
//-----★ここを追加
new Label({x:100,y:100,text:"ゲームオーバー"});
this.p=-1;// キャラクタを消す
while (true) {
if(this.getkey("space")==1 || $touches[0].touched==1){
this.loadPage(Start);
}
yield;
}
//--ここまで
//this.die();
}
}
* タイトル画面 [#n5f0637f]
新しく Titleというクラスを作成し、次のように書く
class Title extends Actor {
*main() {
new Actor({x:$screenWidth/2,y:$screenHeight/2,text:"ゲ...
while(true){
if(this.getkey("space")==1 || $touches[0].touched==...
this.loadPage(Start);
}
yield;
}
}
}
さらに、一番最後の行の
setMain(Start);
を
setMain(Title);
に変更する。
**やってみよう [#c0757c41]
- 好きなタイトルに変更しよう
- 文字の大きさや色を変えよう(「[[サンプルライブラリの詳...
* 絵を左右反転させる [#s1e11799]
*main() {
の後ろに
this.scaleX=-1;
this.scaleY=1;
を追加
**やってみよう [#l6b78ca6]
- scaleXやscaleYを他の値にすると何が起きる?
終了行:
[[oc2019]]
改造のヒント
* 敵の動きを変える [#se835e25]
class Enemy extends Actor {
*main() {
this.p=$pat_neko+44;
this.cy=this.y;//追加:往復する中心の座標
while(this.x>0) {
this.x+=this.vx;
this.y=this.cy+Math.sin($t)*10;//変更:三角関数で往復...
if (this.rnd(100)<1) {
new EnemyBullet({x:this.x, y:this.y});
}
yield;
}
this.die();
}
}
**やってみよう [#b4fe7acb]
- もっとゆっくり振動させるには?
- もっと大きい幅で振動させるには?
* 敵の形をランダムに変更する [#s5368518]
class Enemy extends Actor {
*main() {
this.p=$pat_neko+44;//★この部分を変更
class Enemy extends Actor {
*main() {
this.n=this.rnd(2);// 0または1がthis.nに...
if (this.n==0) this.p=$pat_neko+44;// 0だ...
if (this.n==1) this.p=$pat_neko+45;// 1だ...
**やってみよう [#b4fe7acb]
- 3通りの形にするには?
* 弾の発射する向きを変える [#me6ef813]
** プレイヤーの動作を変更 [#pc85b75c]
class Player extends Actor {
*main() {
this.p=$pat_neko+45;
this.count=0;
while (true) {
this.x=$mouseX;
this.y=$mouseY;
if (this.count==30) {
new PlayerBullet({x:this.x, y:this.y, vx:10,vy:3});//...
//★
this.count=0;
}
this.count+=1;
if (this.crashTo(Enemy) || this.crashTo(EnemyBullet)) {
break;
}
yield;
}
}
}
** プレイヤーの弾の動作も変更 [#y2f47e74]
class PlayerBullet extends Actor {
*main() {
this.p=$pat_neko+48;
this.vx=10;
while (this.x<400) {
this.x+=this.vx;
this.y+=this.vy;//追加
var c=this.crashTo(Enemy)
if (c) {
$score++;
c.die();
break;
}
yield;
}
this.die();
}
}
**やってみよう [#xd0c9fc3]
- ★の部分に命令を追加して,弾が3方向に発射されるようにし...
* プレイヤーの方向に発射する敵弾 [#yeffe830]
class EnemyBullet extends Actor {
*main() {
this.p=$pat_neko+49;
// -- ここから追加
if (this.y>$player.y) {
this.vy=-1;
} else {
this.vy=1;
}
// -- ここまで追加
while(this.x>0) {
this.x-=10;
this.y+=this.vy;//追加
yield;
}
this.die();
}
}
**やってみよう [#r4f2efaa]
- もっと角度をつけて発射するには?
* ゲームオーバー [#s6bc6d23]
プレイヤーが敵に触れたとき「ゲームオーバー」というメッセ...
表示し,スペースキーが押されたか画面をタッチされたらもう...
※「タイトル画面」を作っている人は,ゲームオーバー後にタイ...
class Player extends Actor {
*main() {
this.p=$pat_neko+45;
this.count=0;
while (true) {
this.x=$mouseX;
this.y=$mouseY;
if (this.count==30) {
new PlayerBullet({x:this.x, y:this.y});
this.count=0;
}
this.count+=1;
if (this.crashTo(Enemy) || this.crashTo(EnemyBullet)) {
break;//ゲームオーバーになると★に移動
}
yield;
}
//-----★ここを追加
new Label({x:100,y:100,text:"ゲームオーバー"});
this.p=-1;// キャラクタを消す
while (true) {
if(this.getkey("space")==1 || $touches[0].touched==1){
this.loadPage(Start);
}
yield;
}
//--ここまで
//this.die();
}
}
* タイトル画面 [#n5f0637f]
新しく Titleというクラスを作成し、次のように書く
class Title extends Actor {
*main() {
new Actor({x:$screenWidth/2,y:$screenHeight/2,text:"ゲ...
while(true){
if(this.getkey("space")==1 || $touches[0].touched==...
this.loadPage(Start);
}
yield;
}
}
}
さらに、一番最後の行の
setMain(Start);
を
setMain(Title);
に変更する。
**やってみよう [#c0757c41]
- 好きなタイトルに変更しよう
- 文字の大きさや色を変えよう(「[[サンプルライブラリの詳...
* 絵を左右反転させる [#s1e11799]
*main() {
の後ろに
this.scaleX=-1;
this.scaleY=1;
を追加
**やってみよう [#l6b78ca6]
- scaleXやscaleYを他の値にすると何が起きる?
ページ名: