|
JLI Spieleprogrammierung
|
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
underberg JLI'ler
Anmeldedatum: 11.01.2003 Beiträge: 153
Medaillen: Keine
|
Verfasst am: 30.05.2003, 12:00 Titel: float -> Int Chaos... |
|
|
So also...
Ich benutze folgende ´Variablen:
Code: |
#define FRAME_RATE 50
#define V_MAX 28
#define V_MAX 28
#define Faktor_B 10
#define Fallbeschl 25
#define Beschl 50
int Ship_X=100;
int Ship_Y=100;
float Ship_temp_X=100;
float Ship_temp_Y=100;
float V_Up=0;
float V_Right=0;
|
Und folgenden Code:
Code: |
V_Right=V_Right+(Beschl/FRAME_RATE);
Ship_temp_X=Ship_temp_X+V_Right;
Ship_X=Ship_temp_X;
|
Klappt soweit Wunderbar...
Aber: Sobald die Framerate höher ist als die Beschleunigung bleibt Ship_X immer konstant... Wieso?
Theoretisch müsste Ship_temp_X doch immer größer werden, und so mit immer dann wenn die Einerstelle größer wird auch Ship_X...
Geht aber nicht...
Wieso? |
|
Nach oben |
|
|
The Lord of Programming Living Legend
Alter: 37 Anmeldedatum: 14.03.2003 Beiträge: 3122
Medaillen: Keine
|
Verfasst am: 30.05.2003, 12:25 Titel: |
|
|
Wenn du eine Zahl duch eine größere Zahl teilst, kommt immer etwas mit 0,x raus. Und wenn du diese floatvariable dann einer Int zuweist, dann wird daraus automatisch eine Ganzzahl gemacht. _________________ www.visualgamesentertainment.net
Current projects: RDTDC(1), JLI-Vor-Projekt, Tetris(-Tutorial), JLI-Format
(1) Realtime Developer Testing and Debugging Console
Anschlag, Anleitung zum Atombombenbau, Sprengkörper...
Hilf Schäuble! Damit er auch was findet... |
|
Nach oben |
|
|
underberg JLI'ler
Anmeldedatum: 11.01.2003 Beiträge: 153
Medaillen: Keine
|
Verfasst am: 30.05.2003, 12:31 Titel: |
|
|
Soweit klar...
Aber...
V_Right und Ship_temp_X sind ja Floats also müsste es doch so aussehen:
Testwerte:
Beschl 1;
FRAME_RATE 4;
Ship_temp_X=100;
Ship_X=100;
nach 1 Durchgang:
VRight=0,25;
Shiptemp_X=100,25
Ship_X=100
nach 2. Durchgang:
VRight=0,5;
Shiptemp_X=100,75
Ship_X=100
nach 3 Durchgang:
VRight=0,75;
Shiptemp_X=101,5
Ship_X=101
Aber geht nicht... |
|
Nach oben |
|
|
Christian Rousselle Site Admin
Alter: 48 Anmeldedatum: 19.07.2002 Beiträge: 1630
Medaillen: Keine
|
Verfasst am: 30.05.2003, 12:45 Titel: |
|
|
Ändere das mal so:
#define Beschl 50.0f
Christian |
|
Nach oben |
|
|
underberg JLI'ler
Anmeldedatum: 11.01.2003 Beiträge: 153
Medaillen: Keine
|
Verfasst am: 30.05.2003, 12:52 Titel: |
|
|
Danke es geht!!! |
|
Nach oben |
|
|
AFE-GmdG JLI MVP
Alter: 45 Anmeldedatum: 19.07.2002 Beiträge: 1374 Wohnort: Irgendwo im Universum... Medaillen: Keine
|
Verfasst am: 30.05.2003, 15:19 Titel: |
|
|
verwende statt #define einfach const:
Code: |
// #define Beschl 50.0f
// Besser so verwenden!
const float Beschl=50.0f;
|
Ich finde sowieso, dass wesentlich mehr Constanten als Defines verwendet werden sollten. _________________
CPP: | float o=0.075,h=1.5,T,r,O,l,I;int _,L=80,s=3200;main(){for(;s%L||
(h-=o,T= -2),s;4 -(r=O*O)<(l=I*I)|++ _==L&&write(1,(--s%L?_<(L)?--_
%6:6:7)+\"World! \\n\",1)&&(O=I=l=_=r=0,T+=o /2))O=I*2*O+h,I=l+T-r;} |
|
|
Nach oben |
|
|
|
|
Du kannst keine Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum nicht antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen.
|
Powered by phpBB © 2001, 2005 phpBB Group Deutsche Übersetzung von phpBB.de
|