本文整理汇总了Python中vector.Vector.rot_to方法的典型用法代码示例。如果您正苦于以下问题:Python Vector.rot_to方法的具体用法?Python Vector.rot_to怎么用?Python Vector.rot_to使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类vector.Vector
的用法示例。
在下文中一共展示了Vector.rot_to方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: shoot
# 需要导入模块: from vector import Vector [as 别名]
# 或者: from vector.Vector import rot_to [as 别名]
def shoot(self, index):
pos = self.ships[index].pos.copy();
speed = Vector(1,1);
speed.rot_to(self.ships[index].angle);
self.shots.append(Shot(pos, speed, index));
shotData = self.shots[-1].to_data();
for i in self.queueShots:
self.queueShots[i].append(shotData);
示例2: __init__
# 需要导入模块: from vector import Vector [as 别名]
# 或者: from vector.Vector import rot_to [as 别名]
class Ship:
def __init__(self, x=50, y=50):
self.pos = Vector(x, y);
self.speed = Vector();
self.accel = Vector();
self.angle = 0;
self.tmpAngle = 0;
self.canShoot = 1;
self.shootLimiter = Timer(2);
self.keyb = 1;
self.keys = {
"up":0,
"down":0,
"left":0,
"right":0,
"shoot":0
};
self.mouse = Vector(0,0);
self.mShoot = 0;
self.accel.x = 1;
self.points = (
Vector(0,-10),
Vector(0,10),
Vector(30,0)
);
def update(self, shoot_function, index):
if self.canShoot:
self.shootLimiter.reset();
else:
self.canShoot = self.shootLimiter.update();
if self.keyb:
if self.keys["up"]: self.accel.y = -0.5;
elif self.keys["down"]: self.accel.y = 0.5;
else:
self.accel.y = 0;
self.speed.y *= 0.98;
if self.keys["left"]: self.accel.x = -0.5;
elif self.keys["right"]: self.accel.x = 0.5;
else:
self.accel.x = 0;
self.speed.x *= 0.98;
if self.keys["shoot"] and self.canShoot:
self.canShoot = 0;
self.shootLimiter.reset();
shoot_function(index);
else:
if self.accel.hyp() < 1: self.accel = Vector(0,1);
self.accel.rot_to(self.mouse.minus(self.pos).angle());
if self.mshoot and self.canShoot:
self.canShoot = 0;
self.shootLimiter.reset();
shoot_function(index);
if not self.accel.isNull(): self.angle = self.accel.angle();
self.speed.add(self.accel);
if not self.speed.isNull():
hyp = self.speed.hyp();
if hyp > 10:
self.speed.set_length(10);
self.pos.add(self.speed);
bounce = self.pos.moveWithinBounds(Vector(800, 600));
if bounce:
if bounce == 1: self.speed.x = -self.speed.x;
elif bounce == 2: self.speed.y = -self.speed.y;
def hit(self):
pass;
def set_keys(self, up, down, left, right, shoot):
self.keyb = 1;
self.keys["up"] = up;
self.keys["down"] = down;
self.keys["left"] = left;
self.keys["right"] = right;
self.keys["shoot"] = shoot;
def set_mouse(self, mpos, mshoot):
self.keyb = 0;
self.mouse.x = mpos[0];
self.mouse.y = mpos[1];
self.mshoot = mshoot;
def net_data(self):
# [0] = ( posX, posY )
# [1] = ( speedX, speedY )
# [2] = angle
# ( ( posX, posY ), ( speedX, speedY ), angle )
return (self.pos.get(1), self.speed.get(1), int(self.angle * 100));
@staticmethod
def collide(ships, shots, explosions=0):
for i in ships:
for shot in shots:
if ships[i].pos.dist_to(shot.pos) < 10:
ships[i].hit();
#.........这里部分代码省略.........