댓글 검색 목록

[javascript] ct.js 문서 - JavaScript 소개, 파트 I : 변수, 속성, 연산

페이지 정보

작성자 운영자 작성일 20-08-21 23:19 조회 609 댓글 0

JavaScript는 웹 사이트, 게임, ct.js와 같은 앱, 심지어 로봇을 지원하는 훌륭한 프로그래밍 언어입니다! 무한히 깊어도 배우기 쉽고 C#, C++ 또는 Java와 같은 다른 프로그래밍 언어와 유사합니다.


https://docs.ctjs.rocks/jsintro_pt1.html#variables 


Ct.js 게임은 모두 JavaScript로 작성되었습니다. 사본 및 방에 대한 논리를 정의하고 이를 사용하여 새 확장을 작성합니다. 여기서 우리는 이 언어의 기본 개념을 배울 것입니다.


Variables 


변수는 메모리 셀과 같습니다. 예를 들어 모든 정보를 저장할 수 있습니다. 수많은 생명, 자원 또는 경험, NPC의 이름 등


변수에는 인벤토리 항목 목록이나 카드 데크와 같은 더 복잡한 데이터도 포함될 수 있습니다.


var 키워드로 새 변수를 선언하고 등식 기호로 값을 할당 할 수 있습니다.


var maxHealth;
maxHealth = 100;
var health;
health = maxHealth; // You can copy a value from one variable (maxHealth) to another (health)

var mana, maxMana; // You can combine a number of declarations in one 'var' keyword
maxMana = mana = 100; // You can assign a value (100) to different values at once

var name;
name = 'ct.js'; // Text values, or Strings, are enclosed in quotation marks

var title = 'The Almighty Cat'; // You can combine both declaration process and assignment

var invincible = true, // These are Boolean values
    stunned = false,
    bleed = false; // You can combine multiple declarations and assignments with comma!

선언 프로세스는 ct.js에 새 변수를 만들고 싶다고 알려줍니다. 그것이 없으면 ct.js는 존재하지 않는 장소에 정보를 저장할 수 없기 때문에 오류가 발생합니다.


할당은 변수에 새 값을 씁니다. 선언되면 변수가 정의되지 않습니다. 그들은 할당 후에 만 ​​유용한 정보를 저장할 것입니다. 새 변수를 여러 번 할당 할 수 있습니다.


Properties 


변수는 시간 값에 적합하지만 ct.js 이벤트가 완료된 후에 사라집니다 (예 : 'On Destroy', 'On Step'). 이로 인해 변수는 빠른 작업에 유용하지만 장기적으로는 사용할 수 없습니다. 나중에 사용할 수 있도록 속성을 사용하여 정보를 저장해야 합니다.


변수를 사용하는 것과 동일한 방식으로 속성을 사용할 수 있지만 객체 내부에만 존재할 수 있습니다. 개체는 매우 추상적이며 모든 사본과 방을 포함합니다. 곧 자신의 개체를 만들 것입니다. 그러나 지금은 속성을 만들고 사용하는 방법을 살펴 보겠습니다.


this.maxHealth = 100;
this.health = this.maxHealth;

this.maxMana = this.mana = 100;

this.name = 'ct.js';
this.title = 'The Almighty Cat';

this.invincible = true;
this.stunned = false;
this.bleed = false;

보시다시피 가장 중요한 차이점은 속성을 선언 할 필요가 없다는 것입니다. 우리는 그들에게 직접 값을 쓰기 시작할 수 있습니다.


새로운 키워드도 있습니다 : this. 이것은 코드를 호출하는 현재 객체를 나타냅니다. Copy의 'On Step'이벤트에 대한 코드를 작성하면 정확한 복사본을 가리킵니다. this.health = 100 작성; 값이 100 인 현재 복사본 내부에 속성 상태를 저장한다는 의미입니다.


방의 코드 안에 this 키워드를 사용할 수 있습니다. 이 경우 값은 방에 저장됩니다.


Operations with values, properties and variables 


변수와 속성은 "있는 그대로"매우 쓸모가 없습니다. 조건문, 루프 및 작업을 사용하면 게임 논리를 정의하는 강력한 메커니즘이 됩니다. 루프와 조건문에 대해서는 나중에 이야기하겠습니다. 지금은 작업을 살펴 ​​보겠습니다.


숫자 작업은 모든 사람에게 친숙합니다. 그들은 산술 방정식과 같습니다.


this.level = 10;
this.health = this.level * 4; // 40
this.health = this.health - 5; // 35
this.inventoryCapacity = (5 + 10) * 8; // 120
this.magicPower = 5 + 10 * 8; // 85
this.magicDamage = this.magicPower + this.level * 5; // 135
this.magicResistance = this.magicPower / 10; // 8.5
/* What if we need to get a remainder of division? */
this.remainder = 11 % 4; // 3, because 11 / 4 = 2 and 3 as a remainder;

변수 나 속성을 변경해야 할 때 할당과 필요한 작업을 통합 할 수 있습니다.


this.health = 10;
this.health += 5; // health is now 15
this.health /= 5; // 3
this.health *= 10; // 30
this.health -= 20; // 10

변수의 값을 1로 수정하는 두 가지 멋진 연산자도 있습니다.


this.counter = 10;
this.counter++; // this.counter is now 11
this.counter++; // 12
this.counter--; // 11 again

문자열에도 연산자가 있습니다. 더하기 기호를 사용하여 문자열을 연결합니다.


this.name = 'ct.js';
this.title = 'Almighty Cat';
this.title = 'The ' + this.title; // 'The Almighty Cat'
this.name += ', '; // 'ct.js, '
this.name += this.title; // 'ct.js, The Almighty Cat'

문자열에 숫자를 추가 할 수도 있습니다.


var score = 1000,
    drawText = 'Score: ' + score; // 'Score: 1000'

var power = 42,
    powerInfo = power + ' of power'; // '42 of power'

경고! 숫자와 같은 문자열과 수학 연산자를 혼합하면 상황이 이상해집니다.


var money = 100,
    price = '5';
var case1 = money - price, // 95
    case2 = money + price; // 1005 (!)

따라서 경험의 규칙은 숫자 값을 문자열이 아닌 숫자로 저장하는 것입니다. 문자열을 숫자로 변환해야 하는 경우 parseFloat (yourString)을 사용하십시오.


Boolean values and comparisons 


부울은 값이 'true'또는 'false'인 이러한 변수 및 속성입니다. 여기서는 따옴표를 사용하지 않습니다.


부울 값은 비교를 사용하여 검색 할 수 있으며 자체 연산자도 있습니다. 숫자는 수학에서 찾을 수 있는 것과 같은 비교를 하는 반면, 문자열은 같거나 같지 않습니다.


var health = 63,
    maxHealth = 100,
    mana = 100,
    maxMana = 100;

health < maxHealth; // true
mana > maxMana; // false
mana >= maxMana; // true
health <= maxHealth; // true
health == maxHealth; // are they equal? false
health != maxHealth; // they aren't equal, right? true

var cat = 'Albert',
    dog = 'Snowball';
cat == dog; // false
cat != dog; // true

/* There are also strict comparisons, which compare both values and variables' types */

5 == '5'; // true
5 === '5'; // false, because '5' is String, not a Number
5 === parseFloat('5') // true, because parseFloat returns a Number, and so is 5

부울 값에는 연산자도 있습니다. 가장 기본적인 것은!이며 옆에 있는 값을 부정합니다.


!true; // false
!false; // true

var health = 50,
    alive = !(health <= 0); // true
var dead = !alive; // false

&& 및 ||도 있습니다. 첫 번째는 "AND"이고 두 번째는 "OR"입니다. 서로 다른 부울 값을 결합하는 데 사용됩니다.


this.onGround = true;
var keyUp = ct.keyboard.down['up'], // it will be 'true' if an upper arrow key is held down
    canJump = this.onGround && keyUp;

this.powerFromLeft = false;
this.powerFromRight = true;
this.poweredOn = this.powerFromLeft || this.powerFromRight; // true


다음 부분에서는 조건문과 루프에 대해 이야기 할 것입니다. 지금은 복사의 기본 속성에 대해 읽어 보는 것이 좋습니다.



댓글목록 0

등록된 댓글이 없습니다.

웹학교 로고

온라인 코딩학교

코리아뉴스 2001 - , All right reserved.