SNOOKER (Billard, jetzt mit Netzwerkmodus[1vs1])

Spiele, Demos, Grafikzeug und anderes unterhaltendes.
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 7028
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

Beitrag von STARGÅTE »

Konne hat geschrieben: Ein Code aus der Purearea der die Rahmen größe ermittelt.
cool danke ich hoffe nur das es auch schon bei 3.30 funktioniert :oops: ansonsten muss ich es umschreieben :allright:
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 7028
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

Beitrag von STARGÅTE »

Es hat zwar etwas lange gedauert aber in den letzten tagen hatte ich ein bisschen Zeit an Snooker weiter zu programmieren. :roll:

UPDATE AUF 1.31

Das Spiel kann jetzt auch im Netzwerk gespielt werden (1 Server, 1 Client) :allright:
Ein kleiner Chat ist auch mit dabei. :lol:

Bitte sagt mir ob ihr irgend welche Bugs findet, vor allem beim Netzwerk.

Ich würde mich auch freuen wenn jemand mit/gegen mich mal Snooker spielt :D

http://hometown.aol.de/Hmmpgutt/Snooker+1.31.zip
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
xperience2003
Beiträge: 972
Registriert: 04.10.2004 18:42
Computerausstattung: Amiga, LinuxMint, Windows7
Wohnort: gotha
Kontaktdaten:

Beitrag von xperience2003 »

sehr genial das ganze
respect
amiga rulez...
Rebirth Software
Benutzeravatar
HeX0R
Beiträge: 3040
Registriert: 10.09.2004 09:59
Computerausstattung: AMD Ryzen 7 5800X
96Gig Ram
NVIDIA GEFORCE RTX 3060TI/8Gig
Win11 64Bit
G19 Tastatur
2x 24" + 1x27" Monitore
Glorious O Wireless Maus
PB 3.x-PB 6.x
Oculus Quest 2 + 3
Kontaktdaten:

Beitrag von HeX0R »

Die Reibung ist für Snooker viel zu hoch.
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 7028
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

Beitrag von STARGÅTE »

HeX0R hat geschrieben:Die Reibung ist für Snooker viel zu hoch.
das liegt dann daran das dein PC zu schnell ist !

deswegen sieht es so aus als ob die Kugeln sehr schnell sind und damit auch schnell abbremsen.

Aber ist mir auch schon aufgefallen (bei langsamen PCs ist fast keine Reibung ^^)
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 7028
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

Beitrag von STARGÅTE »

habe eben noch einen Netzwerkbug berichtigt

http://hometown.aol.de/Hmmpgutt/Snooker+1.32.zip
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Benutzeravatar
Hades
Beiträge: 100
Registriert: 21.05.2005 11:54

Beitrag von Hades »

STARGÅTE hat geschrieben:
HeX0R hat geschrieben:Die Reibung ist für Snooker viel zu hoch.
das liegt dann daran das dein PC zu schnell ist !

deswegen sieht es so aus als ob die Kugeln sehr schnell sind und damit auch schnell abbremsen.

Aber ist mir auch schon aufgefallen (bei langsamen PCs ist fast keine Reibung ^^)
Mal ne dumme Frage: warum machst Du die Geschwindigkeit dann nicht einfach Rechner unabhängig!?

(Soll keine grundsätzliche Kritik an Deiner Arbeit sein. Bin schwer begeistert von Deinen Projekten :wink: )
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 7028
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

Beitrag von STARGÅTE »

Hades hat geschrieben: Mal ne dumme Frage: warum machst Du die Geschwindigkeit dann nicht einfach Rechner unabhängig!?
Mal ne dumme Frage zurück ^^, wie soll ich das machen oder besser wie geht das.
Mit SetFrameRate(FrameRate) alleine geht das nicht. :oops:

hast du schon 1.32, da habe ich nämlich die FrameRate auf 50 gesetzt müsste dann besser sein
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Benutzeravatar
Hades
Beiträge: 100
Registriert: 21.05.2005 11:54

Beitrag von Hades »

Ah fein, darum frag ich. :mrgreen:

Du gehst folgendermaßen vor:

Anstatt zu überlegen wie schnell sich die Kugeln pro Frame bewegen, überlegst Du wie weit sie sich z.B. pro Millisekunde bewegen sollen. Dann multiplizierst Du diese Strecke mit der Zeit, die der letzte Frame gedauert hat. Dann hast Du den Weg, den die Kugel in der Zeit zurückgelegt hat.
Wenn auf einem schnellen Rechnern ein Frame weniger lange dauert, bewegt sich die Kugel in der Zeit dann auch weniger weit.

ElapsedMilliseconds() wäre eine Möglichkeit die Zeit zu messen, ist aber sehr ungenau.

Besser wäre es hiermit:

Code: Alles auswählen

Procedure InitGameTimer() 
  Protected _GT_DevCaps.TIMECAPS 
  timeGetDevCaps_(_GT_DevCaps,SizeOf(TIMECAPS)) 
  timeBeginPeriod_(_GT_DevCaps\wPeriodMin) 
EndProcedure 
Das rufst Du einmal am Programmstart auf, um das Ganze zu initialisieren.

Am Start eines Frames schreibst Du dann z.B.:

Code: Alles auswählen

FrameStart.l = timeGetTime_()
Und am Ende:

Code: Alles auswählen

FrameTime.l = timeGetTime_() - FrameStart
FrameTime enthält dann die vergangene Zeit in Millisekunden.

Achtung! Du solltest überprüfen ob FrameTime einen bestimmten Wert (z.B. 100) überschreitet, und FrameTime dann auf diesen Wert begrenzen, so das Deine Kugeln sich nach einem Hänger des Rechners nicht 10 Kilometer weit bewegen wollen.

cu

Hades
Benutzeravatar
Alves
Beiträge: 1208
Registriert: 19.04.2006 18:24
Kontaktdaten:

Beitrag von Alves »

Also ich hab immer schon nach nem guten Snooker Spiel gesucht, und hier ist es!
Enifach genial! :allright:
Antworten