Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- model1
- 블록체인
- CSS
- 웹소켓
- RDS
- 암호화
- 비트코인
- tiles.xml
- websocket
- JSP
- node.js
- Cookie
- 웹게임
- HTML
- express
- PL/SQL
- EC2
- JavaScript
- 알고리즘
- phaser
- Ajax
- 배포
- 도커
- jQuery
- Spring
- docker
- autowired
- SQL
- Servlet
- AWS
Archives
- Today
- Total
記錄
Farm_4) animation, audio, text 본문
animation
var self = this;
var animal;
animalData.forEach(function(element){
// create each animal and save it's properties
// 위에서 프레임으로 잡아줬기 때문에 맽 끝에 프레임 번호를 넣어줘야 한다
animal = self.animals.create(-1000, self.game.world.centerY, element.key, 0);
//I'm saving everything that's not Phaser-related in an object
animal.customParams = {text: element.key};
//anchor point set to the center of the sprite
animal.anchor.setTo(0.5);
// create animal animation
// animation을 추가하는 것으로 임의의 animation명과 프레임 반복을 설정
// 3개의 프레임 per second 작동 설정, loop 설정 false
// 만약 loop가 true면 무한반복 한다
animal.animations.add('animate', [0, 1, 2, 1, 0, 1], 3, false);
//enable input so we can touch it
animal.inputEnabled = true;
animal.input.pixelPerfectClick = true;
animal.events.onInputDown.add(self.animateAnimal, self);
});
audio
1) preload로 쓰고자 하는 audio 준비
preload: function() {
this.load.image('background', 'assets/images/background.png');
this.load.image('arrow', 'assets/images/arrow.png');
this.load.spritesheet('chicken', 'assets/images/chicken_spritesheet.png', 131, 200, 3);
this.load.spritesheet('horse', 'assets/images/horse_spritesheet.png', 212, 200, 3);
this.load.spritesheet('pig', 'assets/images/pig_spritesheet.png', 297, 200, 3);
this.load.spritesheet('sheep', 'assets/images/sheep_spritesheet.png', 244, 200, 3);
// 아무거나 실행 되니까 두개 잡아도 상관 없다
this.load.audio('chickenSound', ['assets/audio/chicken.ogg', 'assets/audio/chicken.mp3']);
this.load.audio('horseSound', ['assets/audio/horse.ogg', 'assets/audio/horse.mp3']);
this.load.audio('pigSound', ['assets/audio/pig.ogg', 'assets/audio/pig.mp3']);
this.load.audio('sheepSound', ['assets/audio/sheep.ogg', 'assets/audio/sheep.mp3']);
},
2) forEach돌리기 위한 배열 설정이도 키 값을 audio로 설정
var animalData = [
{key: 'chicken', text: 'CHICKEN', audio: 'chickenSound'},
{key: 'horse', text: 'HORSE', audio: 'horseSound'},
{key: 'pig', text: 'PIG', audio: 'pigSound'},
{key: 'sheep', text: 'SHEEP', audio: 'sheepSound'}
];
3) forEach내부에서 customParams의 key값을 임의 설정 (sound는 키워드 아님)하고 잡아뒀던 오디오를 add
animal.customParams = {text: element.key, sound: self.game.add.audio(element.audio)};
4) 클릭시 실행되는 함수인 animateAnimal에서 3)에서 잡아둔 sound를 잡고 들어가서 play()를 실행
animateAnimal: function(sprite, event) {
sprite.play('animate');
// 여기서 sound는 내장된 키워드가 아니고 위에서 우리가
// customParams에서 sound로 키 값을 잡았기 때문이다
sprite.customParams.sound.play();
},
text
var animalData = [
{key: 'chicken', text: 'CHICKEN', audio: 'chickenSound'},
{key: 'horse', text: 'HORSE', audio: 'horseSound'},
{key: 'pig', text: 'PIG', audio: 'pigSound'},
{key: 'sheep', text: 'SHEEP', audio: 'sheepSound'}
];
//show animal text
this.showText(this.currentAnimal);
newAnimalMovement.onComplete.add(function()
{
this.isMoving = false;
this.showText(newAnimal);
}, this);
showText: function(animal) {
if(!this.animalText) {
var style = {
font: 'bold 30pt Arial',
fill: '#D0171B',
align: 'center'
}
this.animalText = this.game.add.text(this.game.width/2, this.game.height * 0.85, '', style);
this.animalText.anchor.setTo(0.5);
}
this.animalText.setText(animal.customParams.text);
this.animalText.visible = true;
}
'Game > Phaser' 카테고리의 다른 글
Pet_2) inputEnabled, enableDrag(), button 처리 (0) | 2018.04.06 |
---|---|
Pet_1) init, API Doc 활용, phaser 함수 다시 이해 (0) | 2018.04.06 |
Farm_3) 그룹과 반복문, next(), 동물 교체, tween, onComplete (0) | 2018.04.04 |
Farm_2) 반응형 화면처리, click or touch event, 그룹, forEach (0) | 2018.04.03 |
Farm_1) 기본 프레임, 이미지 회전, 앵커포인트, 사이즈 조절 (0) | 2018.04.03 |
Comments