사용자:이의섭/놀이터

리버티게임, 모두가 만들어가는 자유로운 게임
< 사용자:이의섭
백괴게임>이의섭님의 2018년 5월 26일 (토) 11:32 판
if(documentTitle === "사용자:이의섭/놀이터"){
    
$(function() {

  var messageSpace = document.getElementById("message");
  var battleSpace = document.getElementById("battle");
  var hpSpace = document.getElementById("hpbar");

  battleSpace.innerHTML = '<canvas id="cvs" width="150" height="150">게임 화면입니다. 만약 이 화면이 정상적으로 출력되지 않는다면 망한 겁니다.</canvas>';

  var canvasBody = document.getElementById("cvs");
  var canvas = canvasBody.getContext("2d");

  var sheet = document.createElement('style');
  sheet.innerHTML = "canvas {border: 10px solid white;}";
  document.body.appendChild(sheet);


  var x, y, size, speed;
  x = 800;
  y = 600;
  size = 10;
  speed = 5;

  function drawHeart() {
    canvas.fillStyle = "red";
    canvas.beginPath();
    canvas.moveTo(x - size, y);
    canvas.lineTo(x - size, y - size/2);
    canvas.lineTo(x - (size / 2), y - size);
    canvas.lineTo(x, y - size/2);
    canvas.lineTo(x + (size / 2), y - size);
    canvas.lineTo(x + size, y - size/2);
    canvas.lineTo(x + size, y);
    canvas.lineTo(x, y + size);
    canvas.lineTo(x - size, y);
    canvas.fill();
    canvas.closePath();
  }
	
  var isKeyDown = [];
  
  function onKeyDown(e){
  	isKeyDown[e.keyCode] = true;
    console.log("Down " + e.keyCode);
  }
  
  function onKeyUp(e){
  	isKeyDown[e.keyCode] = false;
    console.log("Up " + e.keyCode);
  }
  
  function moveHeart(){
  	if(isKeyDown[37]){
    	x  = Math.max(x-speed, 10);
    }
    if(isKeyDown[38]){
    	y  = Math.max(y-speed, 10);
    }
    if(isKeyDown[39]){
    	x  = Math.min(x+speed, 140);
    }
    if(isKeyDown[40]){
    	y  = Math.min(y+speed, 140);
    }
  }
  
  window.addEventListener("keydown",onKeyDown,false);
	window.addEventListener("keyup",onKeyUp,false);
  
  setInterval(moveHeart, 30);
  
  var type_speed = 100;


  var stringToType = text1;
  var i = 0;

  function switchString() {
    if (stringToType === text1) stringToType = text2;
    else if (stringToType === text2) stringToType = text3;
    else if (stringToType === text3) stringToType = text4;
    else if (stringToType === text4) stringToType = text5;
    else if (stringToType === text5) stringToType = text6;
    else if (stringToType === text6) stringToType = text7;
    else if (stringToType === text7) stringToType = text8;
    else if (stringToType === text8) stringToType = text9;
    else if (stringToType === text9){
    	generateBullets();
      return;
    }

    else if (stringToType === text10) stringToType = text11;
    else if (stringToType === text11){
    	generateBullets();
      return;
    }

    else if (stringToType === text12){
    	messageSpace.innerHTML = '<span style="color:yellow">플라위</span>: ' + text13;
    	generateBullets();
      return;
    }

    else if (stringToType === text14) stringToType = text15;
    else if (stringToType === text15) stringToType = text30;

    else if (stringToType === text21) stringToType = text22;
    else if (stringToType === text22) stringToType = text23;
    else if (stringToType === text23) stringToType = text30;

    else{
    	generateUltraBullets();
      return;
    }
  	messageSpace.innerHTML = '<span style="color:yellow">플라위</span>: ';

    typeMessage();
  }
	
  messageSpace.innerHTML = '<span style="color:yellow">플라위</span>: ';
  
  function typeMessage() {
    if (i == stringToType.length) {
      setTimeout(switchString, 1000);
      i=0;
      return;
    } else {
      messageSpace.innerHTML += stringToType[i];
      setTimeout(typeMessage, type_speed);
      i++;
    }
  }
  
  var haveToGenerateBullet = 0;
  var bulletY;
  var hp=20;
  
  function generateBullets(){
  	haveToGenerateBullet = 1;
    bulletY = -10;
    setTimeout(cancelGenerateBullets, 3000);
  }
  
  function cancelGenerateBullets(){
  	haveToGenerateBullet = 0;
  	if(hp == 20){
    	if(stringToType === text9){
      	stringToType = text10;
        i=0;
				messageSpace.innerHTML = '<span style="color:yellow">플라위</span>: ';
        typeMessage();
        return;
      }
    	if(stringToType === text11){
      	stringToType = text12;
        i=0;
				messageSpace.innerHTML = '<span style="color:yellow">플라위</span>: ';
        typeMessage();
        return;
      }
    	if(stringToType === text12){
      	stringToType = text14;
        i=0;
				messageSpace.innerHTML = '<span style="color:yellow">플라위</span>: ';
        typeMessage();
        return;
      }
    }
  }
  
  function drawBullet(){
  	for(i=30; i<=120; i+=30){
    	canvas.beginPath();
    	canvas.arc(i, bulletY, 4, 0, Math.PI*2);
      canvas.fillStyle = "white";
      canvas.fill();
      
      if((i-x)*(i-x)+(bulletY-y)*(bulletY-y)<size*size){
      	console.log("collide");
        stringToType = text21;
        typeSpeed = 300;
        i=0;
				messageSpace.innerHTML = '<span style="color:yellow">플라위</span>: ';
        hp -= 19;
      	cancelGenerateBullets();
        typeMessage();
        return;
			}
      
    }
    bulletY += 1.6;
  }
	
	function changeHPbar(){
  	hpSpace.innerHTML = "LV 1 | HP "+hp+"/20";
  }
	
  var haveToGenerateUltraBullet;
  
  function generateUltraBullets(){
  	haveToGenerateUltraBullet = 1;
    bulletY = -10;
  }
  
  function drawUltraBullet(){
  	for(i=10; i<=140; i+=10){
    	canvas.beginPath();
    	canvas.arc(i, bulletY, 4, 0, Math.PI*2);
      canvas.fillStyle = "white";
      canvas.fill();
      
      if((i-x)*(i-x)+(bulletY-y)*(bulletY-y)<size*size){
      	console.log("collide");
      	haveToGenerateUltraBullet = 0;
        hp = 20;
        messageSpace.innerHTML = '<a href="https://game.uncyclopedia.kr/wiki/Undertale: The Challenge/폐허/입구2/토리엘">계속하기</a>';
        return;
			}
      
    }
    bulletY += 1.6;
  }
  
  function drawCanvas(){
  	canvas.clearRect(0, 0, 150, 150);
  	
  	drawHeart();
    if(haveToGenerateBullet === 1) drawBullet();
    if(haveToGenerateUltraBullet === 1) drawUltraBullet();
  }
  
	setInterval(drawCanvas, 30);
  setInterval(changeHPbar);
  
  typeMessage();
});

}

 // 여기까지 코드 입력 //

		
  }

}
$( plugin_Undertale )