Created
May 3, 2020 18:59
-
-
Save PJZ9n/cbe8f5fb99af6cb368586ad92ebc891d to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
/** | |
* @name Particle | |
* @version 1.0.0 | |
* @main PJZ9n\Particle\Main | |
* @api 3.0.0 | |
*/ | |
declare(strict_types=1); | |
namespace PJZ9n\Particle; | |
use pocketmine\event\Listener; | |
use pocketmine\event\player\PlayerMoveEvent; | |
use pocketmine\level\particle\DustParticle; | |
use pocketmine\level\particle\HeartParticle; | |
use pocketmine\math\Vector3; | |
use pocketmine\plugin\PluginBase; | |
class Main extends PluginBase implements Listener | |
{ | |
/** @var int Tick */ | |
private $last; | |
public function onEnable(): void | |
{ | |
$this->last = $this->getServer()->getTick(); | |
$this->getServer()->getPluginManager()->registerEvents($this, $this); | |
} | |
public function onPlayerMove(PlayerMoveEvent $event): void | |
{ | |
if ($this->getServer()->getTick() - $this->last > 20) { | |
$this->last = $this->getServer()->getTick(); | |
$player = $event->getPlayer(); | |
$level = $player->getLevel(); | |
//$levelはLevel(ワールド)オブジェクトとし、$playerはプレイヤーオブジェクトとします | |
$x = $player->x; | |
$y = $player->y; | |
$z = $player->z; | |
$center = new Vector3($x, $y, $z); //プレイヤーの座標 ($player->asVector3() でもよい) | |
$radius = 0.5; | |
$count = 100; | |
//$particle = new DustParticle($center, mt_rand(), mt_rand(), mt_rand(), mt_rand()); //ランダムな色を発生 | |
$particle = new HeartParticle($center); | |
for ($yaw = 0, $y = $center->y; $y < $center->y + 4; $yaw += (M_PI * 2) / 20, $y += 1 / 20) { | |
$x = -sin($yaw) + $center->x; | |
$z = cos($yaw) + $center->z; | |
$particle->setComponents($x, $y, $z); | |
$level->addParticle($particle); //パーティクル発生 | |
} | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment