Files |  Tutorials |  Articles |  Links |  Home |  Team |  Forum |  Wiki |  Impressum

Aktuelle Zeit: Fr Jul 18, 2025 11:07

Foren-Übersicht » Programmierung » Allgemein
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 3 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: hilfe
BeitragVerfasst: So Aug 08, 2004 18:34 
Offline
DGL Member

Registriert: Fr Jul 02, 2004 14:26
Beiträge: 32
Code:
  1. if (keys[VK_SPACE]) and (lastshot<(scstart/timerfreq*1000)-1000) then
  2.    begin
  3.     shoot(dragonposx,dragonposy+100,1);
  4.     lastshot:=scstart/timerfreq*1000;
  5.    end;


die variable "lastshot" beinhaltet die millisekunden seit programmstart. das ganze sollte nun dafür sorgen dass man einen cooldown von 1 sekunde hat, ist aber nicht so, er schiesst durchgehend.

mein 2. prob wäre, wenn ich nach obenlinks steuere dann kann ich nicht gleichzeitig schiessen, bzw wenn ich schiesse dann kann ich nicht nach oben-links steuern sondern nur nach oben oder links:

Code:
  1. if (keys[VK_LEFT]) and (dragonposx>-304) then dragonposx:=dragonposx-(dragonmove*timefactor);
  2.   if (keys[VK_UP]) and (dragonposy<204) then dragonposy:=dragonposy+(dragonmove*timefactor);
  3.   if (keys[VK_DOWN]) and (dragonposy>-204) then dragonposy:=dragonposy-(dragonmove*timefactor);
  4.   if (keys[VK_RIGHT]) and (dragonposx<304) then dragonposx:=dragonposx+(dragonmove*timefactor);
  5.  


andere diagonale richtungen gehen aber mit schiessen

:?: :?: :?: :?:


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Aug 08, 2004 21:55 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 19:27
Beiträge: 5812
Programmiersprache: C++
@Schuss :
Weiss jetzt nicht genau wie deine Timer funktionieren, aber im Normafall realisiert man eine Tastenverzögerung so :
Code:
  1. if (keys[VK_SPACE]) and (lastshoot <= 0) then
  2.   begin
  3.   Fire;
  4.   lastshot := 1000;
  5.   end;
  6. ...
  7. lastshot := lastshot - X * TimeFactor;
  8. if lastshot < 0 then
  9.   lastshot := 0;


@Tasten :
So wie du das gemacht hast, müsste das eigentlich gehen. Aber ich tippe hier auf eine Limitation von Seiten deiner Tastatur, denn je nach Tastatur bzw. Hersteller gibt es da bestimmte Situationen, die nicht so funzen wie erwartet.

_________________
www.SaschaWillems.de | GitHub | Twitter | GPU Datenbanken (Vulkan, GL, GLES)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Aug 08, 2004 22:06 
Offline
DGL Member

Registriert: Fr Jul 02, 2004 14:26
Beiträge: 32
thx :)
edit: der timer stammt aus dem bombermantut2 (timebased movement)


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 3 Beiträge ] 
Foren-Übersicht » Programmierung » Allgemein


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 2 Gäste


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.007s | 14 Queries | GZIP : On ]