if you want to hide your code, theres a very simple way to make it unreadable:
define your functions and panels and so randomly in code, delete all whitespaces (if possible) and new lines
so no one can read your code, because its to heavy to recreate it.
i will do this with my project, and if you know other languages, you can create a tool for that.
its simple and very safe, becaus no program can recreate such a code readable

look at this:
Code:
///////////////////////////////////////////////////////////////
// earthball.c - physics example for lite-C pure mode
///////////////////////////////////////////////////////////////
#include <acknex.h>
#include <default.c>

///////////////////////////////////////////////////////////////
// some global definitions 

PANEL* pSplash = { bmap = "logo_800.jpg"; }

TEXT* tHelp = { 
   pos_x = 10; pos_y = 10;
   font = "Arial#24bi";
   flags = SHADOW;
   string("Press [Space] to kick the ball!"); 
}

ENTITY* eBall;

SOUND* sPong = "tap.wav";

VECTOR vSpeed, vAngularSpeed, vForce, vMove;
		
///////////////////////////////////////////////////////////////
// This is our event function for the ball impact.
function Plop()
{
// Play a ball impact sound.
	ent_playsound(eBall,sPong,100);
}

// Function for kicking the ball in camera direction.
function Kick()
{
// Create a local speed vector
   VECTOR vKick;
// Use a horizontal and vertical speed to give the ball an upwards kick.	
   vKick.x = 150; vKick.y = 0; vKick.z = 75;
// Rotate it in camera direction.   
	vec_rotate(vKick,camera.pan);
// Now apply the speed to the ball, and play a hit sound.
	phent_addvelcentral(eBall,vKick);
	Plop();
}

///////////////////////////////////////////////////////////////
// If a function is named "main", it's automatically started
function main()
{
// Activate 800x600 screen resolution and stencil shadows,
// and set the sound at full volume.
// Video_mode is a 'redefine' variable that has to be set 
// before initializig the video device during the first wait().
   video_mode = 7;
	shadow_stencil = 3;
	d3d_antialias = 4;
	sound_vol = 100;

// Make the splash screen visible.
	set(pSplash,SHOW);

// After a panel is set to VISIBLE, we have to wait 3 frames
// until we can really see it on the screen.
// The first frame paints it into the background buffer,
// two more frames are needed until the background buffer
// is flipped to the front in a triple buffer system.
	wait(3);

// Before we can create level entities, a level must be loaded.
// We'll use the small terrain from the techdemo for a level.
	level_load("small.hmp");

// create a sky cube on layer 0
	ENTITY* sky = ent_createlayer("skycube+6.dds", SKY | CUBE | SHOW, 0);
// lift the sky and the camera to get a better overview	
	sky.z = 30;
	camera.z = 30;

// Let's now create a ball at position (0,0,100).
// The vector function converts 3 floats to a temporary var vector
// for passing positions to engine functions.
	eBall = ent_create("earth.mdl",vector(0,0,100),NULL);
// Set an entity flag to cast a dynamic shadow
	set(eBall,SHADOW);
// Use one of the default materials for giving it a shiny look
	eBall.material = mat_metal;

// Now let's set the ball's physical properties. 
	phent_settype(eBall,PH_RIGID,PH_SPHERE);
	phent_setmass(eBall,1,PH_SPHERE);
	phent_setfriction(eBall,90);
	phent_setelasticity(eBall,75,100);
	phent_setdamping(eBall,30,5);

// We add a small speed to give it a little sidewards kick. 
	phent_addvelcentral(eBall,vector(10,10,0));

// A ball game would be no fun without gravity.
	ph_setgravity(vector(0,0,-500));

// Another event: if the ball hits something, a sound shall be played. 
// We set the event function and the enable_friction mask for triggering 
// the event at physics collisions. Note that the minimum speed - 
// the third parameter of phent_setelasticity - determines the
// sensitivity of this event.
	eBall.event = Plop;
	eBall.emask |= ENABLE_FRICTION;
	
// Remove the splash screen and display the text.
	pan_remove(pSplash);
	set(tHelp,SHOW);

// We want to kick the ball by hitting the [Space] key.
// Assign the 'Kick' function to the on_space event.
	on_space = Kick;

// play the sound as if someone had kicked the ball into play
	Plop();

// During the main loop we're just moving the camera
	while (1) 
	{
// For the camera movement we use the 
// vec_accelerate() function. It accelerates a speed and
// is not dependent on the frame rate - so we don't need to
// limit the fps in this example. This code is equivalent
// to the built-in camera movement, but uses different keys.
		vForce.x = -5*(key_force.x + mouse_force.x);	// pan angle
		vForce.y = 5*(key_force.y + mouse_force.y);	// tilt angle
		vForce.z = 0;	// roll angle
		vec_accelerate(vMove,vAngularSpeed,vForce,0.8);
		vec_add(camera.pan,vMove);		

		vForce.x = 6 * (key_w - key_s);		// forward
		vForce.y = 6 * (key_a - key_d);		// sideward
		vForce.z = 6 * (key_home - key_end);	// upward
		vec_accelerate(vMove,vSpeed,vForce,0.5);
		vec_rotate(vMove,camera.pan);
		vec_add(camera.x,vMove);
		wait(1);
	}

// We don't need to free our created entities, bitmaps and sounds. 
// The engine does this automatically when closing.
}


==>
Code:
#include <acknex.h>
#include <default.c>
PANEL* pSplash={bmap="logo_800.jpg";}TEXT* tHelp={pos_x=10;pos_y=10;font="Arial#24bi";flags=SHADOW;string("Press [Space] to kick the ball!");}ENTITY* eBall;SOUND* sPong = "tap.wav";VECTOR vSpeed,vAngularSpeed,vForce,vMove;function Plop(){ent_playsound(eBall,sPong,100);}function Kick(){VECTOR vKick;vKick.x=150;vKick.y=0;vKick.z=75;vec_rotate(vKick,camera.pan);phent_addvelcentral(eBall,vKick);Plop();}function main(){video_mode=7;shadow_stencil=3;d3d_antialias=4;sound_vol=100;set(pSplash,SHOW);wait(3);level_load("small.hmp");ENTITY* sky=ent_createlayer("skycube+6.dds",SKY|CUBE|SHOW,0);sky.z = 30;camera.z=30;eBall=ent_create("earth.mdl",vector(0,0,100),NULL);set(eBall,SHADOW);eBall.material = mat_metal;phent_settype(eBall,PH_RIGID,PH_SPHERE);phent_setmass(eBall,1,PH_SPHERE);phent_setfriction(eBall,90);phent_setelasticity(eBall,75,100);phent_setdamping(eBall,30,5);phent_addvelcentral(eBall,vector(10,10,0));ph_setgravity(vector(0,0,-500));eBall.event = Plop;eBall.emask|=ENABLE_FRICTION;pan_remove(pSplash);set(tHelp,SHOW);on_space = Kick;Plop();while (1){vForce.x=-5*(key_force.x+mouse_force.x);vForce.y=5*(key_force.y+mouse_force.y);vForce.z=0;vec_accelerate(vMove,vAngularSpeed,vForce,0.8);vec_add(camera.pan,vMove);vForce.x=6*(key_w-key_s);vForce.y = 6*(key_a-key_d);vForce.z=6*(key_home- key_end);vec_accelerate(vMove,vSpeed,vForce,0.5);vec_rotate(vMove,camera.pan);vec_add(camera.x,vMove);wait(1);}}



this code works well, but can you read it?

Last edited by Richi007; 06/07/10 17:58.

Visit my site: www.masterq32.de