Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
matmaster Junior JLI'ler
Anmeldedatum: 18.02.2006 Beiträge: 67 Wohnort: Wien Medaillen: Keine
|
Verfasst am: 07.04.2006, 15:36 Titel: 2 Fragen |
|
|
Hi
Ich habe zwei Fragen:
1.)Wie kann ich alle 10 Sekunden etwas Bestimmtes wiederholen ?
z.B.: Ein Strategiespiel bei dem alle 10 Sekunden der Holzvorrat um 10
steigen soll, und der Benutzer etwas Anderes inzwischen machen kann.
2.)Folgendes Problem:
Code: |
#include <iostream>
#include <windows.h>
using namespace std;
int var = 10;
int main()
{
while(var != 0)
{
cout << var ;
Sleep(1000);
var--;
}
return 0;
}
|
Wie kann ich die Konsole dazu bringen, dass Sie die Werte nicht untereinander schreibt, sondern jeweils an der selben Stelle um eins verringert ?
Zuletzt bearbeitet von matmaster am 07.04.2006, 16:04, insgesamt einmal bearbeitet |
|
Nach oben |
|
|
51m0n JLI'ler
Alter: 33 Anmeldedatum: 06.01.2006 Beiträge: 167 Wohnort: Erkelenz Medaillen: Keine
|
Verfasst am: 07.04.2006, 15:58 Titel: |
|
|
Hallo
zu 1)
Ich weis nicht genau ob und wie das bei Konsolen funktioniert, aber wenn du ein "richtiges" Windows Programm hast dann solltest du dir SetTimer() und die Nachricht WM_TIMER mal genauer anschauen.
zu 2)
Ich binn mir nicht ganz sicher was du jetzt genau meinst, aber mach mal das << endl weg. Das heißt nämlich so viel ich weiß endline und bewirkt, dass der nächste Text erst in der nächsten Zeile ausgegeben wird. _________________ Teigwaren
heißen Teigwaren,
weil sie früher einmal Teig waren |
|
Nach oben |
|
|
C++progging Senior JLI'ler
Alter: 31 Anmeldedatum: 03.10.2005 Beiträge: 244 Wohnort: Sauerland Medaillen: Keine
|
|
Nach oben |
|
|
51m0n JLI'ler
Alter: 33 Anmeldedatum: 06.01.2006 Beiträge: 167 Wohnort: Erkelenz Medaillen: Keine
|
Verfasst am: 07.04.2006, 16:01 Titel: |
|
|
C++progging hat Folgendes geschrieben: | Zu 1.) :
CPP: | #include <windows.h>
...
Sleep(/* Anzahl der Millisekunden*/);
|
Einfach die windows.h inkludieren und Sleep verwenden |
Das wird ihm nich viel helfen er arbeitet ja schon mit Sleep(), aber mich würde mal interresieren wie du das damit realisieren willst. Die einzige Lösung die mir Dazu einfällte wäre Multithreading(oder wie das auch immer heißt). _________________ Teigwaren
heißen Teigwaren,
weil sie früher einmal Teig waren |
|
Nach oben |
|
|
matmaster Junior JLI'ler
Anmeldedatum: 18.02.2006 Beiträge: 67 Wohnort: Wien Medaillen: Keine
|
Verfasst am: 07.04.2006, 16:03 Titel: |
|
|
@C++progging
Wenn ich Sleep verwende kann der Benutzer inzwischen gar nichts Ausführen |
|
Nach oben |
|
|
fast hawk Senior JLI'ler
Anmeldedatum: 15.07.2005 Beiträge: 237 Wohnort: Freiburg Medaillen: Keine
|
Verfasst am: 07.04.2006, 16:07 Titel: |
|
|
Zu 1:
Code: | LARGE_INTEGER LastTime=1000;
LARGE_INTEGER CurTime = 1000;
//Init PerformanceCounter
while Spielschleife
{
QueryPerformanceCounter(&CurTime);
if((CurTime-LastTime)/Frequenz>=2000)
{
Holz++;
LastTime = CurTime;
}
}
|
Zu 2:
Tabulatorrücklauf(\r). _________________ Jetziges Projekt: The Ring War
Status: 40%
-----------------------------------
Nicht weil es schwer ist, wagen wir es nicht, sondern weil wir es nicht wagen, ist es schwer.
--
Lucius Annaeus Seneca (4)
röm. Philosoph, Dramatiker und Staatsmann
Zuletzt bearbeitet von fast hawk am 07.04.2006, 17:59, insgesamt 3-mal bearbeitet |
|
Nach oben |
|
|
matmaster Junior JLI'ler
Anmeldedatum: 18.02.2006 Beiträge: 67 Wohnort: Wien Medaillen: Keine
|
Verfasst am: 07.04.2006, 16:09 Titel: |
|
|
@fast hawk
Danke werd ich gleich ausprobieren! |
|
Nach oben |
|
|
PeaceKiller JLI Master
Alter: 35 Anmeldedatum: 28.11.2002 Beiträge: 970
Medaillen: Keine
|
Verfasst am: 07.04.2006, 16:18 Titel: |
|
|
fast hawk hat Folgendes geschrieben: | Code: | if((CurTime-LastTime)/Frequenz==2000) |
|
sollte folgendes sein: Code: | if((CurTime-LastTime)/Frequenz>=2000) |
_________________ »If the automobile had followed the same development cycle as the computer, a Rolls-Royce would today cost $100, get a million miles per gallon, and explode once a year, killing everyone inside.«
– Robert X. Cringely, InfoWorld magazine |
|
Nach oben |
|
|
Jonathan_Klein Living Legend
Alter: 37 Anmeldedatum: 17.02.2003 Beiträge: 3433 Wohnort: Siegerland Medaillen: Keine
|
Verfasst am: 07.04.2006, 17:58 Titel: |
|
|
Also, ich würde dir einfahc empfeheln, die Konsolenprogramme nur dazu zu nutzen, ein wenig C++ kennenzulernen und dann mit Windows anzufangen.
So komplexe Sachen wie Strategiespiele kann man damit einfach viel netter machen, weil man eben nicht nur auf Texte beschränkt ist und viel mehr Möglichkeiten hat. _________________ https://jonathank.de/games/ |
|
Nach oben |
|
|
fast hawk Senior JLI'ler
Anmeldedatum: 15.07.2005 Beiträge: 237 Wohnort: Freiburg Medaillen: Keine
|
Verfasst am: 07.04.2006, 17:59 Titel: |
|
|
Jo hab das halt einfaclh mal so schnell aus dem Kopf getippt da darf so was passieren !!....... ist geändert. _________________ Jetziges Projekt: The Ring War
Status: 40%
-----------------------------------
Nicht weil es schwer ist, wagen wir es nicht, sondern weil wir es nicht wagen, ist es schwer.
--
Lucius Annaeus Seneca (4)
röm. Philosoph, Dramatiker und Staatsmann |
|
Nach oben |
|
|
matmaster Junior JLI'ler
Anmeldedatum: 18.02.2006 Beiträge: 67 Wohnort: Wien Medaillen: Keine
|
Verfasst am: 08.04.2006, 07:24 Titel: |
|
|
@Jonathan_Klein
Da stimme ich dir zu. Ich hatte mir nur gedacht das ich ein etwas Größeres Konsolenprogramm programmier, bevor ich mich mit Windows bescheftige.
Mir ist nichts besseres eingefallen alls ein kleines Strategiespiel. |
|
Nach oben |
|
|
Jonathan_Klein Living Legend
Alter: 37 Anmeldedatum: 17.02.2003 Beiträge: 3433 Wohnort: Siegerland Medaillen: Keine
|
Verfasst am: 08.04.2006, 07:47 Titel: |
|
|
jo, ich hab damals zum lernen mal n Textadventure und ein Rundenbasiertes Prügelspiel gemacht. Muss man sich halt damit zurechtfinden, das bestimmte Sachen, wie z.B. Text an einer bestimmten Position anzeigen oder halt alle 10 sek. etwas machen nicht soo einfach zu machen sind. Ist aber ja egal, da man das später eh nur noch zu Testzwecken Konsolenprogramme schreibt. _________________ https://jonathank.de/games/ |
|
Nach oben |
|
|
Clythoss Junior JLI'ler
Alter: 44 Anmeldedatum: 04.05.2005 Beiträge: 64 Wohnort: Berlin Medaillen: Keine
|
Verfasst am: 08.04.2006, 17:06 Titel: |
|
|
Wem Windows ein zu großer Sprung ist dem kann ich nur immer wieder Allegro empfehlen.
Allegro ist eine Bibliothek für Spieleprogrammierung in C/C++, die kostenlos nutzbar ist, und die folgenden Plattformen unterstützt: DOS, Unix (Linux, FreeBSD, Irix, Solaris, Darwin), Windows, QNX, BeOS und MacOS X. Enthalten sind viele Funktionen für Graphik, Sound, Benutzer-Eingabe (Tastatur, Maus und Joystick) und Zeit-Steuerung. Außerdem werden mathematische Festkomma- und Fließpunkt-Funktionen, 3D-Funktionen, Dateisystem-Funktionen, Funktionen für komprimierte Dateien und eine graphische Oberfläche bereitgestellt.
http://alleg.sourceforge.net/index.de.html _________________ Derzeitiges Projekt : Wing Fusion
Status: Es geht vorwärts...
-------------------------------------------------------
E=MC²+1W6 |
|
Nach oben |
|
|
Blubb-Tec JLI'ler
Alter: 33 Anmeldedatum: 29.03.2005 Beiträge: 171 Wohnort: Düsseldorf Medaillen: Keine
|
Verfasst am: 08.04.2006, 17:49 Titel: |
|
|
für den umstieg von konsole auf win32 empfehle ich das buch "Windows Programmierung 5. Auflage" von Charles Petzold, werden wohl alle kennen, da wird alles wichtige super erklärt, zwar in C, aber das macht ja nix Sonderausgabe kostet "nur" 30€, sonst 50€ oder mehr, kA, aber lohnen tut sich's auf jeden fall, den "Petzold" brauch man immer wieder _________________ www.planlos.de |
|
Nach oben |
|
|
Jonathan_Klein Living Legend
Alter: 37 Anmeldedatum: 17.02.2003 Beiträge: 3433 Wohnort: Siegerland Medaillen: Keine
|
Verfasst am: 09.04.2006, 08:41 Titel: |
|
|
das Buch ist sehr gut, WENN man den "richtige" Win32 Applikationen machen will. Für ein paar Spiele reicht es meiner Meinung nach, wenn man gerade genug Windows kann, um DX zu initialisieren, also das was im JLI-Buch steht. Ich persönlich bin damit gut genug zurecht gekommen, wenn man erstmal n paar Funktionen hat, um Sprites auszugeben, interessiert es ersteinmal nicht mehr das man DX benutzt und wie das alles intern funktioniert (für den Anfang wohlgemerkt, später steigt man warhscheinlich tiefer ein und dann ist das auch interessant). Den Petzold hab ich mir erst gekuaft, als ich auch mal wissen wollte, wie ich einen gescheiten Leveleditor oder ähnliches machen kann, also ein Programm wo man es mal wirklich mit Fenstern und so zu tun hat, und nicht einfach nur DX-Fullscreenmode.
Also, das Buch ist auf jeden Fall empfehlenswert, aber wenn man erstmla nur ein paar Games proggen will, bruacht man es nicht umbedingt. _________________ https://jonathank.de/games/ |
|
Nach oben |
|
|
|