JLI Spieleprogrammierung Foren-Übersicht JLI Spieleprogrammierung

 
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen 
 medals.php?sid=971f2ac2512bbce84c8b9e9e3f12cc57Medaillen   RegistrierenRegistrieren   ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

2 Fragen
Gehe zu Seite 1, 2  Weiter
 
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Fragen, Antworten und Kritik
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
matmaster
Junior JLI'ler



Anmeldedatum: 18.02.2006
Beiträge: 67
Wohnort: Wien
Medaillen: Keine

BeitragVerfasst am: 07.04.2006, 15:36    Titel: 2 Fragen Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
51m0n
JLI'ler


Alter: 33
Anmeldedatum: 06.01.2006
Beiträge: 167
Wohnort: Erkelenz
Medaillen: Keine

BeitragVerfasst am: 07.04.2006, 15:58    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
C++progging
Senior JLI'ler


Alter: 31
Anmeldedatum: 03.10.2005
Beiträge: 244
Wohnort: Sauerland
Medaillen: Keine

BeitragVerfasst am: 07.04.2006, 15:58    Titel: Antworten mit Zitat

Zu 1.) :
CPP:
#include <windows.h>
...
Sleep(/* Anzahl der Millisekunden*/);

Einfach die windows.h inkludieren und Sleep verwenden
_________________
http://gtsp.gt.funpic.de
NEU: http://gtspforum.gt.funpic.de - das dazugehörige board
ProjectX for PSP - Jetzt runterladen!!
unter http://www.pspsource.de/news.php?extend.4537
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
51m0n
JLI'ler


Alter: 33
Anmeldedatum: 06.01.2006
Beiträge: 167
Wohnort: Erkelenz
Medaillen: Keine

BeitragVerfasst am: 07.04.2006, 16:01    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
matmaster
Junior JLI'ler



Anmeldedatum: 18.02.2006
Beiträge: 67
Wohnort: Wien
Medaillen: Keine

BeitragVerfasst am: 07.04.2006, 16:03    Titel: Antworten mit Zitat

@C++progging
Wenn ich Sleep verwende kann der Benutzer inzwischen gar nichts Ausführen Sad
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
fast hawk
Senior JLI'ler



Anmeldedatum: 15.07.2005
Beiträge: 237
Wohnort: Freiburg
Medaillen: Keine

BeitragVerfasst am: 07.04.2006, 16:07    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
matmaster
Junior JLI'ler



Anmeldedatum: 18.02.2006
Beiträge: 67
Wohnort: Wien
Medaillen: Keine

BeitragVerfasst am: 07.04.2006, 16:09    Titel: Antworten mit Zitat

@fast hawk
Danke werd ich gleich ausprobieren! Smile
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
PeaceKiller
JLI Master


Alter: 35
Anmeldedatum: 28.11.2002
Beiträge: 970

Medaillen: Keine

BeitragVerfasst am: 07.04.2006, 16:18    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Jonathan_Klein
Living Legend


Alter: 37
Anmeldedatum: 17.02.2003
Beiträge: 3433
Wohnort: Siegerland
Medaillen: Keine

BeitragVerfasst am: 07.04.2006, 17:58    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
fast hawk
Senior JLI'ler



Anmeldedatum: 15.07.2005
Beiträge: 237
Wohnort: Freiburg
Medaillen: Keine

BeitragVerfasst am: 07.04.2006, 17:59    Titel: Antworten mit Zitat

Jo hab das halt einfaclh mal so schnell aus dem Kopf getippt da darf so was passieren Wink !!....... 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
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
matmaster
Junior JLI'ler



Anmeldedatum: 18.02.2006
Beiträge: 67
Wohnort: Wien
Medaillen: Keine

BeitragVerfasst am: 08.04.2006, 07:24    Titel: Antworten mit Zitat

@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
Benutzer-Profile anzeigen Private Nachricht senden
Jonathan_Klein
Living Legend


Alter: 37
Anmeldedatum: 17.02.2003
Beiträge: 3433
Wohnort: Siegerland
Medaillen: Keine

BeitragVerfasst am: 08.04.2006, 07:47    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Clythoss
Junior JLI'ler


Alter: 44
Anmeldedatum: 04.05.2005
Beiträge: 64
Wohnort: Berlin
Medaillen: Keine

BeitragVerfasst am: 08.04.2006, 17:06    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
Blubb-Tec
JLI'ler


Alter: 33
Anmeldedatum: 29.03.2005
Beiträge: 171
Wohnort: Düsseldorf
Medaillen: Keine

BeitragVerfasst am: 08.04.2006, 17:49    Titel: Antworten mit Zitat

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 Smile Sonderausgabe kostet "nur" 30€, sonst 50€ oder mehr, kA, aber lohnen tut sich's auf jeden fall, den "Petzold" brauch man immer wieder Wink
_________________
www.planlos.de
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen MSN Messenger
Jonathan_Klein
Living Legend


Alter: 37
Anmeldedatum: 17.02.2003
Beiträge: 3433
Wohnort: Siegerland
Medaillen: Keine

BeitragVerfasst am: 09.04.2006, 08:41    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Fragen, Antworten und Kritik Alle Zeiten sind GMT
Gehe zu Seite 1, 2  Weiter
Seite 1 von 2

 
Gehe zu:  
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

Impressum