Tacho
Wie programmiere ich einen Tacho, der sich an die Geschwindigkeit anpasst.Ich habe berreits ein Bild von einem Tacho bzw. nur die Drehscheibe.Aber ich brauche noch einen Zeiger der sich bewegt und sich auf die geschwindigkeit anpasst.
Gruss
WR2-Freak
Posted By: Anonymous
Re: Tacho - 02/26/10 14:38
Zwei PANELS.
Unteres PANEL ist die "Drehscheibe", oberes PANEL ein Zeiger.
Mitte des oberen PANELs mit center_x, center_y festlegen und flag = TRANSLUCENT (schwarz). Das obere PANEL drehen mit dem Attribut angle (ja nach Geschwindigkeit z.b. OPAN.angle=260-(geschwindigkeit*0.4))
Posted By: Robso661
Re: Tacho - 02/26/10 14:51
Posted By: Wr2_freak
Re: Tacho - 02/26/10 15:04
PANEL* Tachozeiger =
{
center_x = 700;
center_y = 340;
bmap = "Zeiger.tga";
flags = TRANSLUCENT;
}
RICHTIG SO?
Das mit dem "angle" musst du mir bitte machen, is kompliziert.
Ähm... Es gibt ein Panel object names "needle" - gucke dafür bitte ins manual, es ist genau das was du suchst
Posted By: Wr2_freak
Re: Tacho - 02/26/10 15:28
aha.was soll mir das nützen?
der tut genau das was du willst -> schau doch einfach ins manual ?!
Posted By: Anonymous
Re: Tacho - 02/26/10 16:22
...und es war nicht TRANSLUCENT sodern OVERLAY (sorry)
Posted By: Wr2_freak
Re: Tacho - 02/27/10 14:54
eS FUNZT NICHT:aPIEL LADET ABER ES PASSIERT NICHTS!
VARIABELE:
pANEL:
PANEL* Tachozeiger =
{
needle(700,340,"Zeiger.tga",700,340,180,0,100,my_var);
flags = OVERLAY ;
}
sTEUERUNG:
if (key_cuu && speed<80) // wenn die Leertaste gedrückt und speed kleiner als 10 ist
speed+=10*time_step; // erhöhe Speed
else // sonst
if(speed>0) //solange speed grösser als null ist
speed -= 3 * time_step; // vermindere speed
c_move (my, vector(speed*time_step, 0, my_var), nullvector, GLIDE);
Posted By: Superku
Re: Tacho - 02/27/10 15:01
Das liegt wohl daran, dass mit my_var nichts geschieht?
Posted By: Wr2_freak
Re: Tacho - 02/27/10 15:05
Und wie beheb ich das problem
Posted By: Superku
Re: Tacho - 02/27/10 15:09
Indem du dich auf deinen Arsch setzt und das Problem bereinigst.
Posted By: Anonymous
Re: Tacho - 02/27/10 15:14
Indem du dich auf deinen Arsch setzt und das Problem bereinigst.
Heyhey! Was sind denn das für Töne?
@Wr2_freak: VISIBLE muss noch für die flags gesetzt werden, sonst siehst Du nichts.
my_var musst Du auf den "speed" setzen (evt. mit einem Faktor).
z.B.: my_var=speed*30;
(in der action)
Posted By: Wr2_freak
Re: Tacho - 02/27/10 15:25
Jetzt steht sartup failure da.
action car_1()
{
//////////////////////////////////
while(1)
{
// KAMERA:
vec_set(camera.x,vector(-200,0,60));
vec_rotate(camera.x,camera.pan);
vec_lerp(camera.pan,camera.pan,my.pan,0.2);
vec_add(camera.x,my.x);
//////////////
// move the car using relative_speed
if (key_a)
my.pan += 5*time_step; // increase the pan angle of the car
if (key_d)
my.pan -= 5*time_step; // decrease the pan angle of the car
// move the car using relative_speed
if (key_w && speed<80) // wenn die Leertaste gedrückt und speed kleiner als 10 ist
speed+=10*time_step; // erhöhe Speed
else // sonst
if(speed>0) //solange speed grösser als null ist
speed -= 3 * time_step; // vermindere speed
c_move (my, vector(speed*time_step, 0, 0), nullvector, GLIDE); // bewege das Auto abhängig von speed
////// Rückwärts-Difinition
if (key_s ) // press and hold the "Space" key to move the car
c_move (my, vector(-20*time_step, 0, 0), nullvector, GLIDE);
if (key_cul)
my.pan += 5*time_step; // increase the pan angle of the car
if (key_cur)
my.pan -= 5*time_step; // decrease the pan angle of the car
// move the car using relative_speed
if (key_cuu && speed<80) // wenn die Leertaste gedrückt und speed kleiner als 10 ist
speed+=10*time_step; // erhöhe Speed
else // sonst
if(speed>0) //solange speed grösser als null ist
speed -= 3 * time_step; // vermindere speed
c_move (my, vector(speed*time_step, 0, 0 ), nullvector, GLIDE); // bewege das Auto abhängig von speed
////// Rückwärts-Difinition
if (key_cud)
c_move (my, vector(-20*time_step, 0, 0), nullvector, GLIDE);
if (key_n) // press and hold the "Space" key to move the car
c_move (my, vector(50*time_step, 0, 0), nullvector, GLIDE);
wait(1);
my_var=speed*80;
}
}
PANEL* Tachozeiger =
{
center_x = 1;
center_y = 1;
needle(700,340,"Zeiger.tga",700,340,180,0,100,my_var);
flags = VISIBLE ;
}
Posted By: Superku
Re: Tacho - 02/27/10 15:28
Indem du dich auf deinen Arsch setzt und das Problem bereinigst.
Heyhey! Was sind denn das für Töne?
Ja ist doch wahr. Da wird ihm mehrfach nett und ausreichend geholfen und seine Antworten sind:
Das mit dem "angle" musst du mir bitte machen, is kompliziert.
aha.was soll mir das nützen?
Und wie beheb ich das problem
NULL Eigeninitiative.
Posted By: Wr2_freak
Re: Tacho - 02/27/10 15:34
Ich hab das Programm seit zwei Wochen. Was erwartest du von mir? Einen Super-Programmierer? Wenn du mir nicht helfen willst dann schreib einfach nicht mehr in den Thread rein.
Posted By: Superku
Re: Tacho - 02/27/10 15:43
Ob ich einen Super-Programmierer erwarte? Absolut nicht, habe ich nie gesagt.
Ähm... Es gibt ein Panel object names "needle" -
gucke dafür bitte ins manual, es ist genau das was du suchst aha.was soll mir das nützen?
Wenn man selbst programmieren (lernen) will, sollte man sich auch selbst mit den Dingen beschäftigen und es nicht andere Leute machen lassen, selbst dann, wenn man (noch) kaum Ahnung hat. Sonst lernt man nicht.
Das soll nicht heißen, dass man keine Fragen stellen darf, es muss aber Eigeninitiative vorhanden sein.
Posted By: Wr2_freak
Re: Tacho - 02/27/10 15:46
aber ich hab es ja anlein eingebaut.aber ich will es nur noch zum funzen bringen!
Posted By: Superku
Re: Tacho - 02/27/10 15:52
Ok.
Was steht denn außer startup failure noch da? Sprich was genau ist der Fehler?
Posted By: Wr2_freak
Re: Tacho - 02/27/10 15:53
Schön dass wir uns wieder vertragen
Fehler:
Error in 'MAIN' line 91: 'my_var' undeclared identifier
< c_move (my, vector(speed*time_step, 0, 0 ), my_var, GLIDE); // bewege das Auto abhängig von speed
>
Posted By: Superku
Re: Tacho - 02/27/10 15:54
Hast du die Zeile
var my_var=0;
gelöscht?
Wenn nicht, gut, aber sie muss vor (!) deiner Auto-action stehen.
Posted By: Wr2_freak
Re: Tacho - 02/27/10 15:55
Aber das hab ich schon wieder rückgängig gemacht und es funzt immer noch nicht.K.A warum?
Posted By: Wr2_freak
Re: Tacho - 02/27/10 15:57
dAS gAME besteht aus drei scripts!
Code:#include <acknex.h>
#include <windows.h>
#include <default.c>
#include "Menue.c"
#include "Steuerung.c"
//////////////////////
Aber das sollte keine rolle spielen.
Posted By: Superku
Re: Tacho - 02/27/10 15:58
Ach, hier ist auch noch etwas:
c_move (my, vector(speed*time_step, 0, 0 ), my_var, GLIDE);
Guck dir mal die Funktion an (Manual), der dritte Parameter ist auch ein Vektor, du gibst aber eine einfache Variable an. Schreibe besser
c_move (my, vector(speed*time_step, 0, 0 ), nullvector, GLIDE);.
Und bitte den edit-Knopf verwenden, um double posts zu vermeiden und so die Übersichtlichkeit zu wahren.
Posted By: Wr2_freak
Re: Tacho - 02/27/10 15:59
Immer noch nicht!
///////////////////////////////
#include <acknex.h>
#include <default.c>
///////////////////////////////
var speed=0;
function main()
{
fps_max = 240;
max_entities = 1500;
level_load ("Test.wmb");
}
PANEL* Tacho =
{
pos_x = 600;
pos_y = 400;
bmap = "Tacho.tga";
flags = OUTLINE | OVERLAY ;
}
PANEL* Tachozeiger =
{
center_x = 1;
center_y = 1;
needle(700,340,"Zeiger.tga",700,340,180,0,100,my_var);
flags = VISIBLE ;
}
var my_var=0;
action car_1()
{
//////////////////////////////////
while(1)
{
// KAMERA:
vec_set(camera.x,vector(-200,0,60));
vec_rotate(camera.x,camera.pan);
vec_lerp(camera.pan,camera.pan,my.pan,0.2);
vec_add(camera.x,my.x);
//////////////
// move the car using relative_speed
if (key_a)
my.pan += 5*time_step; // increase the pan angle of the car
if (key_d)
my.pan -= 5*time_step; // decrease the pan angle of the car
// move the car using relative_speed
if (key_w && speed<80) // wenn die Leertaste gedrückt und speed kleiner als 10 ist
speed+=10*time_step; // erhöhe Speed
else // sonst
if(speed>0) //solange speed grösser als null ist
speed -= 3 * time_step; // vermindere speed
c_move (my, vector(speed*time_step, 0, 0), nullvector, GLIDE); // bewege das Auto abhängig von speed
////// Rückwärts-Difinition
if (key_s ) // press and hold the "Space" key to move the car
c_move (my, vector(-20*time_step, 0, 0), nullvector, GLIDE);
if (key_cul)
my.pan += 5*time_step; // increase the pan angle of the car
if (key_cur)
my.pan -= 5*time_step; // decrease the pan angle of the car
// move the car using relative_speed
if (key_cuu && speed<80) // wenn die Leertaste gedrückt und speed kleiner als 10 ist
speed+=10*time_step; // erhöhe Speed
else // sonst
if(speed>0) //solange speed grösser als null ist
speed -= 3 * time_step; // vermindere speed
c_move (my, vector(speed*time_step, 0, 0 ), nullvector, GLIDE);.// bewege das Auto abhängig von speed
////// Rückwärts-Difinition
if (key_cud)
c_move (my, vector(-20*time_step, 0, 0), nullvector, GLIDE);
if (key_n) // press and hold the "Space" key to move the car
c_move (my, vector(50*time_step, 0, 0), nullvector, GLIDE);
wait(1);
my_var=speed*80;
}
}
Posted By: Superku
Re: Tacho - 02/27/10 16:08
if(speed>0) //solange speed grösser als null ist
speed -= 3 * time_step; // vermindere speed
c_move (my, vector(speed*time_step, 0, 0 ), nullvector, GLIDE);.// bewege das Auto abhängig von speed
////// Rückwärts-Difinition
Hinter c_move ist nach dem Semikolon ein Punkt zu viel.
Posted By: Wr2_freak
Re: Tacho - 02/27/10 16:19
funzt wieder nicht. k.A
Posted By: Superku
Re: Tacho - 02/27/10 16:21
.................... Was "funzt" nicht?
Posted By: Wr2_freak
Re: Tacho - 02/27/10 16:24
sol ich dir mal das ganze projekt schicken? Per e-mail oder so
Posted By: Superku
Re: Tacho - 02/27/10 16:27
Nope. Problem schildern!
Posted By: Wr2_freak
Re: Tacho - 02/27/10 16:31
gibt mir deine mail.Ich schick dir das projekt
Posted By: Superku
Re: Tacho - 02/27/10 16:33
Was habe ich gerade geschrieben ????
Posted By: Wr2_freak
Re: Tacho - 02/27/10 16:33
Error in 'steuerung.c' line 103: 'my_var' undeclared identifier
< my_var=speed*80;
>
Posted By: Superku
Re: Tacho - 02/27/10 16:34
Ist doch eigentlich klar, was dort falsch ist. Entweder du deklarierst my_var vor dem include "steuerung.c" oder du deklarierst my_var in dieser Datei vor besagter Funktion.
Posted By: Wr2_freak
Re: Tacho - 02/27/10 16:37
SO: ///////////////////////////////
#include <acknex.h>
#include <default.c>
///////////////////////////////
var speed=0;
function main()
{
fps_max = 240;
max_entities = 1500;
level_load ("Test.wmb");
}
PANEL* Tacho =
{
pos_x = 600;
pos_y = 400;
bmap = "Tacho.tga";
flags = OUTLINE | OVERLAY ;
}
PANEL* Tachozeiger =
{
center_x = 1;
center_y = 1;
needle(700,340,"Zeiger.tga",700,340,180,0,100,my_var);
flags = VISIBLE ;
}
my_var = 0;
my_var=speed*80;
action car_1()
{
//////////////////////////////////
while(1)
{
// KAMERA:
vec_set(camera.x,vector(-200,0,60));
vec_rotate(camera.x,camera.pan);
vec_lerp(camera.pan,camera.pan,my.pan,0.2);
vec_add(camera.x,my.x);
//////////////
// move the car using relative_speed
if (key_a)
my.pan += 5*time_step; // increase the pan angle of the car
if (key_d)
my.pan -= 5*time_step; // decrease the pan angle of the car
// move the car using relative_speed
if (key_w && speed<80) // wenn die Leertaste gedrückt und speed kleiner als 10 ist
speed+=10*time_step; // erhöhe Speed
else // sonst
if(speed>0) //solange speed grösser als null ist
speed -= 3 * time_step; // vermindere speed
c_move (my, vector(speed*time_step, 0, 0), nullvector, GLIDE); // bewege das Auto abhängig von speed
////// Rückwärts-Difinition
if (key_s ) // press and hold the "Space" key to move the car
c_move (my, vector(-20*time_step, 0, 0), nullvector, GLIDE);
if (key_cul)
my.pan += 5*time_step; // increase the pan angle of the car
if (key_cur)
my.pan -= 5*time_step; // decrease the pan angle of the car
// move the car using relative_speed
if (key_cuu && speed<80) // wenn die Leertaste gedrückt und speed kleiner als 10 ist
speed+=10*time_step; // erhöhe Speed
else // sonst
if(speed>0) //solange speed grösser als null ist
speed -= 3 * time_step; // vermindere speed
c_move (my, vector(speed*time_step, 0, 0 ), nullvector, GLIDE); // bewege das Auto abhängig von speed
////// Rückwärts-Difinition
if (key_cud)
c_move (my, vector(-20*time_step, 0, 0), nullvector, GLIDE);
if (key_n) // press and hold the "Space" key to move the car
c_move (my, vector(50*time_step, 0, 0), nullvector, GLIDE);
wait(1);
}
}
Posted By: Wr2_freak
Re: Tacho - 02/27/10 16:37
funzt aber immer nu ned
ich frage mich ob manche menschen einfach andere ignorieren...
du musst my_var deklarieren bevor du sie in den panels benutzt...
Posted By: Wr2_freak
Re: Tacho - 02/27/10 16:43
was heißt : deklarieren?
Posted By: Superku
Re: Tacho - 02/27/10 16:45
Woher soll das Programm wissen, ob my_var eine Variable, eine Figur, ein Haus oder sonst etwas ist? Du musst es dem Programm explizit sagen, indem du den Typ davor schreibst:
var my_var;
Peng ist my_var deklariert.
Und was soll
my_var=speed*80;
außerhalb einer Funktion?! Arbeite lieber ein paar Tutorials durch, bevor du weiter an deinem Spiel arbeitest.
Posted By: Widi
Re: Tacho - 02/27/10 17:19
Setzt my_var = 0; ganz an den Anfang deines Scripts (gleich hinter var speed = 0;)
Deklarieren heisst: Du musst jedes Objekt (var, BMAP*, PANEL* STRING* usw) am Anfang oder zumindest bevor es zum ersten Mal gebraucht wird "benennen".
var xyz = 0;
BMAP* xyz_bmap ="dein_bild.tga";
usw....
sonst weiss die Engine ja nicht, was my_var ist.
Und wie Superku schon sagte: Arbeite das Tutorial durch, ist ein MUSS für Anfänger.
Nochwas: Immer die Fehlermeldung mitposten, so können lästige Rückfragen vermieden werden.
Posted By: Wr2_freak
Re: Tacho - 02/27/10 20:28
Code funzt jetzt.Aber tacho funzt nicht.ALso weder Tachozeiger noch bewegung.
Posted By: Wr2_freak
Re: Tacho - 02/27/10 20:31
Das Projekt ist in 3 Teile aufgespaltet
Steuerung
///////////////////////////////
#include <acknex.h>
#include <default.c>
///////////////////////////////
var speed=0;
var my_var = 0;
my_var = speed;
function main()
{
fps_max = 240;
max_entities = 1500;
level_load ("Test.wmb");
}
action car_1()
{
//////////////////////////////////
while(1)
{
// KAMERA:
vec_set(camera.x,vector(-200,0,60));
vec_rotate(camera.x,camera.pan);
vec_lerp(camera.pan,camera.pan,my.pan,0.2);
vec_add(camera.x,my.x);
//////////////
// move the car using relative_speed
if (key_a)
my.pan += 5*time_step; // increase the pan angle of the car
if (key_d)
my.pan -= 5*time_step; // decrease the pan angle of the car
// move the car using relative_speed
if (key_w && speed<80) // wenn die Leertaste gedrückt und speed kleiner als 10 ist
speed+=10*time_step; // erhöhe Speed
else // sonst
if(speed>0) //solange speed grösser als null ist
speed -= 3 * time_step; // vermindere speed
c_move (my, vector(speed*time_step, 0, 0), nullvector, GLIDE); // bewege das Auto abhängig von speed
////// Rückwärts-Difinition
if (key_s ) // press and hold the "Space" key to move the car
c_move (my, vector(-20*time_step, 0, 0), nullvector, GLIDE);
if (key_cul)
my.pan += 5*time_step; // increase the pan angle of the car
if (key_cur)
my.pan -= 5*time_step; // decrease the pan angle of the car
// move the car using relative_speed
if (key_cuu && speed<80) // wenn die Leertaste gedrückt und speed kleiner als 10 ist
speed+=10*time_step; // erhöhe Speed
else // sonst
if(speed>0) //solange speed grösser als null ist
speed -= 3 * time_step; // vermindere speed
c_move (my, vector(speed*time_step, 0, 0 ), nullvector, GLIDE); // bewege das Auto abhängig von speed
////// Rückwärts-Difinition
if (key_cud)
c_move (my, vector(-20*time_step, 0, 0), nullvector, GLIDE);
if (key_n) // press and hold the "Space" key to move the car
c_move (my, vector(50*time_step, 0, 0), nullvector, GLIDE);
wait(1);
}
}
Menü
function quit_program()
{
while (key_any) { wait (1); }
sys_exit(NULL);
}
STRING* back_str = "Spielstand zurücksetzen ? ";
TEXT* sicher_txt =
{
pos_x = 100;
pos_y = 85;
string (back_str);
flags = OUTLINE ;
font = Arial#17;
}
PANEL* Menu =
{
button(30,100, "Newgame2.jpg","Newgame1.jpg", "Newgame1.jpg", load_level , NULL, NULL);
button(150,400, "exit2.jpg","exit1.jpg", "exit1.jpg", quit_program , NULL, NULL);
button(120,325, "Credits2.jpg","Credits1.jpg", "Credits1.jpg", playVideo2 , NULL, NULL);
button(90,250, "options2.jpg","options1.jpg", "options1.jpg", show_option , NULL, NULL);
button(60,175, "Load2.jpg","Load1.jpg", "Load1.jpg", load_error , NULL, NULL);
flags = OUTLINE ;
}
PANEL* Main6 =
{
pos_x = 400;
pos_y = 130;
bmap = "Main3.jpg";
flags = OUTLINE ;
}
PANEL* Demo =
{
pos_x = 450;
pos_y = 50;
bmap = "Demo.tga";
flags = OUTLINE | OVERLAY ;
}
PANEL* back =
{
button(280,70, "losch2.jpg","losch1.jpg", "losch1.jpg", delete_file , NULL , NULL);
flags = OUTLINE ;
}
PANEL* test =
{
button(280,530, "Speichern2.jpg","Speichern1.jpg", "Speichern1.jpg", show_hauptmenue2 , NULL , NULL);
flags = OUTLINE ;
}
PANEL* Main1 =
{
pos_x = 400;
pos_y = 130;
bmap = "Main3.jpg";
flags = OUTLINE ;
}
function show_hauptmenue2()
{
// Panels unsichtbar machen:
reset (test, SHOW);
reset (back, SHOW);
reset (sicher_txt, SHOW );
// Panels sichtbar machen:
set (Menu, SHOW );
set (Main1, SHOW );
set (Demo, SHOW );
}
PANEL* Tacho =
{
pos_x = 600;
pos_y = 400;
bmap = "Tacho.tga";
flags = OUTLINE | OVERLAY ;
}
PANEL* Tachozeiger =
{
center_x = 1;
center_y = 1;
needle(700,340,"Zeiger.tga",700,340,180,0,100,my_var);
flags = VISIBLE | SHOW ;
}
function exit_level()
{
level_load(NULL);
reset (Tacho , SHOW);
reset (Tachozeiger , SHOW);
set (Menu , SHOW);
set (Main1 , SHOW);
set (Demo, SHOW );
mouse_mode = 2;
}
function load_level()
{
level_load ("Test.wmb");
set (Tacho , SHOW);
set (Tachozeiger , SHOW);
reset (Menu , SHOW);
reset (Main1 , SHOW);
reset (Demo , SHOW );
mouse_mode = 0;
}
function playVideo2()
{
media_play("Credits.wmv",0,100);
}
function show_option()
{
reset (Menu, SHOW );
reset (Main1, SHOW );
reset (Demo, SHOW );
set (test, SHOW );
set (back, SHOW);
set (sicher_txt, SHOW );
}
function delete_file()
{
file_delete ("Test.SAV");
}
PANEL* error1 =
{
button(-225,180, "error1.jpg","error1.jpg", "error1.jpg", NULL , NULL, NULL);
flags = OUTLINE ;
}
function load_error()
{
set (error1, SHOW);
wait(300);
reset (error1, SHOW);
}
Vorspann Hauptcode
Code:#include <acknex.h>
#include <windows.h>
#include <default.c>
#include "Menue.c"
#include "Steuerung.c"
//////////////////////
BMAP* Maus = "Maus.tga";
function playVideo()
{
media_play("Vorspann.wmv",0,100);
}
function main()
{
video_screen = 2;
max_entities = 1500;
//level_load();
on_h = exit_level;
mouse_map = Maus;
mouse_mode = 2;
while (1)
{
mouse_pos.x = mouse_cursor.x;
mouse_pos.y = mouse_cursor.y;
wait (1);
sky_color.blue = 0;
sky_color.green = 0;
sky_color.red = 0;
}
}
PANEL* Main6 =
{
pos_x = 220;
pos_y = 100;
bmap = "Main3.jpg";
flags = SHOW | OUTLINE ;
}
PANEL* Link=
{
button(310,530, "Newgame2.jpg","Newgame1.jpg", "Newgame1.jpg", show_hauptmenue , NULL, NULL);
flags = SHOW | OUTLINE;
}
function show_hauptmenue()
{
// Panels unsichtbar machen:
reset (Link, SHOW);
reset (Main6, SHOW);
// Panels sichtbar machen:
set (Menu, SHOW );
set (Main1, SHOW );
set (Demo, SHOW );
}
Posted By: Widi
Re: Tacho - 02/27/10 21:06
Setze den layer der Panels.
Panels mit höherem layer werden VOR denen mit niedrigem layer angezeigt. Die Nadel muss einen höheren layer (z.B layer = 2;) haben als der Tacho (z.B layer = 1;)
EDIT: Habe gerade nachgeschaut, wird auch im TUTORIAL erklärt. (Auch auf deutsch !!!!)
Posted By: Superku
Re: Tacho - 02/27/10 21:08
Arbeite ein/das Tutorial durch, dauert nicht sonderlich lange, denke ich.
Guck dir mal folgende Zeilen an und finde heraus, dass my_var = speed; nichts anderes ist als my_var = 0;, ganz egal, was speed nach Ausführung dieser Zeile für einen Wert annimmt.
var speed=0;
var my_var = 0;
my_var = speed;
Posted By: Wr2_freak
Re: Tacho - 02/27/10 21:13
Hab ich:
PANEL* Tachozeiger =
{
center_x = 1;
center_y = 1;
needle(700,340,"Zeiger2.tga",700,340,180,0,100,my_var);
layer = 1;
flags = VISIBLE | SHOW ;
}
Seh ihn aber immer noch nciht
Posted By: Widi
Re: Tacho - 02/27/10 21:18
LIes genauer!!! layer = 2 für den Zeiger und layer = 1 für den Tacho (layer =1 ist standard für Panels, also nützt layer = 1 bei deinem Zeiger nichts)
Posted By: Wr2_freak
Re: Tacho - 02/27/10 21:21
Das gibts doch nciht es zeigt keinen zeiger an!K.A Ich habe es auch mal mit der positon: 1,1 (x,y) versucht.Auch nichts!
Posted By: Widi
Re: Tacho - 02/27/10 21:29
Wie gross ist denn dein Zeiger? Sehe gerade dass der Drehpunkt bei 700,340 liegt. Der Zeiger muss ja den ganzen Bildschirm ausfüllen (grösser als 700 * 340). Falls nicht, verringere die Werte auf mal die Hälfte der Grösse des Bildes.
EDIT: Sonst versuche einen normalen Panel mit dem Zeigerbild (ohne needle) darzustellen, um zu sehen ob das Bild überhaupt dargestellt wird.
Posted By: Wr2_freak
Re: Tacho - 02/27/10 21:30
nicht sehr groß!Aber wenn ich ih auf 1,1 tu mach es auch nichts.er ist dann auch nicht da
Posted By: Wr2_freak
Re: Tacho - 02/27/10 21:35
es wird nun angezegigt.ABer der zeiger bewegt sich keinen milimeter
PANEL* Tachozeiger =
{
center_x = 100;
center_y = 100;
needle(100,100,"Zeiger.tga",100,100,180,0,100,my_var);
layer = 2;
flags = VISIBLE ;
}
var speed=0;
var my_var = 0;
my_var = speed;
action car_1()
{
//////////////////////////////////
while(1)
{
// KAMERA:
vec_set(camera.x,vector(-200,0,60));
vec_rotate(camera.x,camera.pan);
vec_lerp(camera.pan,camera.pan,my.pan,0.2);
vec_add(camera.x,my.x);
//////////////
// move the car using relative_speed
if (key_a)
my.pan += 5*time_step; // increase the pan angle of the car
if (key_d)
my.pan -= 5*time_step; // decrease the pan angle of the car
// move the car using relative_speed
if (key_w && speed<80) // wenn die Leertaste gedrückt und speed kleiner als 10 ist
speed+=10*time_step; // erhöhe Speed
else // sonst
if(speed>0) //solange speed grösser als null ist
speed -= 3 * time_step; // vermindere speed
c_move (my, vector(speed*time_step, 0, 0), nullvector, GLIDE); // bewege das Auto abhängig von speed
////// Rückwärts-Difinition
if (key_s ) // press and hold the "Space" key to move the car
c_move (my, vector(-20*time_step, 0, 0), nullvector, GLIDE);
if (key_cul)
my.pan += 5*time_step; // increase the pan angle of the car
if (key_cur)
my.pan -= 5*time_step; // decrease the pan angle of the car
// move the car using relative_speed
if (key_cuu && speed<80) // wenn die Leertaste gedrückt und speed kleiner als 10 ist
speed+=10*time_step; // erhöhe Speed
else // sonst
if(speed>0) //solange speed grösser als null ist
speed -= 3 * time_step; // vermindere speed
c_move (my, vector(speed*time_step, 0, 0 ), nullvector, GLIDE); // bewege das Auto abhängig von speed
////// Rückwärts-Difinition
if (key_cud)
c_move (my, vector(-20*time_step, 0, 0), nullvector, GLIDE);
if (key_n) // press and hold the "Space" key to move the car
c_move (my, vector(50*time_step, 0, 0), nullvector, GLIDE);
wait(1);
}
}
welche GS version nutzt du eigentlich?
VISIBLE ist alt für SHOW !
und das mit my_var = speed muss in einer while(1)...wait(1); loop gesetzt werden!
Posted By: Wr2_freak
Re: Tacho - 02/28/10 18:08
Kannst du mir mal ein beispiel geben.
Noch mal ein aufruf an alle.Ich habe echt alles versucht. der tacho geht nicht.Und ich würde mich wirklich sehr freuen wenn mir jemand helfen könnte.Wenn ich das schaffe werde ich nie wieder eine Farge in diesem Forum stellen!Das verspreche ich!
Posted By: Anonymous
Re: Tacho - 02/28/10 18:41
Ich baue Dir ein Beispiel.
Aber nur, wenn Du Dich vom Fragestellen nicht distanzierst.
Ein Forum ist schließlich zum Fragen da...
Posted By: luckyxxl
Re: Tacho - 02/28/10 18:47
EDIT: Alles Quatsch was ich gesagt hab. Sorry!
Posted By: Anonymous
Re: Tacho - 02/28/10 19:56
klick auf das Bild für die Demo...
// Die Werte stimmen nicht genau, aber Tachos stimmen eh nicht
Posted By: Wr2_freak
Re: Tacho - 03/01/10 15:41
Wow!Danke!Hab ihn eingebaut und...
...
...
ER FUNKTIONIERT!!!!!
Juhu!
Vielen Dank an alle!
Posted By: atari98
Re: Tacho - 03/02/10 14:40
Herzlichen Glückwunsch
Posted By: luckyxxl
Re: Tacho - 03/02/10 17:23
super dass es geklappt hat. Sorry für meinen saublöden und falschen Post
Posted By: Wr2_freak
Re: Tacho - 03/03/10 13:23
super dass es geklappt hat. Sorry für meinen saublöden und falschen Post
Schon in Ordnung!