Saya mencoba menskalakan sprite yang merupakan peluru di javascript, tetapi itu tidak akan berubah, apakah saya menempatkannya di fungsi yang salah? saat ini dalam fungsi buat, peluru harus sekitar 10x10 px tetapi sekarang sangat besar, mengambil sekitar setengah dari layar putar.

Saya menggunakan Phaser.io sebagai kerangka kerja, dan saya telah mencoba beberapa metode penskalaan mereka, tetapi tampaknya tidak berhasil.

var game = new Phaser.Game(800, 600, Phaser.CANVAS, 'phaser-example', { preload: preload, create: create, update: update, render: render });

function preload() {

    game.load.image('bullet', 'Pokeball.png');
    game.load.image('ship', 'assets/sprites/shmup-ship.png');

}

var sprite;
var weapon;
var cursors;
var fireButton;

function create() {
  game.stage.backgroundColor = ('#424242');

    //  Creates 1 single bullet, using the 'bullet' graphic
    weapon = game.add.weapon(1, 'bullet');

    //  The bullet will be automatically killed when it leaves the world bounds
    weapon.bulletKillType = Phaser.Weapon.KILL_WORLD_BOUNDS;

    //  Because our bullet is drawn facing up, we need to offset its rotation:
    weapon.bulletAngleOffset = 90;

    //  The speed at which the bullet is fired
    weapon.bulletSpeed = 400;

    sprite = this.add.sprite(320, 500, 'ship');

    game.physics.arcade.enable(sprite);

    //  Tell the Weapon to track the 'player' Sprite, offset by 14px horizontally, 0 vertically
    weapon.trackSprite(sprite, 14, 0);

    cursors = this.input.keyboard.createCursorKeys();

    fireButton = this.input.keyboard.addKey(Phaser.KeyCode.SPACEBAR);


    weapon.scale.x = 10;
    weapon.scale.y = 10;

    //  You can also scale sprites like this:
    //  sprite.scale.x = value;
    //  sprite.scale.y = value;



}

function update() {

    sprite.body.velocity.x = 0;

    if (cursors.left.isDown)
    {
        sprite.body.velocity.x = -200;
    }
    else if (cursors.right.isDown)
    {
        sprite.body.velocity.x = 200;
    }

    if (fireButton.isDown)
    {
        weapon.fire();
    }

}

function render() {



}
<!DOCTYPE html>
<html lang="en">
	<head>
		<meta charset="utf-8">
		<title>Simple Canvas Game</title>
    <style>
      html {
        background: black
      }
      canvas {
        margin: auto;
      }
    </style>
	</head>
	<body>
    <script src="phaser.js"></script>
		<script src="game.js"></script>
	</body>
</html>
2
hannacreed 10 Agustus 2017, 19:24

2 jawaban

Jawaban Terbaik

Senjata adalah plugin phaser yang membantu Anda membuat peluru. Anda dapat menskalakan peluru dengan cara ini:

weapon.bullets.setAll('scale.x', 0.5);
weapon.bullets.setAll('scale.y', 0.5);

Ada masalah serupa yang diposting di forum Phaser: http://www.html5gamedevs.com/topic/30010-euhm -scaling-a-weaponbullets/

1
testingKiki 23 Mei 2018, 14:17

Skala adalah nilai persentase, jadi sekarang Anda menskalakan poin sebesar 10.000% persen. Anda mungkin ingin mengatur ukuran secara eksplisit:

weapon.width = 10; weapon.height = 10;

0
plemarquand 10 Agustus 2017, 16:30