動画を背景にシューティングゲーム(JavaScript, p5.js)
PCのBrouser(Edge, IE)で動きます。Chromeでは背景動画が出ません。
↓こちらは静止画を背景にIBM Cloud (bluemix)のサイトで動かしています。
なぜか動画が出ないので静止画にしました?
https://midosujishootgame.mybluemix.net/
このサイトを開くとスマホでもなんとか動きます。遅い場合は再読み込みしてください。
以下はPCのIE, Edgeで動画が動くプログラムです。動画は自前のものを使ってください。
-----------------
htmlファイル
-----------------
<html><head> <meta charset="UTF-8">
<script src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/0.5.2/p5.js"></script>
<script language="javascript" src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/0.5.5/addons/p5.dom.js"></script>
<script language="javascript" type="text/javascript" src="Video2.js"></script>
</head><body></body></html>
-----------------
Video2.jsファイル
-----------------
var k=999; var S=1; var SW1=1; var SW2=1;
var x, Px, PxE, P1x, P1xE, P2x, P2xE, L, L1, L2, Shoot;
function setup() {
createCanvas(2000, 800);
Shoot = createVideo("./midosuji.mp4"); // 自前の動画を使ってください。
Shoot.loop(); Shoot.hide();
}
function draw() {
background(150); image(Shoot,400,40,1200,800);
if (k>PI/2-0.1){SW1=1; SW2=1; k=0.5; Px=700; PxE=random(500)+200; // 赤玉の終了位置
L=(PxE-Px); P1x=random(1000)+250; P1xE=random(1000)+250; // 三角の出現と消える位置
L1=(P1xE-P1x); P2x=random(2000)+150; P2xE=random(1000)+150; L2=(P2xE-P2x);
};
x=Px+L*sin(k)^2+S; y=(800+20)*cos(k)^2; // 赤玉の位置
noStroke(); fill(255,50,50);
ellipse(x-0.5*(x-mouseX), y, y/8, y/8);
k=k+0.01; fill(0);
stroke('yellow'); strokeWeight(10);
x1=P1x+L1*sin(k)^2; y1=(800-20)*cos(k)^2;
if(SW1==1){triangle(x1+y1/6,y1+y1/6,x1,y1-y1/4,x1+y1/6,y1-y1/8);};
x2=P2x+L2*sin(k)^2; y2=(800+30)*cos(k)^2;
if(SW2==1){triangle(x2,y2-y2/6,x2-y2/6,y2+y2/6,x2+y2/6,y2-y2/4);};
if (abs(x-0.5*(x-mouseX)-x1-50)<20){
SW1=0;
for (var r = 0; r < 3; r++) {
fill(255,255,0); noStroke();
ellipse(x1-random(200)+150, y1-random(200)+50, 40, 20);
}
}
if (abs(x-0.5*(x-mouseX)-x2-50)<20){
SW2=0;
for (var r = 0; r < 3; r++) {
fill(255,255,0); noStroke();
ellipse(x2-random(200)+150, y2-random(200)+50, 40, 20);
}
}
}