아래 코드를 복사하여 입력한다.

더보기

<script type="text/x-mathjax-config"> MathJax.Hub.Config({ tex2jax: { inlineMath: [ ['$','$'], ['\\(','\\)'] ], processEscapes: true }, TeX: { equationNumbers: { autoNumber: "AMS" } } }); </script>

<script src='https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js?config=TeX-MML-AM_CHTML'></script>

입력 위치 : 아래 노란색 부분을 순서대로 클릭한다.

</script>와 </head> 사이에 맨 위의 코드를 입력한다.

출처: https://codepen.io/iftrrtrn/pen/EKwJLo

 

<CSS>

 

6: dispaly: inline-block;

 

   div 배치할 때 float: ; 보다 간단하다.

 

22: border-collapse: collapse; //table과 td 사이의 테두리를 없앱니다.

 

27: first-child // 첫번째를 선택하는 것

 

<javascript>

 

7: tetris class

9:   ~~

19: TetraminoForms

55: fieldArray

64: generateComponent() 

    //클로저 함수 

   // 미리보기, 게임판, 게임판 배열 만들기

66: 미리보기 그리기

75: appendChild // td 같은 것 추가

81: classLIst.add // class 추가

92: piece 없는 보드 그리기

114: 보드 배열 값 초기화

      filedArray.push([])

      filedArray[i].push('.')

      (0, 0) (0, 1) (0, 2) ..... (0, 9)

      (1,0)   ....

      (2.0)  

      .

      .

128: Tetramino class

130: Tetramino 클래스

      this.coords  : 최초 생성 좌표

 

136: Tetramino 회전 함수

      form 배열 좌표 : 적색은 회전하는 좌표

      (0,0) (0,1) (0,2) (0,3) (0,4)

      (1,0) (1,1) (1,2) (1,3) (1,4)

      (2,0) (2,1) (2,2) (2,3) (2,4)

      (3,0) (3,1) (3,2) (3,3) (3,4)

      예제 

      TetraminoForms = [

       [

        [ 'i', 'i', 'i', 'i' ]

       ],

       를 선택했을 경우 

      temp.length = 4

      temp[0].length = 1

      form.length = 1

      form[0].length = 4

 

146: 회전 시 블록 충돌 확인

163: if (coords[0] === 0 && coords[1] === -1) // ↑ 키가 눌러졌다면

168: 좌우벽(폭) 충돌 검사

169: filedArray[0].length = 1

172: 좌우 값 더함

176: 하강 검사, 

177: filedArray.length = 7

178: 하강 좌표 증가 

 

184: 보드 그리기

       fieldArray.length = 20

       filedArray[0].length = 10

193: drawNextTetramino

207: 키 입력 

                      [0, -1] 38 

       37 [-1, 0]               [1, 0] 39 

                       [0, 1] 40 

216: runTetris()

// tetramino 생성

226: moveTetramino() // 자동으로 떨어지기

         233: 전단계 piece 지우기 위해서 보드 배열 값 세팅

243: piece 떨어지는 것(이동) 그리기, 블록 배열 값 세팅

248: 입력이 없다로 세팅

257: fallTetramino()

267: 바닥 충돌 검사

277: 블록 충돌 검사

287: side 충돌 검사

 

315: 채움 검사

339: 맨 위에 검사

345: resetGame()

 

356: 최초 시작

 

더보기

356

357

358

359 : 216

220 : 193

222: 226

 

 

 

 

 

 

'소프트웨어 > website' 카테고리의 다른 글

티스토리에 mathjax 작동  (0) 2022.10.19
[자바 스크립트] 테트리스 분석  (0) 2022.10.01
SVG 애니메이션 직선, 회전 이동  (0) 2020.07.14

출처: https://codepen.io/kudchikarsk/pen/GYKmdd

 

<HTML>Pug

3: 배너

7: 블록 그리기 

8: 블록 160개

 

<CSS>

# : id

.  : class

111: color picker

117: opacity // 투명도 조정

 

<JavaScript>

1: Position class

8: Block class

더보기

   21: init()

   25: render()

   32: fall()

   52: getPosition

   62: destroy()

        63: $().remove() // HTML에서 ()요소 제거 

   88: fallingPosiotions()

        90: .map (52)

67: Shape class

더보기

    72: getBlocks()

    76: init()

         78: block.init 21

    82: 

         84: 25

    94: fall()

         96: 32

    114: 40

142: Square class

153: LShape

     160: super // 부모 클래스와 연동하기 위해 사용한다.

     164: rotate()

     171: rotatePosition()

389: Board class

더보기

     396: parseInt() // 정수로 변환

     401: setScore()

     406: getScore()

     410: init()

             411: $().each // 바탕화면 블록 그리기를 반복한다. 

            412: parseInt()

            

            

     426: newGame()

           427: this.shapes // 606 에서 배열 값 만듬

428: 614

429: 618 (72)

432: 62

436:  441

     441: initGameLoop()

              447: 451

     451: gameLoop()

     452: 483 // shape 그리기, 충돌검사

     453: 509 // 블록 그리기, 채움 검사, 채움지우기

     454: 572 // 새 shape 생성

     455: 460 // 게임 끝나면 다시 그리기

     460: gameUpdate()

           464: clearinterval() // setinterval 작동 해제

     473: isGameOver()

     483: renderShapes()

            484: 610

            486: 624 (88) // 벽 검사

            487: 633 // 블록 유무 검사

            489: 94 

            490: 82

     502: dropShape

     509: renderBlocks()

     531: flashBlocks()

     539: fallBlocks()

     551: removeBlocks()

     557: destroyBlocks()

     563: getBlock()

     572: spawnShapes() // Shape 생성

           576: 689

           604: shape.init 76 

 

     610: getShape()

     614: removeShape()

           615: .splice ( indexof )

     618: addBlocks() // 블록 생성

     624: arePositionWithinBoard()

     633: areBlockEmpty()

     645: leftKeyPress()

           651: 114

           652: shape.render() // 옆으로 이동 그리기

     657: rotate()

     669: rightKeyPress()

     689: getRandomRange() // 난수 생성, 블록 선택

 

 


1. 보드 그리기 : <Html>pug <CSS> 

2. 블록 생성 : 

   메모리 생성 : 572

   화면 생성    

3. 블록 가로 이동 : 

   좌표 변경: 114

   화면 표시

4. 블록 회전 : 

   좌표 변경 : 171

   화면 표시

5. 블록 낙하 :

    좌표 값 변경 : shape.fall()

    화면 표시: shape.render()

6. 블록 충돌 검사 벽 : 624

7. 블록 충돌 검사 블록 : 633

8. 블록 채워지면 지우기 : renderBlocks()

   메모리 값 삭제 destroyBlocks(), removeBlocks()

   메모리 값 이동 fallBlocks

   화면 삭제

9. 점수 계산

 


 

 

 



'소프트웨어 > website' 카테고리의 다른 글

티스토리에 mathjax 작동  (0) 2022.10.19
[자바스크립트] 테트리스 분석  (0) 2022.10.01
SVG 애니메이션 직선, 회전 이동  (0) 2020.07.14

AnimateMotion


begin = "button.click"


<rect  style="cusor:pointer;"/>

<text > Click </text>


AnimateTranform


예제

 <circle

         cx="60.854164"

         cy="122.37499"

         r="13.349334" >

         <animateTransform

            attributeName="transform"

            begin="0s"

            dur="20s"

            type="rotate"

            from="0 60.854164 122.37499" /* 회전 중심은 원의 중심으로 했다. */

            to="360 60.854164 122.37499"

            repeatCount="indefinite"

        />

        </circle>


mpath


참고 : 

https://developer.mozilla.org/en-US/docs/Web/SVG/Element/animate


https://css-tricks.com/guide-svg-animations-smil/

http://blog.bilue.com.au/svg-animations-seriously-very-good/


https://codepen.io/netsi1964/pen/WxyYbj


https://css-tricks.com/almanac/properties/t/transform/



1축 이동

seesaw

spring

X, Y 방향으로 이동


X, Y 방향으로 이동: 자바스크립트 방식

회전



회전: 자바스크립트 방식

'소프트웨어 > website' 카테고리의 다른 글

티스토리에 mathjax 작동  (0) 2022.10.19
[자바스크립트] 테트리스 분석  (0) 2022.10.01
[자바 스크립트] 테트리스 분석  (0) 2022.10.01

+ Recent posts