Fehler bei verschiedennen Benutzern

Posted By: CocaCola

Fehler bei verschiedennen Benutzern - 10/08/14 17:15

Hallo! 2 Tester haben mein Spiel unter Win8 64bit getestet, doch es will nicht starten es kommt immer die Fehlermeldung "Spiel funktioniert nicht mehr"
Was kann das sein?
Posted By: Superku

Re: Fehler beim Starten Win8 64bit - 10/08/14 17:40

Hast du/ haben die versucht, ein anderes Gamestudio-Projekt auf diesen Rechnern zu starten?
Posted By: HellThunder

Re: Fehler beim Starten Win8 64bit - 10/08/14 19:45

Ich bekomm den Fehler immer wenn etwas mit der Speicherallokation nicht stimmt. Bzw. stell mal die variable 'warn_level' auf 6 und schau ob er dir irgendwelche Fehler ausspuckt.
Posted By: CocaCola

Re: Fehler beim Starten Win8 64bit - 10/09/14 07:07

Ich habe warn_level = 6; am anfang meiner main() getan und es kommt kein Fehler.
Den 2 Leuten habe ich mitlerweile auch ein leeres Projekt zukommen lassen aber die haben es noch nicht getestet
Posted By: CocaCola

Re: Fehler beim Starten Win8 64bit - 10/09/14 14:30

Also die win8 User haben ein leeres Level von mir bekommen und erfolgreich getestet>> es läuft aber mein Spiel nicht, also nur unter Win 8 nicht.
Ich benutze auch keine Plugins, es Taucht aber das weiße Acknex Ladefenster auf.
Wie kann ich den Fehler finden? Das Spiel hat auch nicht sonderbar viel code ich würde ihn auch offen legen und es ist alles sehr einfach geschrieben weil ich noch Anfänger bin
Posted By: WretchedSid

Re: Fehler beim Starten Win8 64bit - 10/09/14 14:37

Du könntest damit anfangen den Fehlercode zu nennen damit man überhaupt mal weiß was genau kaputt geht. Mein Geld ist darauf das du das mit dem Speicher vermurkst und der memory allocator in Windows 8 anders funktioniert als der in 7.
Posted By: CocaCola

Re: Fehler beim Starten Win8 64bit - 10/09/14 14:48

ist man denn in lite-c vor Speicher Zugriffen nicht geschützt? kann das evtl. an dem mystymood liegen, den ich aus der Aum 72 für meinen terrainshader nutze?
Edit: mein Code hat 1096 Zeilen wie kann ich den denn Stück weise testen ohne einen Richtigen Tester
Posted By: WretchedSid

Re: Fehler beim Starten Win8 64bit - 10/09/14 15:46

Bevor du zu irgendwelchen Schlussfolgerungen kommst, poste den Fehlercode!
Posted By: CocaCola

Re: Fehler beim Starten Win8 64bit - 10/09/14 16:22

Es sind 6 Dateien. Das ist ein nettes Angebo und heir kommt er schon:
Code:
///////////////////////////////
#include <acknex.h>
#include <default.c>
#include "move.c"
#include "enemy.c"
#include "menue.c"
#include "opa.c"
#include "schmied.c"
#include "mystymood.c"
var ninjastern;
SOUND* ende_snd = "ende.wav";
///////////////////////////////
BMAP* maus_bmap = "maus.pcx";
ENTITY* gotonow;
var move_var;
PANEL* gamewon_pan = //mein erstes panel
{
	pos_x = 50;
	pos_y = 110;
	layer = 10;
	button (0, 0, "won.jpg", "won.jpg", "won.jpg", null, null, null);
	//flags = OVERLAY | SHOW;
}
PANEL* start_pan = //mein erstes panel
{
  pos_x = 0;
  pos_y = 0;
  layer = 1;
  button (0, 0, "start.jpg", "start.jpg", "start.jpg", gogogo, null, null);
  flags = OVERLAY | SHOW;
}
function gogogo(){
	level_load("ninjacat.wmb");
	reset(start_pan,SHOW);
}
function adjust_target()

{while(! player)
wait(1);
	gotonow=my;
	my.z += 10; // play with the target entity here    
	set(my,PASSABLE); 
	vec_set(to,my.x);  
	vec_sub(to, player.x);
	vec_set(to2,my.x);
	angriff=0;
	move_var=1;
	while(my.skill1<90) 
   {
      my.skill1 += 10*time_step;
      if (my.skill1 > 100) my.skill1 -= 100; 
      ent_animate(me,"start",my.skill1,ANM_CYCLE);
      wait(1);
   } 
	ent_remove(my);
	//vec_add(to2,vector(40,40,40));

}



function create_target()

{
	VECTOR pos1, pos2;
	pos1.x = mouse_pos.x;
	pos1.y = mouse_pos.y;
	pos1.z = 0;
	vec_for_screen (pos1, camera);
	pos2.x = mouse_pos.x;
	pos2.y = mouse_pos.y;
	pos2.z = 20000; // use a big value here
	vec_for_screen (pos2, camera);
	c_trace (pos1.x, pos2.x, IGNORE_PASSABLE); // now "target" holds the coordinates of the hit point
	ent_create ("ziel.mdl", target, adjust_target); // create the entity at the "target" position
  // fire_bullets();
}
function mouse_startup(){  
	on_mouse_left = create_target; // create a target entity when the player presses the left mouse button
}
function sun_move()
{sun_angle.pan=180;
sun_angle.tilt=45;
  while(1)
  {
    sun_angle.pan += 0.01 * time_frame; 
    sun_angle.pan %= 360; 
    sun_angle.tilt = fsin(sun_angle.pan, 45) + 45;
    //sun_light = sun_angle.tilt;
    wait(1);
  }
}
function ende (){
	while(mission!=47){
	
		
		wait(1);
	}´
	snd_play  (ende_snd,100,0);
	set(gamewon_pan,SHOW);
}	

function main()
{warn_level = 6;
	camera.arc=100;
	//vec_set(screen_size,vector(800,400,0));
	vec_set(screen_color,vector(250,1,1)); // dark blue
//	vec_set(sky_color,vector(50,1,1)); // dark blue
	video_window(NULL,NULL,0,"My New Game");
	d3d_antialias = 1;
	shadow_stencil = 3;
	video_mode=8;
	level_load("start.wmb");
	camera.arc=100;
	mouse_range = 20100;
	mouse_map = maus_bmap;
	mouse_mode = 4;
	ninjastern=0;
	gold=0;
	ende ();
	bullets_startup();
	mouse_startup();
	//bullets_startup();
	sun_move();	
}

Posted By: CocaCola

Re: Fehler beim Starten Win8 64bit - 10/09/14 16:23

die move.c und bei der playercation hab ich viel quatsch gemacht, ich weiß, ist voll unsauber
Code:
var raumschiffspeedz;
var raumschiffspeedy;
var raumschiffspeedx;
var key_space_off = 0;
var playerhealth=100;
var move_var;
var drehung;
var distance;
var angriff;
var alarm;
var gesehen;
var killart;
VECTOR to;
VECTOR to_r;
VECTOR to2;
ENTITY* enemy1;
ENTITY* gotonow;
ENTITY* weapon1;
ENTITY* bullets;
SOUND* wurf_snd = "wurf.wav";
SOUND* schlag_snd = "schlag.wav";
SOUND* schwert_snd = "schwert.wav";
var ninjastern;
var gold;
#define speed_x skill50
#define speed_y skill51
#define speed_z skill52
#define foot_height skill53
#define soil_contact skill54
#define soil_height skill55
#define target_pan skill58
#define slope_tilt skill59
FONT* arial_font = "Arial#25b"; 
/////////////
PANEL* gameover_pan = //mein erstes panel
{
	pos_x = 50;
	pos_y = 110;
	layer = 10;
	button (0, 0, "gameover.jpg", "gameover.jpg", "gameover.jpg", gameover, null, null);
	//flags = OVERLAY | SHOW;
}

/////////////////////////////////////////////////////////////////////
PANEL* panhealth =
{
	digits(50, 25, " %0.f", *, 1, playerhealth);
	//	font = arial_font;
	flags = SHOW;
}
PANEL* pangold =
{
	digits(230, 25, " %0.f", *, 1, gold);
	//	font = arial_font;
	flags = SHOW;
}
PANEL* panninjastern =
{
	digits(140, 25, " %0.f", *, 1, ninjastern);
	//	font = arial_font;
	flags = SHOW;
	
}
function attach_weapon1()

{

	weapon1 = my; // I'm the gun

	set(my, PASSABLE );
	set(my, INVISIBLE );
	while (1)
	{while (!player){
			wait(1);
		}
		vec_set (my.x, vector (0, 0, 10)); // set the proper gun offset in relation to the player
		vec_rotate (my.x, player.pan);
		vec_add (my.x, player.x);
		my.pan = player.pan;
		wait (1);
	}
}
function gameover(){
	reset(gameover_pan,SHOW);
	playerhealth=100;
	level_load("ninjacat.wmb");
	
}
function remove_bullets() // this function runs when the bullet collides with something
{snd_play  (schlag_snd,100,0);
	wait (1); // wait a frame to be sure (don't trigger engine warnings)
	ent_remove (my); // and then remove the bullet
}
function move_bullets(){	
	set(my,SHADOW);
	//	snd_play  (pistole_snd,100,0);
	bullets=my;
	VECTOR bullet_speed[3]; // stores the speed of the bullet
	// the bullet is sensitive to impacts with entities and level blocks
	set(my,PASSABLE);
	my.emask = ENABLE_IMPACT | ENABLE_ENTITY | ENABLE_BLOCK; 
	my.event = remove_bullets; // when it collides with something, its event function (remove_bullets) will run
	my.pan = weapon1.pan;
	bullet_speed.x = 25 * time_step; // adjust the speed of the bullet here
	bullet_speed.y = 0; // the bullet doesn't move sideways
	bullet_speed.z = 0; // or up / down on the z axis
	c_move (my, bullet_speed, nullvector, IGNORE_PASSABLE | IGNORE_YOU);
	wait(1);
	c_move (my, bullet_speed, nullvector, IGNORE_PASSABLE | IGNORE_YOU);
	reset(my,PASSABLE); 
	while (my) // this loop will run for as long as the bullet exists (it isn't "NULL")
	{
		// move the bullet ignoring its creator (weapon1)
		my.skill1 += 10*time_step;
		if (my.skill1 > 100) my.skill1 -= 100; 
		ent_animate(me,"dreh",my.skill1,ANM_CYCLE);
		c_move (my, bullet_speed, nullvector, IGNORE_PASSABLE | IGNORE_YOU); 
		wait (1);
	}
}
function fire_bullets() {
	VECTOR bullet_pos[3];
	vec_for_vertex(bullet_pos, weapon1, 1);
	ent_create("stern.mdl", bullet_pos, move_bullets);
	snd_play  (wurf_snd,100,0);
	wait(1); 
}
function adjust_target2(){
	gotonow=my;
	my.z += 10; // play with the target entity here    
	set(my,PASSABLE);
	set(my,INVISIBLE); 
	vec_set(to_r,my.x);  
	vec_sub(to_r, player.x);
	//vec_set(to2,my.x);
	angriff=0;
	vec_to_angle(player.pan,to_r);
	wait(1);
	if(ninjastern!=0){
		fire_bullets();
		ninjastern-=1;
	}
	ent_remove(my);
}



function create_target2()

{
	move_var=2;
	VECTOR pos1, pos2;
	pos1.x = mouse_pos.x;
	pos1.y = mouse_pos.y;
	pos1.z = 0;
	vec_for_screen (pos1, camera);
	pos2.x = mouse_pos.x;
	pos2.y = mouse_pos.y;
	pos2.z = 20000; // use a big value here
	vec_for_screen (pos2, camera);
	c_trace (pos1.x, pos2.x, IGNORE_PASSABLE); // now "target" holds the coordinates of the hit point
	ent_create ("ziel.mdl", target, adjust_target2); // create the entity at the "target" position
}
function bullets_startup(){
	on_mouse_right = create_target2;
}
function pget_shot(){
	my.ambient = 0;
	gesehen=0;
	my.lightrange = 0;
	if(event_type == EVENT_CLICK)
	{
	}
	if(event_type == EVENT_TOUCH)
	{
	}
	if (event_type == EVENT_SCAN)
	{//wait(1);
		gesehen=1;
		alarm=1;
	}
	else{
		alarm=0;
		//gesehen=0;
	}
	
}
action players_code() {
	move_var=1;
	ent_create ("stern.mdl", vector(0,0,0), attach_weapon1);
	c_scan(my.x, my.pan, vector(180, 180, 0), IGNORE_ME| SCAN_LIMIT);
	c_setminmax(my);
	camera.clip_near = 1;  
	VECTOR temp;
	VECTOR boden;
	my.emask = ENABLE_IMPACT | ENABLE_ENTITY | ENABLE_RELEASE | ENABLE_SCAN; // the target is sensitive to impact with player's bullets
	my.emask |= ENABLE_TOUCH;
	my.emask |= ENABLE_CLICK;
	my.event = pget_shot;
	var speed_down = 0; //(Fallgeschwindigkeit)
	var dist_down = 0; //(Höhenunterschied Spieler - Terrain)
	var dist_ahead = 0; //(Entfernungsunterschied vorwärts - rückwärts)
	var distanceenemy;
	player = my; // I'm the player
	camera.x = my.x - 00 * cos(my.pan);
	camera.y = my.y - 00 * sin(my.pan);
	camera.pan = my.pan; // the camera and the player have the same pan angle
	camera.z = my.z + 200; // place the camera above the player, play with this value
	camera.tilt = -1800;
	/////////////
	while (playerhealth>0){

		if(move_var==1){
			camera.arc=100;
			vec_to_angle(my.pan,to);
			my.tilt=0;
			distance = vec_dist(my.x,to2.x); 
			//distanceenemy=vec_dist(my.x,distanceenemy); 
			c_setminmax(my);
			vec_fill(my.min_x,-10);
			vec_fill(my.max_x,10);
			my.min_z=-22;
			my.max_z = 15;
			vec_for_min(temp,my);	
			my.foot_height = temp.z*my.scale_z;
			if(distance>=26){
				my.skill1 += 5*time_step;
				if (my.skill1 > 100) my.skill1 -= 100; 
				ent_animate(me,"move",my.skill1,ANM_CYCLE);
				my.speed_x += (6-my.speed_x)/(2+(key_w^key_s)*5)*time_step;
				c_move(my,vector(my.speed_x*time_step,0,0),nullvector,IGNORE_PASSABLE | GLIDE);
			}
			else{
				if (   gesehen==1 && angriff==1 ){
					my.skill1 = 0;
					killart=1;
					c_scan(my.x, my.pan, vector(90, 180, 30), IGNORE_ME| SCAN_LIMIT);
					snd_play  (schwert_snd,100,0);
					while(my.skill1<100){
						my.skill1 += 10*time_step;
						ent_animate(me,"schwert",my.skill1,ANM_CYCLE);
						wait(1);
					}
					angriff=0;
					killart=0;	
					c_scan(my.x, my.pan, vector(180, 180, 0), IGNORE_ME| SCAN_LIMIT);
				}
				else{
					if(angriff==1){
						killart=2;
						c_scan(my.x, my.pan, vector(90, 180, 30), IGNORE_ME| SCAN_LIMIT);
						my.skill1 = 0;
						while(my.skill1<100){
							
							my.skill1 += 10*time_step;
							//if (my.skill1 > 100) my.skill1 -= 100; 
							ent_animate(me,"kopf",my.skill1,ANM_CYCLE);
							wait(1);
						}
						killart=0;
						angriff=0;
						c_scan(my.x, my.pan, vector(180, 180, 0), IGNORE_ME| SCAN_LIMIT);
				}}
				if (angriff==2){
					c_scan(my.x, my.pan, vector(180, 180, 30), IGNORE_ME| SCAN_LIMIT);
					angriff=0;
				}
			}
			my.speed_x += (6-my.speed_x)/(2+(key_w^key_s)*5)*time_step;
			if(HIT_TARGET && abs(normal.z) < 0.1)	{
				if(target.x < my.x) my.speed_x = maxv(my.speed_x,0);
				else my.speed_x = minv(my.speed_x,0);
			}
			// gravity
			if(my.speed_z <= 0)
			{
				vec_set(temp,vector(my.x,my.y,my.z-1500+my.foot_height));
				c_trace(my.x,temp,IGNORE_PASSABLE | IGNORE_ME | USE_BOX);
				if(!trace_hit) vec_set(target,temp);
				my.soil_height = target.z-my.foot_height;
			}
			if(my.z > my.soil_height+(5+20*my.soil_contact)*time_step || my.speed_z > 0) // additional height buffer when ground contact to avoid player floating on slopes
			{
				my.soil_contact = 0;
				my.speed_z = maxv(my.speed_z-9*time_step,-90);
			}
			else
			{
				//c_move(me,nullvector,vector(0,0,my.soil_height-my.z),IGNORE_PASSABLE);
				my.soil_contact = 1;
				my.speed_z = 0;
				
				//jump code
				if(key_e)
				{
					if(key_space_off)
					{
						key_space_off = 0;
						my.speed_z = 80;
						my.speed_x +=200;
						
						//my.anim_jump = 1;
						//my.anim = 0;
					}
				}
				else key_space_off = 1;
				//my.speed_x -=100;
			}
			if (c_trace(my.x,vector(my.x,my.y,my.z-5000),IGNORE_ME | IGNORE_PASSABLE | USE_BOX) > 0)
			dist_down = my.z + boden.z - target.z; 
			else 
			dist_down = 0;
			if (dist_down > 0) 
			dist_down = clamp(dist_down,0,accelerate(speed_down,10,0.1));
			else 
			speed_down = 0; 
			//var dist_ahead = 5*(key_w-key_s)*time_step;
			c_move(me,vector(0,0,0),vector(0,0,-dist_down),IGNORE_PASSABLE | GLIDE);
			
			if(my.speed_z){
			} //c_move(me,nullvector,vector(0,0,maxv(my.speed_z*time_step,my.soil_height-my.z)),IGNORE_PASSABLE | GLIDE); // the maxv command makes sure you never move below the desired height
			if(HIT_TARGET && normal.z < -0.5) my.speed_z = minv(my.speed_z,0); // hit the ceiling?
			////////camera
			camera.x = my.x - 200 ;
			camera.y = my.y  ;
			//camera.pan = my.pan; // the camera and the player have the same pan angle
			camera.z = my.z + 150; // place the camera above the player, play with this value
			camera.tilt = -45;
			if(playerhealth<1){
			}
			//set(gameover_pan,SHOW);
		}
		
		wait (1);
}
wait(1);
set(gameover_pan,SHOW);
}

Posted By: CocaCola

Re: Fehler beim Starten Win8 64bit - 10/09/14 16:24

datei Nr3 enemy.c
Code:
var alarm;
var angriff;
var mission;
var kampf_distance;
var playerhealth=100;
#define befinden skill11
#define geld skill10
#define health skill9
#define passantmode skill8
#define xy skill7
ENTITY* enemy1;
ENTITY* fabrik_ent;
ENTITY* laden_ent;
ENTITY* bullets;
STRING* ss01_str = "Welcome to Planet Hope!
Dedanus System";
FONT* quest_font = "CourierNew#25";
PANEL* won_pan = //mein erstes panel
{
	pos_x = 50;
	pos_y = 110;
	layer = 10;
	button (0, 0, "won.jpg", "won.jpg", "won.jpg", gameover, null, null);
	//flags = OVERLAY | SHOW;
}
TEXT* planet_txt =
{font = quest_font;
	pos_x = 400;
	pos_y = 50;
	layer = 3;
	red=255;
	blue=0;
	green=174;	
}
function won()
{
	reset(won_pan,SHOW);
	level_load("ninjacat.wmb");
}
function got_shot(){
	my.ambient = 0;
	my.lightrange = 0;
	if (event_type == EVENT_CLICK) {
		angriff=1;
		set(gotonow,INVISIBLE);
		vec_set(to2,my.x);
	}
	if (event_type == EVENT_TOUCH) 
	{
		my.ambient = 100; // dann lass' ihn heller aussehen
		my.lightrange = 30; 
	}
	if (event_type == EVENT_IMPACT){
		if (you == bullets){
			my.health-=25;
	}}
	if (event_type == EVENT_SCAN){
		if (killart==1){
			wait(-0.5);
			my.health-=25;

		}
		if (killart==2){
			wait(-0.5);
			my.health-=100;
		}
		
		//ent_remove(my);
	}
}
function scan_view(){
	//proc_kill(4); // follow the entity smoothly
	set(my, PASSABLE | TRANSLUCENT);
	my.alpha = 30;
	my.ambient = 100;
	my.z = you.z -5; // move the triangle at the floor level
	my.scale_x=my.scale_x+6.2;
	while (you)
	{
		my.x = you.x;
		my.y = you.y;
		my.z = you.z ; // move the triangle at the floor level
		my.pan = you.pan;
		my.tilt = you.tilt;
		my.scale_y=my.scale_x;
		wait (1);
	}
	ent_remove(my);
}
action enemy(){
	enemy1=my;
	set(my,INVISIBLE);
	set(my,PASSABLE);
	while(mission!=1)
	{wait(1);
	}
	reset(my,INVISIBLE);
	reset(my,PASSABLE);
	my.health=100;
	my.emask = ENABLE_IMPACT | ENABLE_ENTITY | ENABLE_RELEASE | ENABLE_SCAN; // the target is sensitive to impact with player's bullets
	my.emask |= ENABLE_TOUCH;
	my.emask |= ENABLE_CLICK;	
	my.event = got_shot;
	ent_create("dreieck.mdl", nullvector, scan_view);
	while(my.health!=0){
		c_scan(my.x, my.pan, vector(90, 90, 400), IGNORE_ME| SCAN_LIMIT);
		wait(1);
	}
	my.skill1=0;
	while(my.skill1<90){
		
		my.skill1 += 10*time_step;
		ent_animate(me,"tod",my.skill1,ANM_CYCLE);
		wait(1);
	}
	ent_animate(me,"tod",100,ANM_SKIP);
	gold+=10;
	mission+=1;
	wait(-1);
	ent_remove(my);
}
action gegner2(){
	set(my,INVISIBLE);
	set(my,PASSABLE);
	while(mission!=3)
	{wait(1);
	}
	reset(my,INVISIBLE);
	reset(my,PASSABLE);
	VECTOR toe2;
	my.health=100;
	my.emask = ENABLE_IMPACT | ENABLE_ENTITY | ENABLE_RELEASE | ENABLE_SCAN; // the target is sensitive to impact with player's bullets
	my.emask |= ENABLE_TOUCH;
	my.emask |= ENABLE_CLICK;
	my.event = got_shot;
	ent_create("dreieck.mdl", nullvector, scan_view);
	while(my.health>1){
		c_scan(my.x, my.pan, vector(90, 60, 400), IGNORE_ME| SCAN_LIMIT);
		if (alarm==1){
			my.skill1 += 5*time_step;
			if (my.skill1 > 100) my.skill1 -= 100; 
			ent_animate(me,"move",my.skill1,ANM_CYCLE);
			//my.speed_x += (6-my.speed_x)/(2+(key_w^key_s)*5)*time_step;
			//c_move(my,vector(my.speed_x*time_step,0,0),nullvector,IGNORE_PASSABLE | GLIDE);
			c_scan(my.x, my.pan, vector(90, 60, 400), IGNORE_ME| SCAN_LIMIT);
			vec_set(toe2,player.x);
			vec_sub(toe2, my.x);
			vec_to_angle(my.pan,toe2.x);
			my.tilt=0;
			c_move(my,vector(2*time_step,0,0),nullvector,IGNORE_PASSABLE | GLIDE);
			kampf_distance = vec_dist(my.x,to2.x);
			if(kampf_distance<50){
				my.skill1=0;
			//	snd_play  (schwert_snd,100,0);
	while(my.skill1<90){
		my.skill1 += 10*time_step;
		ent_animate(me,"schwert",my.skill1,ANM_CYCLE);
		wait(1);
	}
	
				playerhealth-=10;
			}
		}
		
		wait(1);
	}
	my.skill1=0;
	while(my.skill1<90){
		
		my.skill1 += 10*time_step;
		ent_animate(me,"tod",my.skill1,ANM_CYCLE);
		wait(1);
	}
	ent_animate(me,"tod",100,ANM_SKIP);
	gold+=5;
	mission+=1;
	wait(-1);
	ent_remove(my);
}
action gegner3(){
	set(my,INVISIBLE);
	set(my,PASSABLE);
	while(mission!=8)
	{wait(1);
	}
	reset(my,INVISIBLE);
	reset(my,PASSABLE);
	VECTOR toe2;
	my.health=100;
	my.emask = ENABLE_IMPACT | ENABLE_ENTITY | ENABLE_RELEASE | ENABLE_SCAN; // the target is sensitive to impact with player's bullets
	my.emask |= ENABLE_TOUCH;
	my.emask |= ENABLE_CLICK;
	my.event = got_shot;
	ent_create("dreieck.mdl", nullvector, scan_view);
	while(my.health>1){
		c_scan(my.x, my.pan, vector(90, 60, 400), IGNORE_ME| SCAN_LIMIT);
		if (alarm==1){
			my.skill1 += 5*time_step;
			if (my.skill1 > 100) my.skill1 -= 100; 
			ent_animate(me,"move",my.skill1,ANM_CYCLE);
			//my.speed_x += (6-my.speed_x)/(2+(key_w^key_s)*5)*time_step;
			//c_move(my,vector(my.speed_x*time_step,0,0),nullvector,IGNORE_PASSABLE | GLIDE);
			c_scan(my.x, my.pan, vector(90, 60, 400), IGNORE_ME| SCAN_LIMIT);
			vec_set(toe2,player.x);
			vec_sub(toe2, my.x);
			vec_to_angle(my.pan,toe2.x);
			my.tilt=0;
			c_move(my,vector(2*time_step,0,0),nullvector,IGNORE_PASSABLE | GLIDE);
			kampf_distance = vec_dist(my.x,to2.x);
			if(kampf_distance<50){
				my.skill1=0;
			//	snd_play  (schwert_snd,100,0);
	while(my.skill1<90){
		my.skill1 += 10*time_step;
		ent_animate(me,"schwert",my.skill1,ANM_CYCLE);
		wait(1);
	}
	
				playerhealth-=10;
			}
		}
		
		wait(1);
	}
	my.skill1=0;
	while(my.skill1<90){
		
		my.skill1 += 10*time_step;
		ent_animate(me,"tod",my.skill1,ANM_CYCLE);
		wait(1);
	}
	ent_animate(me,"tod",100,ANM_SKIP);
	gold+=5;
	mission+=1;
	wait(-1);
	ent_remove(my);
}
action gegner4(){
	set(my,INVISIBLE);
	set(my,PASSABLE);
	while(mission!=15)
	{wait(1);
	}
	reset(my,INVISIBLE);
	reset(my,PASSABLE);
	VECTOR toe2;
	my.health=100;
	my.emask = ENABLE_IMPACT | ENABLE_ENTITY | ENABLE_RELEASE | ENABLE_SCAN; // the target is sensitive to impact with player's bullets
	my.emask |= ENABLE_TOUCH;
	my.emask |= ENABLE_CLICK;
	my.event = got_shot;
	ent_create("dreieck.mdl", nullvector, scan_view);
	while(my.health>1){
		c_scan(my.x, my.pan, vector(90, 60, 400), IGNORE_ME| SCAN_LIMIT);
		if (alarm==1){
			my.skill1 += 5*time_step;
			if (my.skill1 > 100) my.skill1 -= 100; 
			ent_animate(me,"move",my.skill1,ANM_CYCLE);
			//my.speed_x += (6-my.speed_x)/(2+(key_w^key_s)*5)*time_step;
			//c_move(my,vector(my.speed_x*time_step,0,0),nullvector,IGNORE_PASSABLE | GLIDE);
			c_scan(my.x, my.pan, vector(90, 60, 400), IGNORE_ME| SCAN_LIMIT);
			vec_set(toe2,player.x);
			vec_sub(toe2, my.x);
			vec_to_angle(my.pan,toe2.x);
			my.tilt=0;
			c_move(my,vector(2*time_step,0,0),nullvector,IGNORE_PASSABLE | GLIDE);
			kampf_distance = vec_dist(my.x,to2.x);
			if(kampf_distance<50){
				my.skill1=0;
			//	snd_play  (schwert_snd,100,0);
	while(my.skill1<90){
		my.skill1 += 10*time_step;
		ent_animate(me,"schwert",my.skill1,ANM_CYCLE);
		wait(1);
	}
	
				playerhealth-=10;
			}
		}
		
		wait(1);
	}
	my.skill1=0;
	while(my.skill1<90){
		
		my.skill1 += 10*time_step;
		ent_animate(me,"tod",my.skill1,ANM_CYCLE);
		wait(1);
	}
	ent_animate(me,"tod",100,ANM_SKIP);
	gold+=5;
	mission+=1;
	wait(-1);
	ent_remove(my);
}
action gegner5(){
	set(my,INVISIBLE);
	set(my,PASSABLE);
	while(mission!=26)
	{wait(1);
	}
	reset(my,INVISIBLE);
	reset(my,PASSABLE);
	VECTOR toe2;
	my.health=100;
	my.emask = ENABLE_IMPACT | ENABLE_ENTITY | ENABLE_RELEASE | ENABLE_SCAN; // the target is sensitive to impact with player's bullets
	my.emask |= ENABLE_TOUCH;
	my.emask |= ENABLE_CLICK;
	my.event = got_shot;
	ent_create("dreieck.mdl", nullvector, scan_view);
	while(my.health>1){
		c_scan(my.x, my.pan, vector(90, 60, 400), IGNORE_ME| SCAN_LIMIT);
		if (alarm==1){
			my.skill1 += 5*time_step;
			if (my.skill1 > 100) my.skill1 -= 100; 
			ent_animate(me,"move",my.skill1,ANM_CYCLE);
			//my.speed_x += (6-my.speed_x)/(2+(key_w^key_s)*5)*time_step;
			//c_move(my,vector(my.speed_x*time_step,0,0),nullvector,IGNORE_PASSABLE | GLIDE);
			c_scan(my.x, my.pan, vector(90, 60, 400), IGNORE_ME| SCAN_LIMIT);
			vec_set(toe2,player.x);
			vec_sub(toe2, my.x);
			vec_to_angle(my.pan,toe2.x);
			my.tilt=0;
			c_move(my,vector(2*time_step,0,0),nullvector,IGNORE_PASSABLE | GLIDE);
			kampf_distance = vec_dist(my.x,to2.x);
			if(kampf_distance<50){
				my.skill1=0;
			//	snd_play  (schwert_snd,100,0);
	while(my.skill1<90){
		my.skill1 += 10*time_step;
		ent_animate(me,"schwert",my.skill1,ANM_CYCLE);
		wait(1);
	}
	
				playerhealth-=10;
			}
		}
		
		wait(1);
	}
	my.skill1=0;
	while(my.skill1<90){
		
		my.skill1 += 10*time_step;
		ent_animate(me,"tod",my.skill1,ANM_CYCLE);
		wait(1);
	}
	ent_animate(me,"tod",100,ANM_SKIP);
	gold+=5;
	mission+=1;
	wait(-1);
	ent_remove(my);
}

Posted By: CocaCola

Re: Fehler beim Starten Win8 64bit - 10/09/14 16:24

wohl die kürzeste Datei menue.c
Code:
/*PANEL* test_pan = 
{
  pos_x = 0;
  pos_y = 0;
  layer = 1;
  bmap = bg01_pcx;
  
  flags = OVERLAY | SHOW;
}*/
var sprache;
PANEL* stern_pan = //mein erstes panel
{
  pos_x = 90;
  pos_y = 0;
  layer = 10;
  button (0, 0, "stern.tga", "stern.tga", "stern.tga", null, null, null);
  flags = OVERLAY | SHOW;
}
PANEL* gold_pan = //mein erstes panel
{
  pos_x = 180;
  pos_y = 0;
  layer = 10;
  button (0, 0, "gold.tga", "gold.tga", "gold.tga", null, null, null);
  flags = OVERLAY | SHOW;
}
PANEL* health_pan = //mein erstes panel
{
  pos_x = 0;
  pos_y = 0;
  layer = 10;
  button (0, 0, "herz.tga", "herz.tga", "herz.tga", null, null, null);
  flags = OVERLAY | SHOW;
}
/*PANEL* english_pan = //mein erstes panel
{
  pos_x = 50;
  pos_y = 110;
  layer = 10;
  button (0, 0, "english.jpg", "english.jpg", "english.jpg", startenglish, null, null);
  flags = OVERLAY | SHOW;
}
PANEL* deutsch_pan = //mein erstes panel
{
  pos_x = 220;
  pos_y = 110;
  layer = 10;
  button (0, 0, "deutsch.jpg", "deutsch.jpg", "deutsch.jpg", startdeutsch, null, null);
  flags = OVERLAY | SHOW;
}*/
function startenglish(){
	level_load("ninjacat.wmb");
	sprache=1;
}
function startdeutsch(){
	level_load("ninjacat.wmb");
	sprache=2;
}
action weaving_grass() // attach this action to your grass models

{

       var grass_angles;

       var grass_speed;

      // set (my, PASSABLE);

      // my.scale_x = 0.7 + random(2) / 3; // set different scales for the grass models

      // my.scale_y = my.scale_x;

      // my.scale_z = my.scale_x;

       grass_speed = 2 + random(5);

       while (1)

       {

               grass_angles += grass_speed * time_step; // allow the grass to weave

               my.roll += 0.1 * sin(grass_angles);

               wait (1);

       }

}

Posted By: CocaCola

Re: Fehler beim Starten Win8 64bit - 10/09/14 16:25

opa.c
Code:
var mission;
//ENTITY* enemy;
FONT* arial_font = "Arial#25b"; 
/*STRING* mission1_str = "Der KungFu Meister fordert Dich
zu einem Kaumf auf!
Setze Deine Ninja List ein und
schleich Dich von hinten an,
um ihn zu atackieren.
Er ist im Norden also nimm denn
ostlichen Weg";*/
SOUND* gong_snd = "gong.wav";
STRING* mission1_str = "Hallo mein Ninja,
Der Kung Fu Meister vordert 
Dich zu einem Duel auf!
Nutze Deine Ninja List und attakiere
Ihn von Hinten um Ihn zu ermeucheln";
STRING* mission2_str = "Die Schühler des Meisters
wollen sich fuer denn Tod ihres
Meisters rächen!
Töte sie alle ;-D";
STRING* mission3_str = "Neue Schüler 
wollen sich fuer denn Tod ihrer
Kameraden rächen!
Töte sie alle ;-D";
STRING* mission4_str = "Es haben sich noch ein Paar
Kung Fu schüler gefunden,
die sich rächen wollen
Töte sie alle ;-D";
STRING* mission5_str = "Die letzten Schüler wollen
Deine Kampfkunst erlernen, doch das
bleibt geheim!
Töte sie alle ;-Z";
TEXT* mission_txt =
{
	pos_x = 300;
	pos_y = 250;
	layer = 30;
	font = arial_font;
	string (mission1_str);
	//flags = SHOW;
}

PANEL* ok1_pan = //mein erstes panel
{
	pos_x = 270;
	pos_y = 220;
	layer = 20;
	button (0, 0, "mission.tga", "mission.tga", "mission.tga", start1, null, null);
	flags = OVERLAY;
	// d3d_alpharef = 255;
}
////////////////////////////////////////////////////////////////////////////////////////////
function suchemission(){
	if (mission==0){
		set(ok1_pan,SHOW);
		str_cpy((mission_txt.pstring)[0], mission1_str);
		set(mission_txt,SHOW);
	}
	if (mission==2){
		set(ok1_pan,SHOW);
		str_cpy((mission_txt.pstring)[0], mission2_str);
		set(mission_txt,SHOW);
	}
		if (mission==7){
		set(ok1_pan,SHOW);
		str_cpy((mission_txt.pstring)[0], mission3_str);
		set(mission_txt,SHOW);
	}
			if (mission==14){//6 gegner getötet
		set(ok1_pan,SHOW);
		str_cpy((mission_txt.pstring)[0], mission4_str);
		set(mission_txt,SHOW);
	}
			if (mission==25){
		set(ok1_pan,SHOW);
		str_cpy((mission_txt.pstring)[0], mission5_str);
		set(mission_txt,SHOW);
	}
}
function start1(){
	mission+=1;
	reset(ok1_pan,SHOW);
	reset(mission_txt,SHOW);
	playerhealth=100;
}
function opa_got_shot(){
	my.ambient = 0;
	my.lightrange = 0;
	if (event_type == EVENT_CLICK) {
		angriff=2;
		set(gotonow,INVISIBLE);
		vec_set(to2,my.x);
	}
	if (event_type == EVENT_TOUCH) 
	{
		my.ambient = 100; // dann lass' ihn heller aussehen
		my.lightrange = 30; 
	}
	if (event_type == EVENT_SCAN)
	{snd_play  (gong_snd,100,0);
		suchemission();
	}
}
action opa(){
	my.emask |=  ENABLE_SCAN; // the target is sensitive to impact with player's bullets
	my.emask |= ENABLE_TOUCH;
	my.emask |= ENABLE_CLICK;
	my.event = opa_got_shot;
}

Posted By: CocaCola

Re: Fehler beim Starten Win8 64bit - 10/09/14 16:25

schmied.c letzte Datei Nr.6
Code:
FONT* arial_font = "Arial#25b"; 
STRING* schmied_str = "Hallo mein Ninja,
Du kannst gerne ein Paar
Ninjasterne kaufen :-D

Kosten=10GS/3stk.";
SOUND* klick_snd = "klick2.wav";
SOUND* kasse_snd = "kasse.wav";
TEXT* schmied_txt =
{
	pos_x = 300;
	pos_y = 250;
	layer = 30;
font = arial_font;
	string (schmied_str);
	//flags = SHOW;
}
PANEL* schmied_pan = //mein erstes panel
{
  pos_x = 270;
  pos_y = 220;
  layer = 20;
  button (0, 0, "schmied.tga", "schmied.tga", "schmied.tga", null, null, null);
  flags = OVERLAY;
}
PANEL* schmied_kauf_pan = //mein erstes panel
{
  pos_x = 350;
  pos_y = 420;
  layer = 30;
  button (0, 0, "kauf.tga", "kauf.tga", "kauf.tga", kauf, null, null);
  flags = OVERLAY;
}
PANEL* schmied_verlassen_pan = //mein erstes panel
{
  pos_x = 290;
  pos_y = 420;
  layer = 30;
  button (0, 0, "verlassen.tga", "verlassen.tga", "verlassen.tga", schmied_verlassen, null, null);
  flags = OVERLAY;
}
function kauf(){
	if(gold!=0){
		snd_play  (klick_snd,100,0);
		gold-=10;
		ninjastern+=3;
	}
}
function schmied_verlassen(){
	reset(schmied_pan,SHOW);
	reset(schmied_kauf_pan,SHOW);
	reset(schmied_verlassen_pan,SHOW);
	reset(schmied_txt,SHOW);
}
function schmied_got_shot(){
	my.ambient = 0;
	my.lightrange = 0;
	if (event_type == EVENT_CLICK) {
		angriff=2;
		set(gotonow,INVISIBLE);
		vec_set(to2,my.x);
	}
	if (event_type == EVENT_TOUCH) 
	{
		my.ambient = 100; // dann lass' ihn heller aussehen
		my.lightrange = 30; 
	}
	if (event_type == EVENT_SCAN)
	{
		snd_play  (kasse_snd,100,0);
	set(schmied_pan,SHOW);
	set(schmied_kauf_pan,SHOW);
	set(schmied_verlassen_pan,SHOW);
	set(schmied_txt,SHOW);
	}
}
action schmied(){
	my.emask |=  ENABLE_SCAN; // the target is sensitive to impact with player's bullets
		my.emask |= ENABLE_TOUCH;
	my.emask |= ENABLE_CLICK;
	my.event = schmied_got_shot;
}

Posted By: WretchedSid

Re: Fehler beim Starten Win8 64bit - 10/09/14 16:41

Den Fehlercode. Nicht den Code. Sorry, aber ich werde mich nicht dadurch wühlen, code review ist nicht mein Ding. Schon gar nicht wenn er so grauenhaft formatiert ist.
Posted By: CocaCola

Re: Fehler beim Starten Win8 64bit - 10/09/14 17:51

Also ich weiß nicht wie ich heraus finden soll, was der Fehler core ist, weil ich kein win8 habe und die angaben von den Testern sind, dass sie das weiße Acknex Ladefenster sehen und dann die Meldung mit der Fehlermeldung kommt aber da ist kein Hinweiß auf eine bestimmte Funktion oder so
Posted By: rojart

Re: Fehler beim Starten Win8 64bit - 10/09/14 19:28

Da fällt mir ganz spontan ein, dass es mit update auf win 8.1 funktionieren sollte.
Posted By: CocaCola

Re: Fehler beim Starten Win8 64bit - 10/10/14 08:12

Meinst bestimmt, dass ich das GS updaten soll, ja hab ich aber ich hab auch schon geschrieben, dass ein leeres Projekt ohne Probleme läuft> es liegt wohl entweder am mystymood oder an meinem script
Posted By: PadMalcom

Re: Fehler beim Starten Win8 64bit - 10/10/14 08:21

Hi CocaCola, kommentiere einfach dein Projekt Stück für Stück aus und teste dann separat. Dann nimmste von Mal zu Mal ein paar Funktionalitäten mehr mit rein um zu sehen, wo es kracht.
Posted By: CocaCola

Re: Fehler beim Starten Win8 64bit - 10/10/14 11:36

Ich suche auch schon nach einen Win8 Tester ;-)
Posted By: rojart

Re: Fehler beim Starten Win8 64bit - 10/10/14 15:10

Originally Posted By: CocaCola
Meinst bestimmt, dass ich das GS updaten soll, ja hab ich aber ich hab auch schon geschrieben, dass ein leeres Projekt ohne Probleme läuft> es liegt wohl entweder am mystymood oder an meinem script


Ich meinte Betriebssystem von Windows 8.0 auf Windows 8.1 updaten, sollte mit Acknex Engine 8.45.4 funktionieren.
Posted By: CocaCola

Re: Fehler beim Starten Win8 64bit - 10/12/14 09:20

Hallo! ja die haben win8.1
und ich habe jetzt einen Tester mit win8.1 gefunden und ihn die ersten 3 Versionen geschickt.
Ich habe in der ersten version denn Terrain shader rausgenomme und in der 2. denn terrainshader und die NPCs und in der 3. ... den Player und so weiter.
Posted By: CocaCola

Re: Fehler beim Starten Win8 64bit - 10/12/14 10:18

Der Fehler wurde ermittelt!!!
Es ist der Mystymood(Terrain& Wetter-Shader) aus der Aum 72
http://aum.conitec.net/aum72code.zip
Leider basiert mein nächstes Projekt auch auf diesem Shader. Es handelt sich um eine Unterwasser Sim und der Shader macht eine schöne Wasser licht Spiel auf dem untergrund unter Wasser :-(
Posted By: CocaCola

Re: Fehler beim Starten Win8 64bit - 10/14/14 09:55

Es ist bei jemanden noch ein Fehler aufgetreten, jemand ne Ahnung was das bedeutet?
Quote:
Problem signature:
Problem Event Name: APPCRASH
Application Name: ninjacat.exe
Application Version: 0.0.0.0
Application Timestamp: 4c1231af
Fault Module Name: StackHash_5861
Fault Module Version: 0.0.0.0
Fault Module Timestamp: 00000000
Exception Code: c0000005
Exception Offset: PCH_2F_FROM_ntdll+0x0003AAAC
OS Version: 6.3.9600.2.0.0.256.49
Locale ID: 1031
Posted By: MasterQ32

Re: Fehler beim Starten Win8 64bit - 10/14/14 10:22

Das ist ein Nullpointer oder ein Invalid Pointer.
Posted By: rojart

Re: Fehler beim Starten Win8 64bit - 10/15/14 09:14

Originally Posted By: CocaCola
Ich suche auch schon nach einen Win8 Tester ;-)

Nachdem ich eine veraltete clip_size syntax entfernt habe, funktioniert das mystymood_demo.c tadellos bei mir.

Win 8.1 Pro 64-bit

Posted By: CocaCola

Re: Fehler bei verschiedennen Benutzern - 10/15/14 10:56

Ja das ist ja schön, dass Du dich so gut auskennst und wenn ich das Thema Shader ernsthaft annehme, weiß ich ja wen ich fragen kann *Gg
Für meinen Unterwasser shooter habe ich mich aber entschieden, die Teile des Terrains, die eine Andere Textur haben sollen, werden seperate mdls mit einer gkachelten Textur sein, dann sind zwar die übergänge nicht so schöhn aber das Spiel läuft dann wenigstens bei jedem, der Windows hat.
Ah ja der Eine Typ bei dem das auch nicht lief hatte eine Radeon R9 290 drin stecken und ohne den Mystymood läufts jetzt auch, das freut mich, das GS auch auf neuen GK läuft
Posted By: MasterQ32

Re: Fehler bei verschiedennen Benutzern - 10/15/14 11:02

Warum soll Gamestudio nicht auf neuen Grafikkarten laufen? Ich hab auch ne R9 290 und da ich DirectX 9 Support habe (Durch OS) läuft natürlich auch Gamestudio.
Ich glaube nicht, dass das ein Shaderproblem ist, da bei Shadern 3 Optionen da sind:
Sie compilieren nicht, sie funktionieren oder sie zeigen Zeug an was sie nicht sollen.
Da du in Shadern keine Pointerarithmetik haben kannst, wird es daran nicht liegen.

Du solltest versuchen, den Fehler in deinem Code (+Mystymood) zu suchen, ich denke nicht, dass es ein betriebssystemspezifischer Fehler ist sondern eher ein Fehler, der durch einen Programmierfehler entsteht, sich aber nicht auf jedem System gleich auswirkt
Posted By: CocaCola

Re: Fehler bei verschiedennen Benutzern - 10/15/14 13:26

Ich glaub ich habs jetzt auch gefunden
Code:
camera.clip_near=0;


in mm_scripts/sky_tamplate.c
das muß 1 heißen aber ich kanns wie immer nicht testen
Posted By: MasterQ32

Re: Fehler bei verschiedennen Benutzern - 10/15/14 18:30

du kannst auch 0.001 nehmen, du darfst nur kein 0 nehmen wink
Posted By: CocaCola

Re: Fehler bei verschiedennen Benutzern - 10/16/14 11:03

und was ist mit wait(0);
warum kann man das in ner while schleife? habs letztens so gelesen
Posted By: WretchedSid

Re: Fehler bei verschiedennen Benutzern - 10/16/14 18:24

Wieso sollte es nicht gehen? Also, warum genau ist etwas im scope einer while Schleife anders als etwas in einem anderen scope?

Ist es Sinnvoll? Nö. Geht es? Wie gesagt, warum sollte es nicht gehen?

Ich habe es schon einmal erwähnt, aber du solltest wirklich ganz dringend noch einmal an deinem Wissen arbeiten. Dein Code ist leider unter aller sau, da gibt es leider nicht viel schön zu reden. Und es ist sehr sehr sehr stark ersichtlich das ein Großteil des Codes einfach nur kopiert ist, und kopierte Code ist schlechter Code. Code kopieren ist schön und gut, aber es hilft dir leider kein bisschen zu verstehen was überhaupt passiert und warum. Und dann ein großartiges Beispiel:

Code:
if(gold != 0)
{
    gold -= 10;
}



Wo du die Ninja Sterne erhöhst und 10 Geld abziehst. Wenn der Spieler eine nicht durch 10 Teilbare Menge an Geld hat, was recht leicht geht da ein paar Missionen offenbar 5 Geld bringen, dann kann man sich ganz einfach unendlich viele Ninja Sterne besorgen.

So... Jetzt sagt halt alle wieder das ich voll fies und gemein bin, aber die Wahrheit ist das CocaCola noch einmal heftig üben muss. Die Fragen hier im Forum und sein Code machen es ganz klar ersichtlich das da ordentlich bedarf besteht. Du schreibst von einem zweiten Teil, eventuell wäre es aber einfach besser den ersten Teil noch einmal in richtig und Ordentlich zu machen?
Posted By: CocaCola

Re: Fehler bei verschiedennen Benutzern - 10/17/14 17:28

Danke für den cheat mit den Ninja-Sternen
Quote:
So... Jetzt sagt halt alle wieder das ich voll fies und gemein bin
finde ich alles sehr schonend und rücksichtsvoll Danke fürs durch gucken.

Aber ich weiß schon welchen code ich nicht verstehe und bei manchen fremden code wundere ich mich einfach, dass man es so schreiben kann und es funktioniert. ich sehe meinen Weg in der Programmierung auch so, das ich nie einen Durchbruch mit einem genialen Algorithmus schaffen werde und mir immer mehr Code und Sprachen reinziehen werde und eher versuchen werde mehr Wissen zu sammeln und weniger mit einengen Ideen auftrumpfen werde

aber zur Zeit sind meine einzigen Bezüge die Beiträge in den AUMs
Posted By: WretchedSid

Re: Fehler bei verschiedennen Benutzern - 10/17/14 21:58

Das ist doch eine sehr lahme Ausrede und eine die andere davon abhalten wird dir in Zukunft zu helfen.

Das Problem ist nicht Code nicht zu verstehen, oder gar fragen zu stellen. Das ist absolut kein Problem und ehrlich gesagt ziemlich normal. Es kommt aber alles auf die Intention an...


Programmieren hat viel mit Grundverständnis zu tun ohne das es einfach nicht geht. Es gibt eine Menge kleiner basis Bausteine auf denen basierend dann komplexere Dinge aufgebaut sind, die sich relativ einfach erklären lassen wenn das basis Wissen da ist. Entsprechend wird es mit der Zeit dann auch relativ einfach herauszufinden was ein Codestück/Funktion/Whatever tut, ohne das man nachfragen muss. Der Trick liegt darin weg davon zu gehen ganze Funktionen als nicht-unterteilbare Ganze zu betrachten sondern die einzelnen Komponenten zu betrachten die diese Funktion ausmacht.

Ich häng mich mal weiter an dem while(1) { wait(0); } auf. "Kann man das so machen?" ist die falsche Frage. Die richtige Frage ist: "Was genau passiert wenn ich das so mache und warum?". Es gibt keine dummen Fragen, auch die "kann man das so machen?" Frage ist an sich nicht dumm, aber die Antwort darauf leitet sich aus der Antwort einer anderen, viel Grundlegenderen Frage ab.

Nun ist dir natürlich frei gestellt die Dinge zu tun wie du lustig bist! Aber, dir wird nicht auf ewig mit solchen Grundlegenden Problemen geholfen. Jeder gibt hier ja auch nur seine Freizeit, und es macht leider keinen spaß die gleiche Antwort neu verpackt zu geben weil die Lernbereitschaft fehlt. Programmieren besteht zu 99% daraus Lösungen zu alten Problemen zu nehmen und leicht an das neue Problem anzupassen. Da sind wir wieder bei den Basisblöcken auf denen alles aufbaut. Dazu gehört leider auch eine gewisse Frustresistenz, denn in der Regel rennt man hauptsächlich in Wände. Wenn das "high" vom Lösen der Probleme das ständige in Wände rennen nicht ausgleicht dann macht Programmieren keinen spaß.

Was ich dir sagen will, es ist schön und gut wenn du verstehst was eine Funktion macht. Was du aber wirklich wirklich dringend lernen musst, und wo code kopieren leider nicht die Lösung ist, ist zu verstehen WARUM und wie eine Funktion etwas macht. Und da ist es doch relativ ärgerlich für andere zu sehen wenn du einfach nur Dinge kopierst und ganz offenbar nur Oberflächlich verstehst was überhaupt da passiert.

Im Prinzip sind wir ja doch alle masochistisch veranlagte Selbsthasser. Mein Tag besteht im Großteil daraus von einem Problem zum nächsten zu gehen, und daran dann zu überlegen wie man das am elegantesten löst. Und dann rennt man Unterwegs in noch einmal mindestens 20 Wände rein.
Und das Problem ist das die Spirale immer tiefer wird, Probleme die du heute gelöst kriegst und worüber du dich mega den Keks freust werden dich, wenn du dabei bleibst, in einem Jahr langweilen. Da werden größere Probleme interessant. Und dann wieder größere... Auf der jagt zum nächsten größeren high. Vllt sind wir doch nur alle Drogenabhängige.

Das lernen hört übrigens auch nie auf. Genauso wie der selbthass wenn man sich anguckt was für einen elendigen Rotz man vor 3 Monaten geschrieben hat.

PS: Das ist kein Cheat sondern ein Bug in deiner Software. Bugs != Features wink
Posted By: MasterQ32

Re: Fehler bei verschiedennen Benutzern - 10/17/14 22:34

Signed. Super ausgedrückt, vorallem der vorletzte Absatz
Posted By: Superku

Re: Fehler bei verschiedennen Benutzern - 10/17/14 22:51

Jo in der Tat, guter Post, 10/10 would read again.

Fehlt nur noch eine englische Version, also los, Sidchen, an die Arbeit! Husch, husch!
Posted By: CocaCola

Re: Fehler bei verschiedennen Benutzern - 10/18/14 12:35

Ist ja schön, dass Ihr euch da so einig seid.
Ich werde jtzt erstmal C von A bis Z von Jürgen Wolf
Das umfassende Handbuch lesen und gucken ob ich dann ein bishen mehr vom Programablauf verstehe
Posted By: fogman

Re: Fehler bei verschiedennen Benutzern - 10/18/14 17:26

Hast Du den Workshop schon gemacht? Der ist genau dafür gedacht und auch nicht so knochentrocken. laugh
http://www.conitec.net/litec/index_d.htm
Posted By: CocaCola

Re: Fehler bei verschiedennen Benutzern - 10/19/14 11:29

Danke aber den hab ich bis Verzweigungen gemacht und den Rest habe ich überflogen
Posted By: WretchedSid

Re: Fehler bei verschiedennen Benutzern - 10/19/14 14:38

Wie gut ist denn dein Englisch? Das Buch was du da hast ist ewig alt, und zum Beispiel kam in der Zwischenzeit ein neuer C Standard heraus.

Auch wäre es interessant zu wissen was für eine Platform du anpeilst. Ich nehme mal an Windows?
Posted By: fogman

Re: Fehler bei verschiedennen Benutzern - 10/19/14 17:21

Quote:
...den Rest habe ich überflogen


Aber ab da wird es doch erst richtig interessant - Entities bewegen, Animationen, Physik... davon ab wird dann auch die Sache mit dem "wait" erklärt. Wenn Du dass alles durch hast, dann macht es Sinn sich die AUMs vorzunehmen.
Posted By: CocaCola

Re: Fehler bei verschiedennen Benutzern - 10/19/14 17:39

Es ist der Standard c99 und da hab ich wohl Pech, dass ich so spät damit angefangen habe aber es scheint mir ein gut verständlich geschriebenes openbook zu sein und besser als irgend soein c11 Tutorial, denn leider sind meine Englisch Kenntnisse wie meine Programmierkenntnisse und dazu kommt, dass ich es ungerne anwende und mich nur qualen würde. Und ich werde erstmal bei Win bleiben und habe nicht vor iegendwas im embedded bereich zu machen.
Bestimmt hättest Du ein echt guten Tip für ein Englisch sprachiges Buch, Danke aber kommt erstmal nicht in meine Auswahl. Und ich denke, nach meinem openbook kann ich noch ein c99 Tutorial nachschieben, wenn ich was mit einer C basierten Engine/Bibliothek machen werde

Edit:ich werde mir das lite-c Tutorial nochmal genauer angucken
Posted By: MasterQ32

Re: Fehler bei verschiedennen Benutzern - 10/19/14 18:08

Ich würde dir wärmstens ans Herz legen, dir Englisch anzueignen. Ohne geht schlicht und ergreifend nicht, weil du in mehr als 70% aller Fälle keine deutsche Lösung finden wirst.

English ist im Endeffekt Pflicht, wenn du irgendwas mit programmieren machst, weil die gesamte Fachliteratur auf Englisch verfasst wird und du wirst auch nie übersetzte Paper oder Ähnliches finden.

Zudem ist C/C++11 echt eine Erleichterung im Vergleich zu den alten Standards, da solltest du dich nicht unnötig quälen mit.
Posted By: WretchedSid

Re: Fehler bei verschiedennen Benutzern - 10/20/14 12:00

Originally Posted By: CocaCola
Bestimmt hättest Du ein echt guten Tip für ein Englisch sprachiges Buch

Habe ich tatsächlich nicht. Ich muss gestehen das ich hier kein einziges Buch zu irgendeinem Programmier Thema habe (abgesehen von ein paar Papers zu interessantem kram auf meinem Kindle). Aber es wäre trotzdem einfacher Bücher zu empfehlen die von bekannten Namen kommen. Der Felix hat übrigens recht, Englisch solltest du dir aneignen, je eher desto besser. Sprechen ist eine Sache, aber zumindest lesend sollte es etwas da sein.

Was zu C99 und Windows unbedingt gesagt werden muss ist das MSVC C99 _nicht_(!!) unterstützt! Ein sehr kleines subset der Features ist verfügbar, aber ein Großteil der vom Standard erforderten Features sowohl was die Sprache als auch die Standard Library angeht ist schlicht weg einfach nicht da!
Posted By: CocaCola

Re: Fehler bei verschiedennen Benutzern - 10/21/14 17:01

Danke für den Hinweiß über MSVC.
Ich hab Pelles C gefunden, da kann man auf C99 umschalten
Posted By: WretchedSid

Re: Fehler bei verschiedennen Benutzern - 10/23/14 13:32

Ohne dem LCC Team zu Nahe treten zu wollen, aber ein Mainstream compiler mit einem langen und guten track record wäre eventuell besser geeignet.

An dieser Stelle würde ich gerne darauf hinweisen das Clang/LLVM großartige Schritte macht zu Windows portiert zu werden, und nicht nur Unterstützung für C11 hat sondern auch C++1z bietet.

Das Setup ist noch ein bisschen Haarig, zumindest war es das vor einem halben Jahr. Wenn dich das abschreckt, GCC ist die alternative zu LLVM, etwas weniger Features was den neueren C++ kram angeht, aber ein solider Compiler der sehr gut optimieren kann.


Kurze Zusammenfassung, GCC und LLVM/Clang sind die Compiler die du benutzen möchtest! Generieren extrem guten Code, können extrem gut optimieren und sind schnell.

Als IDE für GCC empfiehlt sich Code::Blocks oder QTDesigner (das auch ohne QT als einfach nur IDE geht). Als IDE für LLVM/Clang empfiehlt sich... Visual Studio.



Wo ich jetzt aber schon ein paar mal C++ erwähnt habe, wäre das nicht eher was für dich? Von Haus aus bringt MSVC recht gute Unterstützung für C++11 mit, C++14 ist fürn Arsch aber ich glaub ein proposal (das von Microsoft kommt...) aus C++1z ist bereits unterstützt. Und das Team scheint auf recht guten Weg zu sein die Unterstützung für Sprach und Library features schneller und besser zu bringen.

Persönliche Meinung, aber modernes C++ ist um Wellenlängen besser als C und das alte C++. Wenn du Bücher lieber magst, musst du dir allerdings ein neueres Buch kaufen.
Posted By: MasterQ32

Re: Fehler bei verschiedennen Benutzern - 10/23/14 13:34

@Sid: Again true words.
Clang compiliert sich mit CMake und Visual Studio 13 relativ einfach, braucht halt auf nem klapprigen Laptop n paar Stunden ^^

Ist aber einfach ein genialer Compiler.
Posted By: CocaCola

Re: Fehler bei verschiedennen Benutzern - 10/23/14 17:20

mit c++ könnte ich natürlich die Unreal Engine nutzen aber das brennt so garnicht und ich wüßte auch so garnicht was ich außer Spielen sonst programmieren sollte frown
und mit c wollte ich auch nix großes machen, wollte nur das Buch lesen und dann vielleicht ein C11 Tutorial machen.
Was macht Ihr denn für sachen, dass Ihr soviele Programme kennt? Also außer Spiele und Engine und Arbeit/Studium, mir fehlen da die kreativen Ideen für die Möglichkeiten
Posted By: the_clown

Re: Fehler bei verschiedennen Benutzern - 10/23/14 18:12

Je mehr man sich mit dem ganzen Kram auseinandersetzt desto breiter werden auch die Interessen, dementsprechend lernt man halt mehr Programme kennen. wink

Zu deinem Problem der Möglichkeiten, Spieleprogrammierung reicht ja eh schon aus um vieeeeele Teilgebiete der Programmierung kennenzulernen, wenn nicht alle. Und man kann vieles mit Spielen verbinden, ich bin zum Beispiel in C++ eingestiegen indem ich halt n kleines Textadventure gebastelt hab. Das hat gereicht ein paar sprachspezifische Besonderheiten kennenzulernen (Standardbibliothek, Syntax an sich), und auch um zu checken wie das mit dem IDE, Compiler und Linker und so läuft. Daraus entwickelt sich dann auch wieder neues Interesse an dem ganzen Kontext. Kleiner Seiteneffekt ist dass man irgendwann die fixe Idee bekommt vielleicht ALLES selber zu machen und sich nicht mehr auf Engines und so was zu stützen, aber das kommt dann erst was später. tongue
Posted By: MasterQ32

Re: Fehler bei verschiedennen Benutzern - 10/23/14 19:14

Ich hab mit Gamestudio A6 und WDL angefangen und jetzt programmier ich eben alles was mir so einfällt.
Spiele, Tech-Demos, Anwendungen, ...
Ich hab einfach den Spaß am Neues ausprobieren. Neue Sprachen, neue Techniken, Paradigmen usw.

Man programmiert ja nicht in einer Programmiersprache sondern die Sprache ist nur Mittel zum Zweck um sich auszudrücken.

Je breiter das Spektrum an Möglichkeiten, desto cooleren Stuff kannst du umsetzen...
Posted By: WretchedSid

Re: Fehler bei verschiedennen Benutzern - 10/23/14 22:36

Kann ich so unterschreiben...

Es gibt zwei Arten Dinge zu tun:

1) Job. Das kann spaß machen, das kann langweilig sein, das kann frustrierend sein. Egal, du wirst dafür bezahlt und du machst es einfach. Wobei Job nicht gleich Job ist, je kleiner die Firma für die du arbeitest desto mehr stress, Arbeit aber auch Freiheit bekommst du. Wenn du bei Crytek der threadpool Wartungsmann bist, dann machst du genau das, und das wars.

2) Freizeit. Das ist der spannende Teil. Mach worauf du bock hast! Keiner zwingt dich zu irgendwas, keine deadline, gar nichts. Ne eigene virtual machine am Wochenende bauen aus spaß an der Freude? Kein Ding. Kein Bock mehr auf das Projekt? Fuck it, einfach was anderes machen.

Da ich über 1 vertraglich nicht reden darf bei mir, gehe ich mal gleich zu 2:
Ich hab hier n Haufen Spielzeug zum rumspielen: Ne AR.Drone 2, Raspberry Pi, Intel Edison, ne Pebble, mehrere MacBooks, iPhones... (und demnächst n Ultimaker 2)... Alle können Software laufen lassen und haben SDKs. Ich hab die letzten zwei Wochen damit zugebracht ein C++11 library zu schreiben die mit der AR.Drone zwei redet (link). Das Ziel wäre das ganze dann später mal auf Firedrake (link) zum laufen zu bringen und das wiederum auf dem Pi und/oder Edison zum laufen zu bringen um danach die Drohne Autonom fliegen lassen zu können. (Bin mittlerweile soweit das ich zumindest vom Mac aus die Drohne über den PS4 controller steuern kann... In Rayne! (link)).

Und nebenbei bin ich dann an ein paar Wochenenden im Jahr mit Nils auf game jams (demnächst live und in Farbe in Hamburg).


Kurzum, ich mach Dinge die mir spaß machen. Es hilft ein gewisses Budget zu haben (dabei hilft #1), wobei man auch mit einem normalen Computer schon ordentlich spaß haben kann. Und wenn man das lang genug macht, dann lernt man Dinge. Und das macht den Spaß am ganzen aus.
Posted By: CocaCola

Re: Fehler bei verschiedennen Benutzern - 10/24/14 12:33

Das hört sich alles spannend an und ich habe schon vorher diese alle Sachen im Internet angetroffen obwohl ich micht doch ernsthaft frage was man mit soeinem Raspberry Pi so machen soll...
Früher wäre es vielleicht spanend gewesen eine Anwendung auf einem Geret laufen zu lassen, die es vom Haus auf nicht unterstützt aber heute hat ja alles alle tools die ich brauche(ich brauche auch nicht so viel) und zu c++: ich fürhte mich so vor diesem oop. Einer hat mir das mal erklären wollen und hat mir gesagt, ich soll mir ein Auto vorstellen und z.B. die Kuplung ist ein Objekt und das Auto weiß garnicht wie die Kuplung funktioniert, es weiß nur dass man sie treten kann und das ist die Einghabe und dann hat das Objekt noch eine Ausgabe, die bleiben immer gleich aber die Kuplung/das Objekt kann man immer austauschen... aber das kann man mit nicht oop doch auch crazy
Posted By: WretchedSid

Re: Fehler bei verschiedennen Benutzern - 10/24/14 13:32

Originally Posted By: CocaCola
Das hört sich alles spannend an und ich habe schon vorher diese alle Sachen im Internet angetroffen obwohl ich micht doch ernsthaft frage was man mit soeinem Raspberry Pi so machen soll...


Tja, das ist natürlich dir überlassen. Ich möchte meinen Kernel darauf portieren und dann eine Drohne damit steuern. Wenn so etwas für dich nicht Reizvoll ist, dann könntest du einfach nur so damit rumspielen oder etwas anderes tun. Wie gesagt, tu was dir persönlich spaß mach und interessant erscheint.

Du kannst natürlich auch das Hardware hacking anfangen, und dir ganz eigene Hardware stacks mit eigenem Software stack schreiben. Das ist zwar vermutlich gerade sehr sehr hoch gegriffen, aber nur so als Beispiel an Dingen die man tun könnte. Letzendlich hängt es von dir ab was du tun möchtest.



Zudem sei gesagt das Gamestudio Teilweise auch OOP macht, nur anders verpackt als in C++ (und nicht immer komplett durchgezogen). Man kann nämlich auch in C ganz toll, wenn auch deutlich verboser, OOP nachbauen. Wie Sinnvoll das ist sei dahingestellt, ich würde ja doch eher C++ nehmen.
Posted By: the_clown

Re: Fehler bei verschiedennen Benutzern - 10/24/14 20:12

OOP ist was tolles, zumindest für die Dinge für die es auch sinnvoll ist. Die Sache mit dem Auto und der Kupplung kratzt da nur an der Oberfläche, richtig interessant wird OOP erst wenn der Anwendungsfall was komplexer ist.

Zum Raspberry Pi, das Ding ist auch ziemlich praktisch für Dinge die dein Rechner vielleicht genauso gut kann, bei denen der aber deutlich mehr Strom verbraucht und Hitze produziert als das kleine Raspberry. Wenn man den ganzen Tag Musik streamen will zum Beispiel. Oder Filme.
© 2024 lite-C Forums