Thanks for sharing everyone this will help much people
the way i would do that is to make animations for the ground, and then have it Play-stop specific ones when the mouse is over top and pressed down.
how would i mod killers track to mouse to a top down script
holy crap this thread is dead
correction : it’s rising from the dead !
it’s a zomby !!
GET YOUR WEAPONS READY !!!
what do you really want to do ?
i want to make a 2d fps script get mouse pozition set rot
no its a corps. completely dead
Sorry, have been busy recently, feel free to contribute your own scripts though!
Pretty sure it’s dead. Not to mention it was supposed to be a repository and not a request line.
Thx for sharing
It would be a repository!
Hi, I believe many people would apreciate a bullet hole script, so here it is.
#BulletHole.py
from math import sin, cos, sqrt
# vector functions!!
def VEC_length(x):
return sqrt(x[0]*x[0]+x[1]*x[1]+x[2]*x[2])
def VEC_normalize(x):
length = VEC_length(x)
return [x[0]/length,x[1]/length,x[2]/length]
def VEC_cross(x, y):
return [x[1]*y[2] - x[2]*y[1],
x[2]*y[0] - x[0]*y[2],
x[0]*y[1] - x[1]*y[0]]
def VEC_min(x, y):
return [x[0] - y[0], x[1] - y[1], x[2] - y[2]]
def MAT_trackvector(fw, y):
if abs(abs(fw[2]) - abs(y[2])) < .001: #prevent gimbol lock
y.append(y[0])
del y[0]
right = VEC_normalize(VEC_cross(y, fw))
up = VEC_cross(fw, right)
return [[right[0], up[0], fw[0]],
[right[1], up[1], fw[1]],
[right[2], up[2], fw[2]]]
ownAmmo = GameLogic.getCurrentScene().getObjectList()["OBBulletSpawn"]
cont = GameLogic.getCurrentController()
obj = cont.getOwner()
ray_sensor = cont.getSensor("ray_bullet")
lmb_sensor = cont.getSensor("LMB")
add_bullet_act = cont.getActuators()[0]
# position the last added bullet hole
newobj = add_bullet_act.getLastCreatedObject()
if obj.ebhole and ray_sensor.isPositive():
hit_pos = ray_sensor.getHitPosition()
hit_norm = ray_sensor.getHitNormal()
newobj.setOrientation(MAT_trackvector(hit_norm, [0.0,0.0,1.0]))
pass
newobj.setPosition(hit_pos)
obj.ebhole = 0
# determine whether or not to create a new bullet hole
make_bullet = ray_sensor.isPositive() and lmb_sensor.isPositive() and ownAmmo.Bullets > 0
if make_bullet:
# I am making the bullet hole.
GameLogic.addActiveActuator(add_bullet_act, 1)
obj.ebhole = 1
What does MAT_trackvector do?
Content has been removed. MayDev
hey thanks for make change it for the 2.5 version, this script is very usefull, and i think that this thread should be stick again, i hope that people help each other with their scripts.
Content has been removed. MayDev
This thread is linked in the useful threads sticky, which I think is better.
A few utility functions, all using the 2.5 API:
inSight()
def inSight(object, other, distance, scope=90):
"""Determines if a point is within a an objects sight cone.
Assumes +y is forward.
Arguments:
object -- object doing the looking
other - point being determined
distance -- max distance to look
scope -- angle of the sight code (degrees)
"""
dis, gvec, lvec = object.getVectTo(other)
if dis <= distance:
angle = lvec.angle(Vector([0,1,0]))
return math.degrees(angle) < (scope / 2)
singleRayCollisionDetection()
def singleRayCollisionDetection(object, distance, width):
"""Uses a single ray cast in the direction of the object
to detect if any objects are infront of it. Assumes +y as forward.
Arguments:
object -- object doing the scanning
distance -- distance to look ahead
width -- width of the object (sould give it a buffer)
"""
x = (bge.logic.getRandomFloat()*width) - (width/2)
vec = Vector([x, distance, 0]) * object.worldOrientation
vec = vec + object.worldPosition
hit_obj, point, normal = object.rayCast(vec, None, distance)
return point
multiRayCollsionDetection()
def multiRayCollisionDetection(object, distance, width):
"""Uses 3 rays cast in the direction of the object
to detect if any objects are infront of it. Assumes +y as forward.
More accurate than single ray detection.
Arguments:
object -- object doing the scanning
distance -- distance to look ahead
width -- width of the object (sould give it a buffer)
"""
vecs = [Vector([-width/2, distance, 0]),
Vector([0, distance, 0]),
Vector([width/2, distance, 0])]
for vec in vecs:
vec = vec + object.worldPosition
vec = vec * object.worldOrientation
hit_obj, point, normal = object.rayCast(vec, None, distance)
return point
FIRST POST UPDATED!!! Completely new “look” for the repository now! It looks a lot more official now. Now start posting more scripts!!
Content has been removed. MayDev
hehe hopefully we can get other veteran coders to just dump all their prototype scripts here (we all have them sitting on our computer somewhere!)
I’ll start posting more of my own stuff tomorrow after work.
Does anyone know how to make that track to mouse script work in 2.5? It’d be really usefull…
#EDIT#
There appears to be a problem with the name ‘gamelogic’ at the beginning… Does it need to be defined or am i just a noob?