CopperCube 6.7 Launcher
A downloadable asset pack
To use the Launcher, Download the latest version of Coppercube 6.7 and go to publishing settings for windows, and in the last option for "Custom Binary" file, select the Launcher.exe and save the settings.
Make sure to save your project otherwise you will only be able to see black screen.
Hi there, CopperCube 6.7 has been released and there is a new option now to use custom binaries. Basically it allows you to use launcher like this one directly in your CopperCube editor. However this feature is exclusive to Studio Edition users of CopperCube.
This is a launcher application for your CopperCube games with the bugfixes and new API commands to use. You can use the commands and all the bugs that have been fixed by me with this launcher, without waiting for the next release of Coppercube.
This launcher will be going to get more updates in the future with new features and bug-free releases, along with some other tools to ease out CopperCube Development.
NOTE:- Right now there is just the launcher file available to download, A demo file will be added soon with samples for the API and other related stuff for a better understanding of how to use the functions and commands. A dedicated video tutorial is also planned.
Below is the list of API commands and bug fixes in this updated launcher.
ccbActivateJoystick()
Activates the controller support for your game. Also returns the joystick information like numbers of button, axes, joystick id, name etc.
ccbRegisterJoyButtonEvent(funcstr)
Returns the bitmap mask of the currently pressed button.
ccbRegisterJoyPovEvent(funcstr)
Returns the pov value (generally angles)
ccbRegisterJoyAxisVerticalEvent(funcstr)
Returns axis value vertically -1 for down +1 for up.
ccbRegisterJoyAxisHorizontalEvent(funcstr)
Returns axis value horizontally -1 for left +1 for right.
ccbRegisterJoyAxis2VerticalEvent(funcstr)
Returns second axis value vertically -1 for down +1 for up.
ccbRegisterJoyAxis2HorizontalEvent(funcstr)
Returns seconf axis value horizontally -1 for left +1 for right.
#joybuttonpressed.button
Special coppercube variable that returns the button state of a joystick button. "true" if button is pressed down, "false" if button is not down.
ccbRenderToTexture(node, material index, camera, X resolution, Y resolution, node to be excluded);
An update to the RTT command, you can now provide node as an extra parameter that you don't want to get rendered in the texture. Useful in cases of 2D overlays.
ccbGetParentSceneNode(node)
Returns the parent node of a scenenode.
ccbGetSceneNodeGravity(node)
Coppercube nodes have individual gravity, per object gravity. It returns the current gravity of a scenenode.(Now has been removed, as the gravity has been added as an atrribute)
ccbSetSceneNodeGravity(node,gravity)
Set gravity of a scenenode. As Coppercube nodes have per object gravity.(Now has been removed, as the gravity has been added as an atrribute)
ccbLoadModel("path/filename")
Loads a static 3D model dynamically during runtime. Doesn't support all the model formats at the time. Right now it supports (.obj, .csm, .bsp, .stl, .dmf, .lmts, .my3d, .oct, .ogre, .irrmesh, and .md2) only.
ccbPackTextures(texture1,texture2,"newTextureName")
Pack two textures into 1, in a horizontal increase, can be used multiple times to pack more than 2 ;textures together.
ccbRemoveTexture(texture)
Removes the provided texture from the memory, won't remove it from the objects that use this texture and can be useful in reloading external textures after they have been changed.
ccbSetScreenResolution(ResX, ResY)
Update the actual screen resolution in runtime. Can only switch to the current available resolution for your screen.
ccbSetGameResolution(ResX,ResY)
Update the internal resolution of the game. This is different from changing the actual display resolution.
ccbSetCollision(node,true/false)
Update the collision of scene node during runtime. You can turn the collision On and Off.
ccbMakeSceneNodeJump(node, jumpForce)
Makes any scene node with Collide when moved behavior attached to jump.
ccbSaveSoundFile("filename",index)
Allows you to save sound files to your computer in .wav format.
ccbStartRecordingAudio()
Starts recording audio from the mic.
ccbStopRecordingAudio()
Stop recording the previsoulsy started audio recording.
ccbSaveRecordedAudioToDisk("Filename.wav")
Saves the recorded audio to disk in .wav format.
ccbSaveRecordedAudioToMemory("Filename")
Saves the recorded audio to memory and can be later accessed with ccbPlaySound(). It gets cleared and won't be saved or accessible after the game is closed.
ccbRemoveSound("FileName")
Removes the sound source, useful when removing recorded audio from memory.
ccbAddSound("SoundFile", "Alias")
Add the sound to the game with the new alias name assigned to it, you can use the alias name to play the sound, can be used to have a single sound file played differently with different sound effects.
ccbPlaySound("SoundFile","Repeat(bool)","SoundType(2D/3D)","SoundProperty","PropertyParameters")
Plays a sound in 2D or 3D also allows to update of sound properties and sound effects. There are multiple properties and every property has its own property parameter.
Below is the list of Sound Properties that you can use with the above command:-
PlaybackSpeed
This property contains a float value. Changing this will result in a change in the playback speed of the sound, It also changes the pitch as well.
Pause
It is a boolean property that decides if a sound needs to be paused or not.
Pan
it is an integer property type that allows panning the sound to the left, right, or center. It can only have -1, 0, and 1 value.
Volume
It is a float value to update the volume of a sound.
Looping
It is a boolean property type that wil decide if the sound should be looping or not.
EnableSoundEffect
This is a soundFX property type it enables sound effects. Sound effects can have their own optional properties.
DisableSoundEffect
This is a soundFX property type it disables sound effects. Sound effects can have their own optional properties
Properties for 3D sounds only:-
Radius
A float type property. Changing it will affect the radius of 3D sounds.
Position
A vector3d property type. Sets the Position of a 3D sound in the scene.
Velocity
A vector3d property type. Sets the Velocity of the 3D sound, Useful with Doppler Effects API.
SoundFX types and their parameters:-
Below are the available soundFX type and their optional parameters with their default value. You can specify these parameters to get results with more sophisticated effects.
- Chorus
WetDryMix = 50, Depth = 10, Feedback = 25, Frequency = 1.1, sinusWaveForm = true, Delay = 16, Phase = 90
- Compressor
Gain = 0, Attack = 10, Release = 200, Threshold = -20, Ratio = 3, Predelay = 4
- Distortion
Gain = -18, Edge = 15, PostEQCenterFrequency = 2400, PostEQBandwidth = 2400, PreLowpassCutoff = 8000
- Echo
WetDryMix = 50, Feedback = 50, LeftDelay = 500, RightDelay = 500, PanDelay = 0
- Flanger
WetDryMix = 50, Depth = 100, Feedback = -50, Frequency = 0.25, triangleWaveForm = true, Delay = 2, Phase = 0
- Gargle
rateHz = 20, sinusWaveForm = true
- I3DL2
Room = -1000, RoomHF = -100, RoomRolloffFactor = 0, DecayTime = 1.49, DecayHFRatio = 0.83, Reflections = -2602, ReflectionsDelay = 0.007, Reverb = 200, ReverbDelay = 0.011, Diffusion = 100.0, Density = 100.0, HFReference = 5000.0
- ParametricEqualizer
Center = 8000, Bandwidth = 12, Gain = 0
- Reverb
InGain = 0, ReverbMix = 0, ReverbTime = 1000, HighFreqRTRatio = 0.001
Sample Code for usage of Sound API:-
ccbAddSound("music.wav", "Sound2D"); ccbAddSound("music.wav", "Sound3D"); ccbAddSound("music.wav", "SoundWithEffects"); // play a 2D sound ccbPlaySound("Sound2D",false,"2D"); // Play a 3D sound with a radius of 100, by default 3D sound plays at radius of 1. ccbPlaySound("Sound3D",false,"3D", "Radius", 100); // Play a 2D sound with Reverb effect with default values. ccbPlaySound("SoundWithEffects", false,"2D", "EnableSoundEffect","Reverb")
New vector3d methods :-
- dot - Returns the dot product of two vectors.
vector1.dot(vector2)
- cross - Returns the cross product of two vectors.
vector1.cross(vector2)
- clone - Creates a new vector3d object that is an exact copy of the original vector3d object but with a different instance
vector.clone()
- angle - Returns the angle between two vectors from vector1 to vector2.
vector1.angle.vector2
- max - Returns a new vector that is made from the largest components of two vectors.
vector1.max(vector2)
- min - Returns a new vector that is made from the smallest components of two vectors.
vector1.min(vector2)
- distance - Returns the distance between vector1 and vector2.
vector1.distance(vector2)
- lerp - Linearly interpolates between two vectors.
vector1.lerp(vector2, t)
- slerp - Spherically interpolates between two vectors.
vector1.slerp(vector2, t)
- moveTowards - Calculate a position between the points specified by a current vector(vector1) and target vector(vector2), moving no farther than the distance specified by maxDistanceDelta.
vector1.moveTowards(vector2,maxDistanceDelta)
- multiply - Multiply a vector by a scaler value.
vector1.multiply(scaler)
- divide - Divide a vector by a scaler value.
vector1.divide(scaler)
- scale - Multiplies two vectors component-wise.
vector1.scale(vector2)
- reflect - Reflects a vector(vector1) off the plane defined by a normal(vector2).
vector1.reflect(vector2)
- magnitude - Returns the length of the vector, same as getLength()
vector.magnitude()
- sqrMagnitude - Returns the squared length of the vector.
vector.sqrMagnitude()
- clampMagnitude - Returns a copy of the vector with its magnitude clamped to maxLength.
vector.clampMagnitude(maxLength)
Shorthand functions for vectors:-
- back - Shorthand for writing vector3d(0, 0, -1).
vector3d.back()
- down - Shorthand for writing vector3d(0, -1, 0).
vector3d.down()
- forward - Shorthand for writing vector3d(0, 0, 1).
vector3d.forward()
- left - Shorthand for writing vector3d(-1, 0, 0).
vector3d.left()
- right - Shorthand for writing vector3d(1, 0, 0).
vector3d.right()
- up - Shorthand for writing vector3d(0, 1, 0).
vector3d.up()
- one - Shorthand for writing vector3d(1, 1, 1).
vector3d.one()
- zero - Shorthand for writing vector3d(0, 0, 0).
vector3d.zero()
- negativeInfinity - Shorthand for writing vector3d(-Infinity, -Infinity, -Infinity).
vector3d.negativeInfinity()
- positiveInfinity - Shorthand for writing vector3d(Infinity, Infinity, Infinity).
vector3d.positiveInfinity()
Attributes type for Scenenodes:-
These attributes can be altered using ccbSetSceneNodeProperty() and GetSceneNodeProperty() commands.
- Id - This attribute will return the id of a scene node.
- Gravity - This attribute will return the gravity of a scene node.
- TextAlpha - This will return the alpha value for 2D overlay text.
Bug Fixes and other updates:-
Below is the list of bug fixes and other general updates:-
- -> Updated system() command to return the cmd output as a javascript string to the script engine. Works for Windows only.
- -> Fixed the bug for the ccbChangePositionWithoutCollision() command that was not resetting the collision animator when the physics simulation was turned on.
- -> Fixed a bug with the Proximity behavior that was not treating the node as the current node for the action attached to it.
- -> Fixed a bug with the Disable Clipping option of FPS camera, previously it was disabling clipping for top-level children of FPS camera, now it handles
children of children as well. - - > Update to almost all of the javascript command that uses a node name. instead of using ccbGetSceneNodeFromName() you can now directly feed the name of the node to any command that requires a node as an input parameter.
- -> FIxed font rendering for 2D overlays has been improved. Artifacts around regular fonts will not be there anymore for most of the fonts. Some fonts might still have artifacts, and italic fonts still don't work properly.
Status | In development |
Category | Assets |
Rating | Rated 5.0 out of 5 stars (1 total ratings) |
Author | Glitched Velocity |
Download
Click download now to get access to the following files:
Development log
- Example AddedOct 23, 2023
- Update 0.1Oct 05, 2023