Gamestudio Links
Zorro Links
Newest Posts
loading historical data 1st time
by AndrewAMD. 04/14/23 12:54
Trade at bar open
by juanex. 04/13/23 19:43
Bug in Highpass2 filter
by rki. 04/13/23 09:54
Adding Limit Orders For IB
by scatters. 04/11/23 16:16
FisherN
by rki. 04/11/23 08:38
AUM Magazine
Latest Screens
SHADOW (2014)
DEAD TASTE
Tactics of World War I
Hecknex World
Who's Online Now
3 registered members (AndrewAMD, Grant, Neb), 908 guests, and 6 spiders.
Key: Admin, Global Mod, Mod
Newest Members
rki, FranzIII, indonesiae, The_Judge, storrealba
18919 Registered Users
Previous Thread
Next Thread
Print Thread
Rate Thread
Kamera, Movement, Animation... Wo.OT Hilfe. #201405
04/08/08 20:16
04/08/08 20:16
Joined: Apr 2008
Posts: 144
Germany | Niedersachsen (Lower...
Roxas Offline OP
Member
Roxas  Offline OP
Member

Joined: Apr 2008
Posts: 144
Germany | Niedersachsen (Lower...
Hey Leute,

ich hab probleme ohne ende.. gibt es irgendwo ein vernünftiges, gut erklärtes und verständliches Tutorial für Lite-C das erklärt wie man ein

Bewegungsscript schreibt,
3rd Person Kamera Script schreibt,
und Animationen einbindet?

Ich habe es mit dem KH Movement Tutorial versucht, aber ich verstehe einige Sachen nicht.. und genau diese dinge sind dann meist auch nicht sonderlich gut erklärt. bzw für mich verständlich..

Ich hab nen code geschrieben mit mühe und not... und ich hab
bisher einige Probleme:
-> ich krieg keine Animationen rein.. sobald ich sie einbaue ruckelt das modell was als charakter dienen soll sehr stark. genau so wenig versteh ich die sache mit dem "ent_blend" ... -.-

-> Bewegung... wenn ich WASD drücke bewegt er sich zwar in die richtung die ich will, doch sieht das total abgehackt aus.. ich hätte es gerne so das er sich in die richtung dreht und dann läuft, statt einfach abgehackt plötzlich in die richtung zu laufen in die man drückt. (ähnlich wie beim kh script > wies da gemacht wird versteh ich nur mal wieder nicht...)
-> physik.. damit meine ich springen/fallen usw
-> camera.. wie halte ich die cam davon ab, durch wände zu gehen etc?

Hier der Code:


 Code:
#include <acknex.h>
#include <default.c>

////////////////////////////
// Entity's deklarieren
ENTITY* charakter;

////////////////////////////
// Variabeln 
var running;
var standing;
var walking;


////////////////////////////
function main()
{
	video_mode = 7;
	//video_screen = 1;
	level_load ("test.wmb");
	wait (2);
}

////////////////////////////
// Funktionen 
function camera_handle()
{
	VECTOR temp; //eigtl nicht mehr benötigt Q_Q
	camera.x = charakter.x + fcos (camera.pan,-200);
	camera.y = charakter.y + fsin (camera.pan,-200);
	camera.z = 150;	
	camera.tilt = -25;
	camera.pan -= mouse_force.x * 10 * time_step;
	camera.x = charakter.x + fcos (camera.pan,-200);
	camera.y = charakter.y + fsin (camera.pan,-200);
	/*vec_set(temp.x,charakter.x);  //diente zu testzwecken
  	vec_sub(temp.x,camera.x);
  	vec_to_angle(camera.pan,temp.x); */

}

function animation_handle()
{
		ent_animate(charakter, "stand", standing, ANM_CYCLE);
		standing += 5 * time_step;
}

/////////////////////////////
// Actions 

action player_move()
{
	charakter = me;
	set (charakter, SHADOW);
	while(1)
	{
		camera_handle();
		animation_handle();

		
		if(key_w == 1 && key_s == 0 && key_a == 0 && key_d == 0)
		{
			charakter.pan = camera.pan;
			c_move(charakter, vector(12 * time_step, 0, 0), nullvector, GLIDE);
		}
		
		if(key_w == 0 && key_s == 1 && key_a == 0 && key_d == 0)
		{
			charakter.pan = camera.pan - 180;
			c_move(charakter, vector(12 * time_step, 0, 0), nullvector, GLIDE);
		}
		
		if(key_w == 0 && key_s == 0 && key_a == 1 && key_d == 0)
		{
			charakter.pan = camera.pan + 90;
			c_move(charakter, vector(12 * time_step, 0, 0), nullvector, GLIDE);
		}
		
		if(key_w == 0 && key_s == 0 && key_a == 0 && key_d == 1)
		{
			charakter.pan = camera.pan - 90;
			c_move(charakter, vector(12 * time_step, 0, 0), nullvector, GLIDE);
		}

		if(key_w == 1 && key_s == 0 && key_a == 1 && key_d == 0)
		{
			charakter.pan = camera.pan + 45;
			c_move(charakter, vector(12 * time_step, 0, 0), nullvector, GLIDE);
		}
		
		if(key_w == 0 && key_s == 1 && key_a == 1 && key_d == 0)
		{
			charakter.pan = camera.pan + 135;
			c_move(charakter, vector(12 * time_step, 0, 0), nullvector, GLIDE);
		}
		
		if(key_w == 0 && key_s == 1 && key_a == 0 && key_d == 1)
		{
			charakter.pan = camera.pan - 135;
			c_move(charakter, vector(12 * time_step, 0, 0), nullvector, GLIDE);
		}
		
		if(key_w == 1 && key_s == 0 && key_a == 0 && key_d == 1)
		{
			charakter.pan = camera.pan - 45;
			c_move(charakter, vector(12 * time_step, 0, 0), nullvector, GLIDE);
		}
		wait(1);
	}
}




Iwie komm ich mir ganz schön dumm vor ^^'..

hoffe mir kann jemand helfen. weil ich bisher keine vernünftigen workshops oder tutorials gefunden habe.. bzw. es gibt zwar genug, und auch das kh movement script war sehr hilfreich soweit. aber nya.. ich kriegs nich wirklich ganz auf die reihe..
außerdem ist das kh movement script komplett in englisch, was es nicht gerad einfacher macht, und dazu werden ein paar sachen die ich nicht verstehe (wie zB die sache mit den skills) nicht erklärt..

Wie man wahrscheinich sehen kann scripte ich auch noch nicht sehr lange..
ich hab vor einiger zeit mal ein wenig C-Script geschrieben, aber bin auch nicht zu großen ergebnisen gekommen. bin noch ein ziemlicher anfänger. und alleine komm ich zur zeit nich wirklich weiter..

MfG - Roxas

Re: Kamera, Movement, Animation... Wo.OT Hilfe. [Re: Roxas] #201407
04/08/08 20:26
04/08/08 20:26
Joined: Sep 2003
Posts: 5,900
Bielefeld, Germany
Pappenheimer Offline
Senior Expert
Pappenheimer  Offline
Senior Expert

Joined: Sep 2003
Posts: 5,900
Bielefeld, Germany
In meiner Signatur ist ein Tutorial, auch in Deutsch. Es ist schon recht alt, aber vom Prinzipiellen hat sich nicht viel geändert.

Re: Kamera, Movement, Animation... Wo.OT Hilfe. [Re: Roxas] #201408
04/08/08 20:36
04/08/08 20:36
Joined: Jan 2002
Posts: 4,225
Germany / Essen
Uhrwerk Offline
Expert
Uhrwerk  Offline
Expert

Joined: Jan 2002
Posts: 4,225
Germany / Essen
 Originally Posted By: Roxas
Iwie komm ich mir ganz schön dumm vor ^^'...


Gibts aber keinen Grund zu. Das Kingdom Hearts Tutorial ist schon fortgeschrittener Stoff. Von einem kurzen Blick auf Deinen Code würde ich mal raten, dass Du noch relativ unerfahren im Programmieren bist. Grundsätzlich -würde ich sagen- gibt es zwei Möglichkeiten für dich. Entweder Du lernst Programmieren von Grund auf. Ein sehr gutes Tutorial ist zum Beispiel das Rudi Spiel von HeelX, zu finden auf http://www.christian-behrenberg.de/projects/Rudi/rudi.html (beschäftigt sich auch mit dem Thema Animation). Da wirst Du grundsätzlich in die Programmierung mit Lite-C eingeführt. Die andere Möglichkeit, wenn dich Programmierung nicht so interessiert, ist ein vorgefertigtes Skript zu nehmen, zum Beispiel die Templates oder einfach mal im Forum suchen, da sollten sich etliche finden.

Wenn Du dich selber durchbeissen willst:
Schau Dir im Handbuch die Befehle ent_animate (Animieren des Charakters) und c_trace und c_move (für die Kollisionserkennen, also Wand + Kamera Problem) an. Was genau meinst Du denn damit, dass Dein Charakter ruckelt? Das ruckartige Umdregen kriegst Du in den Griff, indem Du den pan Wert der Players langsam änderst, also time_step in einer Schleife aufaddierst / subtrahierst, bis der gewünschte Wert erreicht ist.



Always learn from history, to be sure you make the same mistakes again...
Re: Kamera, Movement, Animation... Wo.OT Hilfe. [Re: Roxas] #201421
04/08/08 21:03
04/08/08 21:03
Joined: Apr 2008
Posts: 144
Germany | Niedersachsen (Lower...
Roxas Offline OP
Member
Roxas  Offline OP
Member

Joined: Apr 2008
Posts: 144
Germany | Niedersachsen (Lower...
Wow danke für die schnellen antworten ^^

Erst einmal, Ja ich bin ein sehr unerfahrener Programmierer ^^'
Aber ich möchte es lernen und bin mir auch bewusst das ich nicht von heute auf morgen super tolle scripte schreiben werde. nur weiß ich auch, das ich mit meim rumprobiern nich wirklich weiter kommen werde. das war ein auslösender faktor dafür das ich diesen post geschrieben hab.

also das mit dem ruckeln meine ich so.
Wenn ich die kamera drehe oder ich mich bewege, fängt das modell an, was bewegt wird durch die ganzen c_move anweisungen, zu zittern irgendwie.. als wenn sich in ner rasenden aber doch sehbaren geschwindigkeit die x,y position des charakters hin und her bewegt.

und das mit dem RUDI Workshop..
Ich habs angefangen zu lesen und bin etwa bis seite 15 gekommen.
dann stand ich schon wieder vor rätseln ohne ende.
zB hab ich nicht verstanden was diese "void" anweisung soll
geschweige denn diese ganzen "sys_.." anweisungen die irgendein debug feature einbauen sollen.
ehrlihc gesagt hab ichs nicht mal ganz kapiert welcher code denn nun in welches script soll. da stand beispielsweise nur, das man sys.c und sys.h machen soll. und dann kam nen haufen code, ohne zu erklären was der bedeutet und was davon wo rein soll, außerdem ist die datei schreibgeschützt, das heißt ich konnte diesen ganzen unverständlichen code nicht einmal einfach kopieren um mich dem rest des workshops zu widmen.

Ich werd mir mal die von dir gesagten anweisungen c_trace usw zu gemüte führen.
nur den Workshop des Rudi Projekts versteh ich nicht wirklich, weil am anfang ziemlich komplizierter code kommt, den ich noch nich mal ansatzweise gesehen hab.


und
@pappenheimer: ich schau mir mal das tutorial an, danke ^^. vllt hilft mir das auch weiter.

Re: Kamera, Movement, Animation... Wo.OT Hilfe. [Re: Roxas] #201430
04/08/08 22:12
04/08/08 22:12
Joined: Jan 2002
Posts: 4,225
Germany / Essen
Uhrwerk Offline
Expert
Uhrwerk  Offline
Expert

Joined: Jan 2002
Posts: 4,225
Germany / Essen
Versuch doch mal die Zeile "standing += 5 * time_step;" durch "standing = (standing + (5 * time_step)) % 100;" zu ersetzen. Ist das besser?

"void" ist ein besonderer Datentyp. Als Typ des Rückgabewertes bedeutet er, dass die Funktion nichts zurückgibt. Also "void myFunction(int x)" kann keinen Wert zurückgeben, während "function myFunction(int x)" einen Wert vom Type var zurückgeben kann und auch dringend sollte.

Pappenheimers Tutorial ist auch sehr gut und nebenbei auch noch ausserordentlich unterhaltsam. Es ist nur leider in .wdl geschrieben und daher wirst Du ein paar Abweichungen zu Lite-C finden. Für grundsätzliche Dinge tut es auch jedes normal C Tutorial, denn Lite-C ist ja offiziell 100% kompatibel zu Ansi C. Auch die ersten paar Kapitel zu Lite-C im Handbuch sind unbedingt empfehlenswert. Natürlich macht es keinen Sinn sich alle Befehle durczulesen, zumindest aber die Kapitel "Syntax" und "Engine Objekte".


Always learn from history, to be sure you make the same mistakes again...
Re: Kamera, Movement, Animation... Wo.OT Hilfe. [Re: Roxas] #201493
04/09/08 13:38
04/09/08 13:38
Joined: Apr 2008
Posts: 144
Germany | Niedersachsen (Lower...
Roxas Offline OP
Member
Roxas  Offline OP
Member

Joined: Apr 2008
Posts: 144
Germany | Niedersachsen (Lower...
Hmmm oke Danke erstmal. Ich werd mir die Kapitel mal angucken die du erwähnt hast. Bisher habe ich nur die 24 Lite-C Workshops gemacht, viel herumprobiert und getestet, und denke das ich diese soweit begriffen hab.

Das Tutorial von Pappenheimer werd ich mir auch noch einmal genau anschauen.
Wo finde ich denn zB gute C-Script Tutorials?

Und die Sache mit dem ent_blend will bei mir immer noch nicht funktionieren.

Außerdem steh ich jetzt gerad vor nem neuen Problem.
Ich habs nu so eingerichtet, das ich je nachdem was ich drücke auf der Tastatur (WASD = Run , WASD + Shift = Walk) eine Variable mit namen "state" mit Inhalt fülle usw..

also >
 Code:
var state;
var run = 2;
var walk = 1;
var stand = 0;

und dann hab ich if-Abfragen gemacht

	if(key_w == 1 && key_s == 0 && key_a == 0 && key_d == 0)
	{
		if(key_shift == 1){state = walk;} else {state = run;}		
		charakter.pan = camera.pan;
		c_move(charakter, vector(charakter.speed_x * time_step, 0, 0), nullvector, GLIDE);
	}


und nen Animations Handling:

function animation_handle()
{
		if(state == stand)
		{
			ent_animate(charakter, "stand", standing, ANM_CYCLE);
			standing = (standing + (5 * time_step)) % 100;
		}
		
		if(state == walk)
		{
			ent_animate(charakter, "walk", walking, ANM_CYCLE);
			walking = (walking + (5 * time_step)) % 100;
		}
		
		if(state == run)
		{
			ent_animate(charakter, "run", running, ANM_CYCLE);
			running = (running + (5 * time_step)) % 100;
		}
}


Aber wenn ich mich bewege und wieder an halte, dann bleibt der Charakter in der Animation die vorher abgespielt werden sollte. (zB. Running Animation). Wie sag ich der Engine jetzt, das wenn ich nichts drücke -> state = stand; ist.

Muss ich jetzt für jeden Button der vor kommt schreiben, wenn ich nichts drücke dann is state = stand;
ala:

if(key_w == 0 | key_s == 0 | usw....){state = stand;}

oder gibts da ne andere Möglichkeit?

Greetz Roxas~


Moderated by  HeelX, Lukas, rayp, Rei_Ayanami, Superku, Tobias, TWO, VeT 

Gamestudio download | chip programmers | Zorro platform | shop | Data Protection Policy

oP group Germany GmbH | Birkenstr. 25-27 | 63549 Ronneburg / Germany | info (at) opgroup.de

Powered by UBB.threads™ PHP Forum Software 7.7.1