//このゲームのmain.js
//-----------------------
exports.main = void 0;
function main(param) {
var scene = new g.Scene({
game: g.game,
// このシーンで利用するアセットのIDを列挙し、シーンに通知します
assetIds: ["player", "shot", "switch", "start", "se", "se2", "se3", "se4", "se5", "bgm1"]
});
//---------------------------------------------------
var time = 15; // 制限時間
if (param.sessionParameter.totalTimeLimit) {
time = param.sessionParameter.totalTimeLimit; // セッションパラメータで制限時間が指定されたらその値を使用します
}
//---------------------------------------------------
// 市場コンテンツのランキングモードでは、g.game.vars.gameState.score の値をスコアとして扱います
g.game.vars.gameState = { score: 0 };
scene.onLoad.add(function () {
// ここからゲーム内容を記述します
//---------------------------------------------------
//自分用に作った変数の初期値。(function()で囲われた場所以外だと上手く動作しないので注意。
var kaisi=4;//タイトルからゲーム開始までを制御する
var wawa=10;//ハートのy軸の動くスピード
var papase=0;//パパの声援制御
//---------------------------------------------------
// 各アセットオブジェクトを取得します
var playerImageAsset = scene.asset.getImageById("player");
var shotImageAsset = scene.asset.getImageById("shot");
var swImageAsset = scene.asset.getImageById("switch");
var startImageAsset = scene.asset.getImageById("start");
var seAudioAsset = scene.asset.getAudioById("se");
var se2AudioAsset = scene.asset.getAudioById("se2");
var se3AudioAsset = scene.asset.getAudioById("se3");
var se4AudioAsset = scene.asset.getAudioById("se4");
var se5AudioAsset = scene.asset.getAudioById("se5");
var bgm1AudioAsset = scene.asset.getAudioById("bgm1");
//---------------------------------------------------
var bgmPlayer = scene.asset.getAudioById("bgm1").play();//BGM演奏開始
bgmPlayer.changeVolume(0.5);//BGM音量変更
//---------------------------------------------------
// フォントの生成
var font = new g.DynamicFont({
game: g.game,
fontFamily: "sans-serif",
size: 48
});
//---------------------------------------------------
// 背景
var bg = new g.FilledRect({
scene: scene,
cssColor: "#CCFFFF",
x: 0,
y: 0,
width: g.game.width,
height: g.game.height
});
scene.append(bg);
//---------------------------------------------------
//タイトル用ハート表示、消す処理は、一番下のカウントダウンの所
var player2 = new g.Sprite({
scene: scene,
src: scene.asset.getImageById("shot"),
anchorX: 0.5,//中心
anchorY: 0.5,//中心
x: g.game.width / 2,
y: g.game.height / 2,
scaleX: 2, // 横方向に 2 倍拡大する
scaleY: 2, // 縦方向に 2 倍拡大する
});
scene.append(player2);
//ゲームの説明
var label = new g.Label({
scene: scene,
font: font,
text: "ハートにタッチ!",
textAlign: "center",
width: g.game.width,
widthAutoAdjust: false,
fontSize: 32,
x: 0,
y: 80
});
scene.append(label);
//スタートボタン配置
var sw = new g.Sprite({
scene: scene,
src: scene.asset.getImageById("start"),
anchorX: 0.5,//中心
anchorY: 0.5,//中心
x: g.game.width/2,
y: 270,
touchable: true
});
scene.append(sw);
sw.onPointDown.add(function(e) {
kaisi=3;//カウントダウン開始
scene.remove(sw); // シーンから削除する
});
//------------------------------------------ここまでタイトル
//毎秒並列処理する命令で、3秒間カウントダウンをテキストで表示し
//変数kaisiが0になったら、並列処理を解除して、ゲーム本体を開始する。
//カウントダウンの処理は、一番下。
var intervalId = scene.setInterval(function() {
// 1 秒毎に行う処理
if(kaisi==0) {
scene.clearInterval(intervalId); // scene.setIntervalで作成した定期処理を解除
//------------------------------------------------ここからゲーム本編
// プレイヤーを生成します
var player = new g.Sprite({
scene: scene,
src: scene.asset.getImageById("shot"),
x: g.game.width / 2,
y: g.game.height / 2,
anchorX: 0.5,//中心
anchorY: 0.5,//中心
scaleX: 2, // 横方向に 2 倍拡大する
scaleY: 2, // 縦方向に 2 倍拡大する
touchable: true // 触れられるオブジェクトにする
});
scene.append(player);
//プレイヤーをタッチした時の動作
player.onPointDown.add(function(e) {
seAudioAsset.play();//SEを鳴らします
// 制限時間以内であればタッチ1回ごとにSCOREに+1します
if (time > 0) {
g.game.vars.gameState.score++;
scoreLabel.text = "SCORE: " + g.game.vars.gameState.score;
scoreLabel.invalidate();
}
//タッチしたらハートがドクンとするアニメ
player.scaleX =1.5; // 縦方向に 倍拡大する
player.scaleY = 1.5; // 縦方向に 2 倍拡大する
player.modified(); // modified() で表示に反映
scene.setTimeout(function() { // 約○秒後に行う処理
player.scaleX = 2; // クリックで小さくなったのを戻す
player.scaleY = 2; // 同じく
player.modified(); // modified() で表示に反映
}, 100);
});
//------------------------------------------------
//パパアニメを非表示で作成します。表示や移動は、ハートの移動と同じとこに入ってます。
var papa = new g.FrameSprite({
scene: scene,
src: scene.asset.getImageById("player"),
width: 240,
height: 460,
srcWidth: 240,
srcHeight: 460,
x: g.game.width -200,
y: g.game.height / 6.5,
frames: [0, 0, 0, 0, 1, 1, 1, 1],//フレームインデックス
loop: true,//ループアニメ
hidden: true // 非表示にした状態で生成する
});
scene.append(papa);
//------------------------------------------------
// スコア表示用のラベル
var scoreLabel = new g.Label({
scene: scene,
text: "SCORE: 0",
font: font,
fontSize: font.size / 2,
textColor: "black"
});
scene.append(scoreLabel);
// 残り時間表示用ラベル
var timeLabel = new g.Label({
scene: scene,
text: "TIME: 0",
font: font,
fontSize: font.size / 2,
textColor: "black",
x: 0.65 * g.game.width
});
scene.append(timeLabel);
//------------------------------------------------
//プレイヤーの動き
player.onUpdate.add(function () {
//1秒ごとに動きを変更。ランダムじゃないよ。
if (time <= 15 && time > 14){
player.y += 5;
}
if (time <= 14 && time > 13){
player.y -= wawa;
player.x = 50;
}
if (time <= 13 && time > 12){
player.y += wawa;
}
if (time <= 12 && time > 11){
player.y -= wawa;
player.x = 400;
}
if (time <= 11 && time > 10){
player.y += wawa;
}
//------
if (time <= 10 && time > 9){
player.y -= wawa;
player.x = 70;
papa.show();//パパを表示します。
papa.start();//パパアニメ開始
papa.x -= wawa*2;//パパの移動
var label = new g.Label({
scene: scene,
font: font,
text: "おーっと、選手の親御さんが応援に駆けつけた!",
textAlign: "center",
width: g.game.width,
widthAutoAdjust: false,
fontSize: 24,
x: 0,
y: g.game.height/1.4,
});
scene.append(label);
scene.setTimeout(function() { // 約○秒後に行う処理
scene.remove(label); //メッセージを消す
}, 1000);
if(papase == 0){//パパの声援
se4AudioAsset.play();//SEを鳴らします
papase += 1;
}
}
//-----
if (time <= 9 && time > 8){
player.y += wawa;
papa.x += wawa*2;
if(papase == 1){//パパの声援
se4AudioAsset.play();//SEを鳴らします
papase += 1;
}
}
if (time <= 8 && time > 7){
player.y -= wawa;
player.x = 300;
papa.x -= wawa*2;
if(papase == 2){//パパの声援
se4AudioAsset.play();//SEを鳴らします
papase += 1;
}
}
if (time <= 7 && time > 6){
player.y += wawa;
papa.x += wawa*2;
if(papase == 3){//パパの声援
se4AudioAsset.play();//SEを鳴らします
papase += 1;
}
}
if (time <= 6 && time >5){
player.y -= wawa;
player.x = 200;
papa.x -= wawa*2;
if(papase == 4){//パパの声援
se4AudioAsset.play();//SEを鳴らします
papase += 1;
}
}
if (time <= 5 && time >4){
player.y += wawa;
papa.x += wawa*2;
if(papase == 5){//パパの声援
se4AudioAsset.play();//SEを鳴らします
papase += 1;
}
}
if (time <= 4 && time >3){
player.y -= wawa;
player.x = 500;
papa.x -= wawa*2;
if(papase == 6){//パパの声援
se4AudioAsset.play();//SEを鳴らします
papase += 1;
}
}
if (time <= 3 && time >2){
player.y += wawa;
papa.x += wawa*2;
if(papase == 7){//パパの声援
se4AudioAsset.play();//SEを鳴らします
papase += 1;
}
}
if (time <= 2 && time >1){
player.y -= wawa;
player.x = g.game.width / 2+45;
papa.x -= wawa*2;
if(papase == 8){//パパの声援
se4AudioAsset.play();//SEを鳴らします
papase += 1;
}
}
if (time <= 1 && time >0){
player.y += wawa/1.5;
papa.x += wawa;
if(papase == 9){//パパの声援
se4AudioAsset.play();//SEを鳴らします
papase += 1;
}
}
player.modified();//ハート再描画
papa.modified();//パパ再描画
});
//------------------------------------------------
var updateHandler = function () {
if (time <= 0) {
// ゲームアツマール環境であればランキングを表示します
if (param.isAtsumaru) {
var boardId_1 = 1;
window.RPGAtsumaru.experimental.scoreboards.setRecord(boardId_1, g.game.vars.gameState.score).then(function () {
window.RPGAtsumaru.experimental.scoreboards.display(boardId_1);
});
}
scene.onUpdate.remove(updateHandler); // カウントダウンを止めるためにこのイベントハンドラを削除します
//---------------------------------------------------
//ゲームが終わったので、リセットを促すテキストを表示
se5AudioAsset.play();//SEを鳴らします
var label = new g.Label({
scene: scene,
font: font,
text: "おしまーい、リロードしてね",
textAlign: "center",
width: g.game.width,
widthAutoAdjust: false,
fontSize: 32,
x: 0,
y: g.game.height/1.5,
});
scene.append(label);
//ボタンを押すとランキング表示
var sw = new g.Sprite({
scene: scene,
src: scene.asset.getImageById("switch"),
x: 0,
y: g.game.height-48,
touchable: true
});
scene.append(sw);
sw.onPointDown.add(function(e) {
window.RPGAtsumaru.experimental.scoreboards.display(boardId_1);
});
//---------------------------------------------------
}
// カウントダウン処理
time -= 1 / g.game.fps;
timeLabel.text = "TIME: " + Math.ceil(time);
timeLabel.invalidate();
};
scene.onUpdate.add(updateHandler);
//-------------------------------------------------ここまでゲーム本編
} else {//ここからゲーム開始前のカウントダウンを表示する処理
//-------------------------------------------------
if(kaisi==3){
se2AudioAsset.play();//SEを鳴らします
var label2 = new g.Label({
scene: scene,
font: font,
text: "3",
textAlign: "center",
width: g.game.width,
widthAutoAdjust: false,
fontSize: 48,
x: 0,
y: g.game.height/1.3
});
scene.append(label2);
scene.setTimeout(function() { // 約○秒後に行う処理
scene.remove(label2); //メッセージを消す
}, 500);
}
//-------------------------------------------------
if(kaisi==2){
se2AudioAsset.play();//SEを鳴らします
var label2 = new g.Label({
scene: scene,
font: font,
text: "2",
textAlign: "center",
width: g.game.width,
widthAutoAdjust: false,
fontSize: 48,
x: 0,
y: g.game.height/1.3
});
scene.append(label2);
scene.setTimeout(function() { // 約○秒後に行う処理
scene.remove(label2); //上記メッセージを消す
}, 500);
}
//-------------------------------------------------
if(kaisi==1){
se2AudioAsset.play();//SEを鳴らします
var label2 = new g.Label({
scene: scene,
font: font,
text: "1",
textAlign: "center",
width: g.game.width,
widthAutoAdjust: false,
fontSize: 48,
x: 0,
y: g.game.height/1.3
});
scene.append(label2);
scene.setTimeout(function() { // 約○秒後に行う処理
scene.remove(label2); //「上記メッセージを消す
scene.remove(label); //ゲーム説明用のメッセージを消す
}, 500);
scene.setTimeout(function() { // 約○秒後に行う処理
se3AudioAsset.play();//SEを鳴らします
scene.remove(player2); // タイトルを飾ってるハートをシーンから削除する
}, 1000);
}//if(kaisi==1)の相方
//-------------------------------------------------
}//elseの相方
//-------------------------------------------------
if(kaisi<=3 && kaisi>0){//スタート前のカウントダウンをしている
kaisi=kaisi-1
}
//-------------------------------------------------
}, 1000);// 1000ミリ秒(1秒)おきに繰り返し処
//-------------------------------------------------
//
//
//
//
// ここまでゲーム内容を記述します
//
//
//
//
});
g.game.pushScene(scene);
}
exports.main = main;
[0回]
PR