Re: [Discussion] Sketchup, Blender, 3Dmax and other 3D programs
Posted: 03 Apr 2010 14:31
Can you translate that to English?
This my friend, is why I don't use Sketchup.
This my friend, is why I don't use Sketchup.
The place to talk about Transport Tycoon
https://www.tt-forums.net/
Code: Select all
#!BPY
""" Registration info for Blender menus:
Name: 'Auto renderer for Locomotion'
Blender: 237
Group: 'Render'
Tooltip: 'Generate sprites for Locomotion Objects'
"""
__author__ = "K.Y.Chung"
__url__ = ("blender", "kychung")
__version__ = "3.0"
__bpydoc__ = """\
This script can generate the sprites for Locomotion Objects. All Rights Reserved. The author disclaims all liabilities.
"""
from Blender import *
from Blender.BGL import *
from Blender.Draw import *
from Blender.Scene import Render
import math
# Events
EVENT_MENU_V = 1
EVENT_MENU_O = 4
EVENT_START = 2
EVENT_EXIT = 3
# Vehicle Type
vehType = Create(1)
# Object to rotate/orbit
targetObject = Create(1)
# Sprites for Railway Car Bogies
b1 = range ( 0, 16 ) # Sprite indexes for horizontal
b2 = range ( 16, 48 ) # Sprite indexes for 11.5 degree slopes
# Sprites for Railway Cars / Narrow Gauge Railway Cars / Ships / Aircrafts
i1 = range ( 0, 64 ) # Sprite indexes for horizontal
# Additional sprites for Railway Cars / Narrow Gauge Railway Cars / Aircrafts
i2 = range ( 64, 68 ) # Sprite indexes for 6 degree slope
i3 = range ( 68, 72 ) # Sprite indexes for -6 degree slopes
i4 = range ( 72, 104 ) # Sprite indexes for 11.5 degree slopes
i5 = range ( 104, 136 ) # Sprite indexes for -11.5 degree slopes
# Additional sprites for Narrow Gauge Railway Cars
i6 = range ( 136, 140 ) # Sprite indexes for 17 degree slopes
i7 = range ( 140, 144 ) # Sprite indexes for -17 degree slopes
i8 = range ( 144, 176 ) # Sprite indexes for 22.5 degree slopes
i9 = range ( 176, 208 ) # Sprite indexes for -22.5 degree slopes
# Sprites for Road Vehicles / Trams / Aircraft Shadows
j1 = range ( 0, 32 ) # Sprite indexes for horizontal
j2 = range ( 32, 36 ) # Sprite indexes for 6 degree slope
j3 = range ( 36, 40 ) # Sprite indexes for -6 degree slopes
j4 = range ( 40, 44 ) # Sprite indexes for 11.5 degree slopes
j5 = range ( 44, 48 ) # Sprite indexes for -11.5 degree slopes
j6 = range ( 48, 52 ) # Sprite indexes for 17 degree slopes
j7 = range ( 52, 56 ) # Sprite indexes for -17 degree slopes
j8 = range ( 56, 60 ) # Sprite indexes for 22.5 degree slopes
j9 = range ( 60, 64 ) # Sprite indexes for -22.5 degree slopes
# Sprites for Aircraft Shadows
k1 = range ( 136, 168 )
#Sprites for Buildings
k2 = range ( 0, 4 )
# GUI drawing
def draw():
global vehType, targetObject
global EVENT_MENU_V, EVENT_MENU_O, EVENT_START, EVENT_EXIT
glClear(GL_COLOR_BUFFER_BIT)
glColor3f(0,0,0)
# Limitations and Precautions
glRasterPos2d(10, 250)
Text("Limitations and precautions: (READ CAREFULLY BEFORE START)")
glRasterPos2d(10, 225)
Text("1. All the render parameters and lights should be set manually before running this script. The script will do nothing about it.")
glRasterPos2d(10, 210)
Text("2. There should be ONE and NO MORE THAN ONE camera in the scene, which has been configured properly.")
glRasterPos2d(10, 195)
Text("3. The camera should be placed in the 2nd quadrant, pointing towards the origin.")
glRasterPos2d(10, 180)
Text("3. The vehicle itself should be a single mesh object, join all together if there is more than one.")
glRasterPos2d(10, 165)
Text("4. Check the orientation of the vehicle by switching to Front View first. The vehicle should head along y-axis towards -ve direction initially.")
glRasterPos2d(10, 150)
Text("4. The vehicle object should not be translated or rotated in \"Transform Properties\". Object scales should be the same in all directions.")
glRasterPos2d(10, 135)
Text("5. You need to \"tilt\" the \"car\" by yourself in Edit Mode if you are making tilt trains.")
# Titles
glRasterPos2d(10,290)
Text("Generate sprites for Locomotion Objects", 'large')
# Menu to choose vehicle type
glColor3f(1,1,1)
glRasterPos2d(10, 90)
Text("Vehicle Type:")
MenuOptions = "Railway Cars %x1|Railway Cars (Tilt Trains) %x9|Railway Cars (Tilt Trains banking left) %x10|Railway Cars (Tilt Trains banking right) %x11|Railway Car Bogies %x13|Narrow Gauge Railway Cars %x2|Road Vehicles %x3|Braking Lights of Road Vehicles %x4|Trams %x5|Ships %x6|Aircrafts %x7|Aircraft Shadows %x12|Buildings %x8"
vehType = Menu(MenuOptions, 1, 150, 85, 220, 20, vehType.val, "Choose the Vehicle Type.")
#Menu to choose the object to rotate/orbit
glRasterPos2d(10, 50)
Text("Object to rotate/orbit:")
MenuTargetObject = "Mesh %x1|Camera %x2"
targetObject = Menu(MenuTargetObject, 4, 150, 45, 220, 20, targetObject.val, "Choose the object to rotate/orbit.")
# Start and Exit
Button("Start", 2, 10, 10, 50, 18)
Button("Exit", 3, 70, 10, 50, 18)
def event(evt, val):
global vehType, targetObject
global EVENT_MENU_V, EVENT_MENU_O
if ((evt == QKEY) or (evt == ESCKEY)):
Exit()
elif (evt == EVENT_MENU_V):
vehType == val
elif (evt == EVENT_MENU_O):
targetObject == val
def bevent(evt):
global vehType, targetObject
global EVENT_START, EVENT_EXIT
# Manages GUI events
if (evt == EVENT_EXIT):
Exit()
elif (evt == EVENT_START):
main()
def autoRender(n):
global vehType
# Get the sprite index, shift or multiply for some vehicle types
if (vehType == 3):
n = n * 2
if (vehType == 4):
n = ( n * 2 ) + 1
if (vehType == 9):
n = n * 3
if (vehType == 10):
n = ( n * 3 ) + 1
if (vehType == 11):
n = ( n * 3 ) + 2
k = str(n)
while (len(k) < 3): # Fill leading zeros
k = '0' + k
# Execute rendering routine
scene= Scene.GetCurrent()
context = scene.getRenderingContext()
context.render()
context.saveRenderedImage(k)
def main():
scn = Scene.GetCurrent()
ob = scn.objects.active # Gets the current active object (If Any)
if ob == None or ob.getType() != 'Mesh': # Checks the active objects a mesh
Draw.PupMenu('ERROR%t|Select a mesh object.')
return
c = scn.objects.camera # Gets the active camera
Window.WaitCursor(1) # So the user knowns the script is busy.
is_editmode = Window.EditMode() # Store edit mode state
if is_editmode: Window.EditMode(0) # Python must get a mesh in object mode.
if (targetObject == 1):
main_o(ob)
elif (targetObject == 2):
main_c(ob, c)
# Go back into editmode if we started in edit mode.
if is_editmode: Window.EditMode(1)
Window.WaitCursor(0)
def main_c(ob, c):
global vehType
global b1, b2, i1, i2, i3, i4, i5, i6, i7, i8, i9, j1, j2, j3, j4, j5, j6, j7, j8, j9, k1, k2
#Get the initial pose of the camera
c_LocXInit = c.LocX
c_LocYInit = c.LocY
c_RotZInit = c.RotZ
c_modulus = math.hypot ( c_LocXInit, c_LocYInit )
if (vehType == 13):
for x in b1:
c.RotZ = c_RotZInit + ( math.pi / 16 * ( x - b1[0] ) )
c.LocX = c_modulus * math.cos ( c.RotZ - ( math.pi / 2 ) )
c.LocY = c_modulus * math.sin ( c.RotZ - ( math.pi / 2 ) )
autoRender(x)
#Reset camera pose
c.LocX = c_LocXInit
c.LocY = c_LocYInit
c.RotZ = c_RotZInit
for x in b2:
ob.RotX = - ( math.pi / 180 * 11.5 )
c.RotZ = c_RotZInit + ( math.pi / 16 * ( x - b2[0] ) )
c.LocX = c_modulus * math.cos ( c.RotZ - ( math.pi / 2 ) )
c.LocY = c_modulus * math.sin ( c.RotZ - ( math.pi / 2 ) )
autoRender(x)
#Reset camera pose
c.LocX = c_LocXInit
c.LocY = c_LocYInit
c.RotZ = c_RotZInit
if ((vehType == 1) or (vehType == 2) or (vehType == 6) or (vehType == 7) or (vehType == 9) or (vehType == 10) or (vehType == 11)):
for x in i1:
c.RotZ = c_RotZInit + ( math.pi / 32 * ( x - i1[0] ) )
c.LocX = c_modulus * math.cos ( c.RotZ - ( math.pi / 2 ) )
c.LocY = c_modulus * math.sin ( c.RotZ - ( math.pi / 2 ) )
autoRender(x)
#Reset camera pose
c.LocX = c_LocXInit
c.LocY = c_LocYInit
c.RotZ = c_RotZInit
if ((vehType == 1) or (vehType == 2) or (vehType == 7) or (vehType == 9) or (vehType == 10) or (vehType == 11)):
for x in i2:
ob.RotX = - ( math.pi / 30 )
c.RotZ = c_RotZInit + ( math.pi / 2 * ( x - i2[0] ) )
c.LocX = c_modulus * math.cos ( c.RotZ - ( math.pi / 2 ) )
c.LocY = c_modulus * math.sin ( c.RotZ - ( math.pi / 2 ) )
autoRender(x)
#Reset camera pose
c.LocX = c_LocXInit
c.LocY = c_LocYInit
c.RotZ = c_RotZInit
for x in i4:
ob.RotX = - ( math.pi / 180 * 11.5 )
c.RotZ = c_RotZInit + ( math.pi / 16 * ( x - i4[0] ) )
c.LocX = c_modulus * math.cos ( c.RotZ - ( math.pi / 2 ) )
c.LocY = c_modulus * math.sin ( c.RotZ - ( math.pi / 2 ) )
autoRender(x)
#Reset camera pose
c.LocX = c_LocXInit
c.LocY = c_LocYInit
c.RotZ = c_RotZInit
if ((vehType == 1) or (vehType == 2) or (vehType == 9) or (vehType == 10) or (vehType == 11)):
for x in i3:
ob.RotX = math.pi / 30
c.RotZ = c_RotZInit + ( math.pi / 2 * ( x - i3[0] ) )
c.LocX = c_modulus * math.cos ( c.RotZ - ( math.pi / 2 ) )
c.LocY = c_modulus * math.sin ( c.RotZ - ( math.pi / 2 ) )
autoRender(x)
#Reset camera pose
c.LocX = c_LocXInit
c.LocY = c_LocYInit
c.RotZ = c_RotZInit
for x in i5:
ob.RotX = math.pi / 180 * 11.5
c.RotZ = c_RotZInit + ( math.pi / 16 * ( x - i5[0] ) )
c.LocX = c_modulus * math.cos ( c.RotZ - ( math.pi / 2 ) )
c.LocY = c_modulus * math.sin ( c.RotZ - ( math.pi / 2 ) )
autoRender(x)
#Reset camera pose
c.LocX = c_LocXInit
c.LocY = c_LocYInit
c.RotZ = c_RotZInit
if (vehType == 2):
for x in i6:
ob.RotX = - ( math.pi / 180 * 17 )
c.RotZ = c_RotZInit + ( math.pi / 2 * ( x - i6[0] ) )
c.LocX = c_modulus * math.cos ( c.RotZ - ( math.pi / 2 ) )
c.LocY = c_modulus * math.sin ( c.RotZ - ( math.pi / 2 ) )
autoRender(x)
#Reset camera pose
c.LocX = c_LocXInit
c.LocY = c_LocYInit
c.RotZ = c_RotZInit
for x in i7:
ob.RotX = math.pi / 180 * 17
c.RotZ = c_RotZInit + ( math.pi / 2 * ( x - i7[0] ) )
c.LocX = c_modulus * math.cos ( c.RotZ - ( math.pi / 2 ) )
c.LocY = c_modulus * math.sin ( c.RotZ - ( math.pi / 2 ) )
autoRender(x)
#Reset camera pose
c.LocX = c_LocXInit
c.LocY = c_LocYInit
c.RotZ = c_RotZInit
for x in i8:
ob.RotX = - ( math.pi / 180 * 22.5 )
c.RotZ = c_RotZInit + ( math.pi / 16 * ( x - i8[0] ) )
c.LocX = c_modulus * math.cos ( c.RotZ - ( math.pi / 2 ) )
c.LocY = c_modulus * math.sin ( c.RotZ - ( math.pi / 2 ) )
autoRender(x)
#Reset camera pose
c.LocX = c_LocXInit
c.LocY = c_LocYInit
c.RotZ = c_RotZInit
for x in i9:
ob.RotX = math.pi / 180 * 22.5
c.RotZ = c_RotZInit + ( math.pi / 16 * ( x - i9[0] ) )
c.LocX = c_modulus * math.cos ( c.RotZ - ( math.pi / 2 ) )
c.LocY = c_modulus * math.sin ( c.RotZ - ( math.pi / 2 ) )
autoRender(x)
#Reset camera pose
c.LocX = c_LocXInit
c.LocY = c_LocYInit
c.RotZ = c_RotZInit
if ((vehType == 3) or (vehType == 4) or (vehType == 5)):
for x in j1:
c.RotZ = c_RotZInit + ( math.pi / 16 * ( x - j1[0] ) )
c.LocX = c_modulus * math.cos ( c.RotZ - ( math.pi / 2 ) )
c.LocY = c_modulus * math.sin ( c.RotZ - ( math.pi / 2 ) )
autoRender(x)
#Reset camera pose
c.LocX = c_LocXInit
c.LocY = c_LocYInit
c.RotZ = c_RotZInit
for x in j2:
ob.RotX = - ( math.pi / 30 )
c.RotZ = c_RotZInit + ( math.pi / 2 * ( x - j2[0] ) )
c.LocX = c_modulus * math.cos ( c.RotZ - ( math.pi / 2 ) )
c.LocY = c_modulus * math.sin ( c.RotZ - ( math.pi / 2 ) )
autoRender(x)
#Reset camera pose
c.LocX = c_LocXInit
c.LocY = c_LocYInit
c.RotZ = c_RotZInit
for x in j3:
ob.RotX = math.pi / 30
c.RotZ = c_RotZInit + ( math.pi / 2 * ( x - j3[0] ) )
c.LocX = c_modulus * math.cos ( c.RotZ - ( math.pi / 2 ) )
c.LocY = c_modulus * math.sin ( c.RotZ - ( math.pi / 2 ) )
autoRender(x)
#Reset camera pose
c.LocX = c_LocXInit
c.LocY = c_LocYInit
c.RotZ = c_RotZInit
for x in j4:
ob.RotX = - ( math.pi / 180 * 11.5 )
c.RotZ = c_RotZInit + ( math.pi / 2 * ( x - j4[0] ) )
c.LocX = c_modulus * math.cos ( c.RotZ - ( math.pi / 2 ) )
c.LocY = c_modulus * math.sin ( c.RotZ - ( math.pi / 2 ) )
autoRender(x)
#Reset camera pose
c.LocX = c_LocXInit
c.LocY = c_LocYInit
c.RotZ = c_RotZInit
for x in j5:
ob.RotX = math.pi / 180 * 11.5
c.RotZ = c_RotZInit + ( math.pi / 2 * ( x - j5[0] ) )
c.LocX = c_modulus * math.cos ( c.RotZ - ( math.pi / 2 ) )
c.LocY = c_modulus * math.sin ( c.RotZ - ( math.pi / 2 ) )
autoRender(x)
#Reset camera pose
c.LocX = c_LocXInit
c.LocY = c_LocYInit
c.RotZ = c_RotZInit
for x in j6:
ob.RotX = - ( math.pi / 180 * 17 )
c.RotZ = c_RotZInit + ( math.pi / 2 * ( x - j6[0] ) )
c.LocX = c_modulus * math.cos ( c.RotZ - ( math.pi / 2 ) )
c.LocY = c_modulus * math.sin ( c.RotZ - ( math.pi / 2 ) )
autoRender(x)
#Reset camera pose
c.LocX = c_LocXInit
c.LocY = c_LocYInit
c.RotZ = c_RotZInit
for x in j7:
ob.RotX = math.pi / 180 * 17
c.RotZ = c_RotZInit + ( math.pi / 2 * ( x - j7[0] ) )
c.LocX = c_modulus * math.cos ( c.RotZ - ( math.pi / 2 ) )
c.LocY = c_modulus * math.sin ( c.RotZ - ( math.pi / 2 ) )
autoRender(x)
#Reset camera pose
c.LocX = c_LocXInit
c.LocY = c_LocYInit
c.RotZ = c_RotZInit
for x in j8:
ob.RotX = - ( math.pi / 180 * 22.5 )
c.RotZ = c_RotZInit + ( math.pi / 2 * ( x - j8[0] ) )
c.LocX = c_modulus * math.cos ( c.RotZ - ( math.pi / 2 ) )
c.LocY = c_modulus * math.sin ( c.RotZ - ( math.pi / 2 ) )
autoRender(x)
#Reset camera pose
c.LocX = c_LocXInit
c.LocY = c_LocYInit
c.RotZ = c_RotZInit
for x in j9:
ob.RotX = math.pi / 180 * 22.5
c.RotZ = c_RotZInit + ( math.pi / 2 * ( x - j9[0] ) )
c.LocX = c_modulus * math.cos ( c.RotZ - ( math.pi / 2 ) )
c.LocY = c_modulus * math.sin ( c.RotZ - ( math.pi / 2 ) )
autoRender(x)
#Reset camera pose
c.LocX = c_LocXInit
c.LocY = c_LocYInit
c.RotZ = c_RotZInit
if (vehType == 12):
for x in k1:
c.RotZ = c_RotZInit + ( math.pi / 16 * ( x - k1[0] ) )
c.LocX = c_modulus * math.cos ( c.RotZ - ( math.pi / 2 ) )
c.LocY = c_modulus * math.sin ( c.RotZ - ( math.pi / 2 ) )
autoRender(x)
#Reset camera pose
c.LocX = c_LocXInit
c.LocY = c_LocYInit
c.RotZ = c_RotZInit
if (vehType == 8):
for x in k2:
c.RotZ = c_RotZInit + ( math.pi / 2 * ( x - k2[0] ) )
c.LocX = c_modulus * math.cos ( c.RotZ - ( math.pi / 2 ) )
c.LocY = c_modulus * math.sin ( c.RotZ - ( math.pi / 2 ) )
autoRender(x)
#Reset camera pose
c.LocX = c_LocXInit
c.LocY = c_LocYInit
c.RotZ = c_RotZInit
# Reset object orientations
ob.RotX = 0
def main_o(ob):
global vehType
global b1, b2, i1, i2, i3, i4, i5, i6, i7, i8, i9, j1, j2, j3, j4, j5, j6, j7, j8, j9, k1, k2
if (vehType == 13):
for x in b1:
ob.RotZ = - ( math.pi / 16 * ( x - b1[0] ) )
autoRender(x)
for x in b2:
ob.RotX = - ( math.pi / 180 * 11.5 )
ob.RotZ = - ( math.pi / 16 * ( x - b2[0] ) )
autoRender(x)
if ((vehType == 1) or (vehType == 2) or (vehType == 6) or (vehType == 7) or (vehType == 9) or (vehType == 10) or (vehType == 11)):
for x in i1:
ob.RotZ = - ( math.pi / 32 * ( x - i1[0] ) )
autoRender(x)
if ((vehType == 1) or (vehType == 2) or (vehType == 7) or (vehType == 9) or (vehType == 10) or (vehType == 11)):
for x in i2:
ob.RotX = - ( math.pi / 30 )
ob.RotZ = - ( math.pi / 2 * ( x - i2[0] ) )
autoRender(x)
for x in i4:
ob.RotX = - ( math.pi / 180 * 11.5 )
ob.RotZ = - ( math.pi / 16 * ( x - i4[0] ) )
autoRender(x)
if ((vehType == 1) or (vehType == 2) or (vehType == 9) or (vehType == 10) or (vehType == 11)):
for x in i3:
ob.RotX = math.pi / 30
ob.RotZ = - ( math.pi / 2 * ( x - i3[0] ) )
autoRender(x)
for x in i5:
ob.RotX = math.pi / 180 * 11.5
ob.RotZ = - ( math.pi / 16 * ( x - i5[0] ) )
autoRender(x)
if (vehType == 2):
for x in i6:
ob.RotX = - ( math.pi / 180 * 17 )
ob.RotZ = - ( math.pi / 2 * ( x - i6[0] ) )
autoRender(x)
for x in i7:
ob.RotX = math.pi / 180 * 17
ob.RotZ = - ( math.pi / 2 * ( x - i7[0] ) )
autoRender(x)
for x in i8:
ob.RotX = - ( math.pi / 180 * 22.5 )
ob.RotZ = - ( math.pi / 16 * ( x - i8[0] ) )
autoRender(x)
for x in i9:
ob.RotX = math.pi / 180 * 22.5
ob.RotZ = - ( math.pi / 16 * ( x - i9[0] ) )
autoRender(x)
if ((vehType == 3) or (vehType == 4) or (vehType == 5)):
for x in j1:
ob.RotZ = - ( math.pi / 16 * ( x - j1[0] ) )
autoRender(x)
for x in j2:
ob.RotX = - ( math.pi / 30 )
ob.RotZ = - ( math.pi / 2 * ( x - j2[0] ) )
autoRender(x)
for x in j3:
ob.RotX = math.pi / 30
ob.RotZ = - ( math.pi / 2 * ( x - j3[0] ) )
autoRender(x)
for x in j4:
ob.RotX = - ( math.pi / 180 * 11.5 )
ob.RotZ = - ( math.pi / 2 * ( x - j4[0] ) )
autoRender(x)
for x in j5:
ob.RotX = math.pi / 180 * 11.5
ob.RotZ = - ( math.pi / 2 * ( x - j5[0] ) )
autoRender(x)
for x in j6:
ob.RotX = - ( math.pi / 180 * 17 )
ob.RotZ = - ( math.pi / 2 * ( x - j6[0] ) )
autoRender(x)
for x in j7:
ob.RotX = math.pi / 180 * 17
ob.RotZ = - ( math.pi / 2 * ( x - j7[0] ) )
autoRender(x)
for x in j8:
ob.RotX = - ( math.pi / 180 * 22.5 )
ob.RotZ = - ( math.pi / 2 * ( x - j8[0] ) )
autoRender(x)
for x in j9:
ob.RotX = math.pi / 180 * 22.5
ob.RotZ = - ( math.pi / 2 * ( x - j9[0] ) )
autoRender(x)
if (vehType == 12):
for x in k1:
ob.RotZ = - ( math.pi / 16 * ( x - k1[0] ) )
autoRender(x)
if (vehType == 8):
for x in k2:
ob.RotZ = - ( math.pi / 2 * ( x - k2[0] ) )
autoRender(x)
# Reset object orientations
ob.RotX = 0
ob.RotZ = 0
Register(draw, event, bevent)
Code: Select all
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=big5" />
<title>Sprite entries Generator</title>
</head>
<body>
<pre>
<script type="text/javascript" language="javascript">
//Parameters
var numsprites = 136; //Total number of sprite entries
var ioffset = 0; //Initial sprite index offset
var xofs = -110; //xofs
var yofs = -72; //yofs
var oname = "ROADBRT"; //Object Name
var stub = true; //Stubbed?
//Do not edit beyond this line
function PadDigits(n, totalDigits) {
n = n.toString();
while ( n.length < totalDigits ) {
n = '0' + n;
}
return n;
}
for(i=0;i<numsprites;i++){
document.write(" <\;sprite id="\;"+(i+ioffset)+""\; xofs="\;"+xofs+""\; yofs="\;"+yofs+""\;>\;<br />");
document.write(" <\;bit name="\;hasdata"\;>1<\;/bit>\;<br />");
document.write(" <\;bit name="\;chunked"\;>\;0<\;/bit>\;<br />");
document.write(" <\;bit name="\;copy"\;>0<\;/bit>\;<br />");
if (stub) {
document.write(" <\;stub>\;255<\;/stub>\;<br />");
} else {
document.write(" <\;pngfile>"+oname+"\\\\"+PadDigits(i,3)+".png<\;/pngfile>\;<br />");
}
document.write(" <\;/sprite>\;<br />");
}
</script>
</pre>
</body>
</html>
Or just find them yourself. Can't be that hard can it?tngjstn wrote:Oh, boy! Tutorials on YouTube? Be sure to send me some links so I can see for myself!
Someone should make a tutorial for that. And put it on youtube.Badger wrote:Or just find them yourself. Can't be that hard can it?tngjstn wrote:Oh, boy! Tutorials on YouTube? Be sure to send me some links so I can see for myself!