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
1 registered members (Grant), 999 guests, and 2 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
Page 1 of 2 1 2
brauche einen Tür coe wie in A5 #397913
03/25/12 13:20
03/25/12 13:20
Joined: Oct 2008
Posts: 341
R
ratz Offline OP
Senior Member
ratz  Offline OP
Senior Member
R

Joined: Oct 2008
Posts: 341
Hallo
ich suche eine möglichkeit eine Tür zu erstellen wie darmals
in A5

wenn man nah genug an der Tür stand und man Leertaste drückte ging sie auf und wenn man nochmals leertaste drückte ging sie zu.


... kann man sowas auch in lite c schreiben ?
oder gibs da ein einfaches sample ?

ein player code habe ich schon tongue

Re: brauche einen Tür coe wie in A5 [Re: ratz] #397914
03/25/12 13:39
03/25/12 13:39
Joined: Oct 2011
Posts: 1,082
Germany
C
Ch40zzC0d3r Offline
Serious User
Ch40zzC0d3r  Offline
Serious User
C

Joined: Oct 2011
Posts: 1,082
Germany
Hey, das ist ganz ganz einfach grin
Du machst nen c_scan im playercode. Die Tür wird gescannt und im scanevent machst du was wenn man space drückt z.B. die Tür aufklappen zu lassen.
Wenn du ein bissl code braucsht sag nur bescheid^^
Zogg grad bf3 deswegen nur ne Erklärung tongue

Re: brauche einen Tür coe wie in A5 [Re: Ch40zzC0d3r] #397918
03/25/12 17:56
03/25/12 17:56
Joined: Oct 2008
Posts: 341
R
ratz Offline OP
Senior Member
ratz  Offline OP
Senior Member
R

Joined: Oct 2008
Posts: 341
hi
ich wollte es so machen:

Code:
action player()
{
 player = me;
 
 my.skill1 = 40;
 my.skill2 = 60;
 my.skill3 = 300;
 ...
  if (key_space) 
  {
   c_scan(player.x, player.pan, vector(my.skill1, my.skill2,  
   my.skill3),IGNORE_ME);
  } 
 ...
}

/////////////////
var var_door = 0;
var drehung = 0;

action door_scan()
{	
 my.emask |= ENABLE_SCAN;
 my.event = door_event_scan;
}

function door_event_scan()
{
 if (event_type == EVENT_SCAN )
 {
  var_door = 1;	
 }
	
 while(var_door == 1)
 {
  drehung++;

   if(drehung == 90)
   {
   my.pan += 2*time_step;
   var_door = 0;
   }
   
  wait(1);
 }
}



aber irgentwie tut sich nichts
so wohl aber sie wird immer schneller tongue

Code:
var var_door = 0;
var drehung = 0;

action door_scan()
{	
 my.emask |= ENABLE_SCAN;
 my.event = door_event_scan;
}

function door_event_scan()
{
 if (event_type == EVENT_SCAN )
 {
  var_door = 1;	
 }
	
 while(var_door == 1)
 {
  my.pan += 2*time_step;  
  wait(1);
 }
}



Last edited by ratz; 03/25/12 17:56.
Re: brauche einen Tür coe wie in A5 [Re: ratz] #397919
03/25/12 18:14
03/25/12 18:14
Joined: Aug 2007
Posts: 1,922
Schweiz
Widi Offline
Serious User
Widi  Offline
Serious User

Joined: Aug 2007
Posts: 1,922
Schweiz
Du hast doch schon einmal gefragt, wie man eine Kamera um 90 Grad dreht. Dort steht die Antwort, mach dasselbe mit der Türe.

EDIT: Schau dir dein erstes Beispiel nochmals genau an. Da hast du eine while Schleife, worin du "drehung" heraufzählst. Soweit gut. Aber: Die if() Abfrage wird nur durchgeführt, wenn drehung gleich 90 ist, also nur ein Mal. Aber sie sollte solange durchgeführt werden, wie "drehung" kleiner 90 ist.

EDIT 2: setze in der Event Function der Türe am Anfang
my.event = NULL;
Sonst wird der Event möglicherweise mehrmals aufgerufen, da der scan über mehrere frames dauern kann (solange die Spache Taste gedrückt wird) was zur Folge hat, dass die Türe sich immer schneller dreht.
Am Ende setze den event wieder auf die function. Warte davor besser, bis die Space Taste losgelassen wird.

Last edited by Widi; 03/25/12 18:32.
Re: brauche einen Tür coe wie in A5 [Re: Widi] #397932
03/25/12 19:49
03/25/12 19:49
Joined: Oct 2011
Posts: 1,082
Germany
C
Ch40zzC0d3r Offline
Serious User
Ch40zzC0d3r  Offline
Serious User
C

Joined: Oct 2011
Posts: 1,082
Germany
Mach einfach ne variable die checkt wie oft du die tür geacannt hast...
Sonst startest du ja doe while immer wieder!

Re: brauche einen Tür coe wie in A5 [Re: Ch40zzC0d3r] #398004
03/26/12 12:41
03/26/12 12:41
Joined: Oct 2008
Posts: 341
R
ratz Offline OP
Senior Member
ratz  Offline OP
Senior Member
R

Joined: Oct 2008
Posts: 341
so laugh es tuts grin
Code:
action player_me()
{
 player = me;
 
 my.skill1 = 40;
 my.skill2 = 60;
 my.skill3 = 300;

 while(1)
 {
// ...
  if (key_space) 
  {
   c_scan(player.x, player.pan, vector(my.skill1, my.skill2,  
   my.skill3), IGNORE_ME);
  }
 
  wait(1);
 }
}


/////////////////////////////////////////
var door = 1;
var drehung;
var speed = 5;


action door_scan()
{	
 my.emask |= ENABLE_SCAN;
 my.event = door_event_scan; 
}

function door_event_scan()
{
 if (event_type == EVENT_SCAN && door == 1)
 {
  door = 0;
  for(drehung = 0; drehung <= 270; drehung ++)
  {
  my.pan += speed * time_step;
  wait(1); 
  }
 }    
}



jetzt muss ich noch zusehen, dass die "door" variable wieder auf 1 gesetzt wird,
das soll aber erst wieder passieren, wenn die tür auf ist sonst kann ich leertaste drücken und die tür dreht sich die ganze zeit tongue



Last edited by ratz; 03/26/12 12:42.
Re: brauche einen Tür coe wie in A5 [Re: ratz] #398007
03/26/12 13:07
03/26/12 13:07
Joined: Dec 2003
Posts: 988
Germany, Magdeburg
JoGa Offline
User
JoGa  Offline
User

Joined: Dec 2003
Posts: 988
Germany, Magdeburg
also im letzten Thread hast du mir irgendwie nur auf einem halben Ohr zugehört, so wie jetzt dem Widi.

Er hat der den Tip mit my.event = NULL; gegeben. Das ist besser als dein var door.
Die globale Variable kannst nur verwenden, wenn du nur eine TÜr im lvl hast. Mach mal mehrere in dein lvl und du wirst merken, dass nur die erste auf geht.

Lass die door-var lieber weg und machs, wie widi vorgeschlagen hat, das ist besser.

dein letzter Code, modifiziert mit widis Tip:
Code:
action door_scan()
{	
 my.emask |= ENABLE_SCAN;
 my.event = door_event_scan; 
}

function door_event_scan()
{
 if (event_type == EVENT_SCAN)
 {
  my.event = NULL;
  for(drehung = 0; drehung <= 270; drehung ++)
  {
  my.pan += speed * time_step;
  wait(1); 
  }
  my.event = door_event_scan; 
 }    
}



Re: brauche einen Tür coe wie in A5 [Re: JoGa] #398033
03/26/12 16:58
03/26/12 16:58
Joined: Oct 2008
Posts: 341
R
ratz Offline OP
Senior Member
ratz  Offline OP
Senior Member
R

Joined: Oct 2008
Posts: 341
so ich hab jetzt nochmal alles verändert , nur das ich jetzt wieder leertaste gedrückt halten kann und die tür sich solange dreht bis ich loslasse...
genau so wie die drehung .. mal geht sie bis 90 grad, mal nur bis 75... -> deswegen hab ich erstmal wieder "var door" verwendet und siehe da ? - jetzt geht die tür wieder richtig auf
ABER
ich kann auch irgendwie nicht durch den durchgang laufen, wo die tür ist
als were da eine kollision. da ist aber nichts !!


evtl mache ich ja was falsch:

level,player,tür

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

///////////////////////////////

function door_event_scan();

///////////////////////////////

function main()
{
 level_load("map01.WMB");
}

///////////////////////////////
var walk_percentage;

action player_me()
{
 player = me;
 
 my.skill1 = 40;
 my.skill2 = 60;
 my.skill3 = 300;

 while(1)
 {
  camera.pan = my.pan;
  camera.x = my.x - 50 * cos(my.pan);
  camera.y = my.y - 50 * sin(my.pan);
  camera.z = my.z + 50;
  camera.tilt = -15;
  camera.roll = 0;

  my.pan += 3 * (key_a - key_d) * time_step; 
  c_move (my, vector(15 * (key_w - key_s) * time_step, 0, 0), nullvector, IGNORE_ME | GLIDE);   
  
  if (key_w)
  {
  ent_animate(my,"walk",walk_percentage, ANM_CYCLE); // "walk" Animationsloop
  walk_percentage += 6 * time_step; // 3 = Animationsgeschwindigkeit für"walk"
  }
  
  if (key_s)
  {
  ent_animate(my,"walk",walk_percentage, ANM_CYCLE); // "walk" Animationsloop
  walk_percentage -= 6 * time_step; // 3 = Animationsgeschwindigkeit für"walk"
  }
 
  
  if (key_space) // press "1" to start scanning around the player
  {
   c_scan(player.x, player.pan, vector(my.skill1, my.skill2, my.skill3), IGNORE_ME| GLIDE);
  }
 
  wait(1);
 }
}


/////////////////////////////////////////

var door = 1;
var drehung;
var speed = 5;


action door_scan()
{	
 my.emask |= ENABLE_SCAN;
 my.event = door_event_scan; 
}

function door_event_scan()
{
 if (event_type == EVENT_SCAN && door == 1)
 {
  door = 0;
  for(drehung = 0; drehung <= 90; drehung ++)
  {
   my.pan += drehung * time_step;
   wait(1); 
  } 
 }
}



und hier nochmals mein sampel level...
http://www.file-upload.net/download-4214764/sample.rar.html

könntet ihr mal nen blcik drüber schmeissen ?

die tür hab ich als WMB entity gespeichert, versetzt so das sie sich richtig drehen soll und textur drüber gezogen ...

Last edited by ratz; 03/26/12 17:10.
Re: brauche einen Tür coe wie in A5 [Re: ratz] #398034
03/26/12 17:04
03/26/12 17:04
Joined: Aug 2007
Posts: 1,922
Schweiz
Widi Offline
Serious User
Widi  Offline
Serious User

Joined: Aug 2007
Posts: 1,922
Schweiz
Quote:

genau so wie die drehung .. mal geht sie bis 90 grad, mal nur bis 75...

Was sollen wir dir noch helfen, wenn du die Antworten nicht liest oder anwendest:
siehe hier

Da habe ich dir schon eine Lösung für dieses Problem gepostet. mad

Quote:

ich kann auch irgendwie nicht durch den durchgang laufen, wo die tür ist
als were da eine kollision. da ist aber nichts !!

drück mal F11, dann solltest du einen blauen Rahmen (Kollisionsbox) sehen. Wenn die bei offener türe immer noch den Weg versperrt, nutze c_setminmax um die Box anzupassen.


Last edited by Widi; 03/26/12 17:11.
Re: brauche einen Tür coe wie in A5 [Re: Widi] #398035
03/26/12 17:11
03/26/12 17:11
Joined: Oct 2008
Posts: 341
R
ratz Offline OP
Senior Member
ratz  Offline OP
Senior Member
R

Joined: Oct 2008
Posts: 341
bitte post richtig lesen wink

Page 1 of 2 1 2

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