Weitere Pong-Variante...

Spiele, Demos, Grafikzeug und anderes unterhaltendes.
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

Schöner Startbildschirm, schöne Hintergrundmusik, alles für mehrere Sekunden und dann:
Fehlgeschlagene Anwendung monjaspong.exe, Version 0.0.0.0, fehlgeschlagenes Modul monjaspong.exe, Version 0.0.0.0, Fehleradresse 0x00008163.
WinXP Pro SP2, GeForce 4

Auch mit ausgetauschter Exe (dann ohne Hintergrundmusik)
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
Kukulkan
Beiträge: 1066
Registriert: 09.09.2004 07:07
Wohnort: Süddeutschland
Kontaktdaten:

Beitrag von Kukulkan »

Hallo Zusammen,

Danke für das Lob und die Vorschläge. Ich hab (wie man im Source sehen kann) weder Userlibs noch WinAPI verwendet. Also reines PB (V3.93). Hat jemand eine Ahnung was die Fehler bei Hroudtwolf und TS-Soft auslösen kann? Aktuell wüsste ich nicht woran ich schrauben sollte.

Auch das kurze Halten alle 3 Sekunden (bei Froggerprogger) ist mir Schleierhaft. Ich verwende weder Threads noch irgendwelche zeitgesteuerten Dinge (läuft alles mit Framezählern). Einzige Erklärung hierfür wäre ein anderer Hintergrundprozess der alle drei Sekunden die Rechenleistung 'frisst'...

Da der Source beiliegt, können die betroffenen evtl. mal gucken wie weit die Anwendung kommt? Man kann ja zum Test auch mal bei OpenScreen() auf 32 statt 16 Bit schalten... Eventuell mögen das manche Grafikkarten eher?

Grüsse,

Volker
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

Volker Schmid hat geschrieben:Da der Source beiliegt, können die betroffenen evtl. mal gucken wie weit die Anwendung kommt?
PureBasic Debugger hat geschrieben:Error at line 256 : Plot() is outside the drawing area.
Error at line 423 : StopDrawing() must be called after a successful StartDrawing().
Immer abwechselnd
Volker Schmid hat geschrieben:Man kann ja zum Test auch mal bei OpenScreen() auf 32 statt 16 Bit schalten... Eventuell mögen das manche Grafikkarten eher?
Macht keinen Unterschied
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
auxxon
Beiträge: 56
Registriert: 17.03.2005 14:30

Beitrag von auxxon »

Schönes Spiel.
Es ist aba wie schon gesagt Breakout. Pong hat keine Klötze und ist das für zwei Spieler.
Benutzeravatar
Lebostein
Beiträge: 674
Registriert: 13.09.2004 11:31
Wohnort: Erzgebirge

Beitrag von Lebostein »

Der Code ist ganz schön bugy. Ich hab ihn nicht zum Laufen bekommen, immer zeigt mir der Debugger andere Fehler. Was ich gefunden habe, ist ein verlassenes StopDrawing() am Ende der Prozedur DrawExtras(). Außerdem gibt mir der Debugger in der Prozedur WriteText(XPos.l, YPos.l, Text.s) eine Überschreitung der Arraygrenzen aus, wahrscheinlich zurückzuführen auf diese Zeile:

Code: Alles auswählen

Char.b = Asc(Mid(Text.s, x.l, 1))-33
Wenn ein Leerzeichen kommt (so wie es beim Auruf der Prozedur durch DrawInfos() mit dem String "Level: " geschieht), so wird Asc() 32 zurückgeben. Zieht man jetzt noch 33 ab, so kommt man auf -1, was außerhalb des Arrays FontWidth(0-200) liegt. Am besten du änderst die 33 in eine 32 und setzt an den Anfang des Bitmap-Fonts (vor dem !) noch ein freies Feld für das Leerzeichen.

Weiterhin scheint PureBasic zu meckern, wenn man außerhalb des Screens zeichen will (z.B. mit Plot). Das ist bei dir auch der Fall. In der Prozedur CreateStars() kann es passieren, dass Sterne außerhalb des Screens initialisiert werden:

Code: Alles auswählen

Sterne()\x = Random(1024)
Sterne()\y = Random(768)
Da der Bildschirm nur von 0 bis 1023 bzw 0 bis 767 geht, würde ich die beiden Random-Werte um 1 verkleinern. Genauso in der Prozedur DrawBackground(), wo du eine Überpüfung > 768 stehen hast, da sollte > 767 stehen.

Am besten du schaltest mal den Debugger ein und startest dein Spiel.

--------------------------------------------

Noch ein Tipp. Diesen Code:

Code: Alles auswählen

ResetList(Sterne())
While NextElement(Sterne())
...
Wend
kann man auch so schreiben

Code: Alles auswählen

ForEach Sterne()
...
Next
...da wirds übersichtlicher
Benutzeravatar
Kukulkan
Beiträge: 1066
Registriert: 09.09.2004 07:07
Wohnort: Süddeutschland
Kontaktdaten:

Beitrag von Kukulkan »

Hallo,

@Lebostein: Ja, Du hast Recht. Da sind noch Bugs drinnen. Vielen Dank für deine Hinweise. Ich werde das natürlich noch alles Graderücken.
Eventuell liegt es daran, dass da bis jetzt nur 13 Stunden Arbeit (incl. Grafiken malen und Sounds im Internet suchen) drinnen stecken? Ich werde das noch alles Überarbeiten. Meine Frau hat auch noch Ideen die ich umsetzen muss...

Sobald ich eine neue, komplette Version habe werde ich diese wieder hier veröffentlichen. Ich arbeite gerade noch an einem Leveldesigner (aus Zeitgründen in VB6) damit meine Frau schöne Levels machen kann.

Das Spiel werde ich dann am Ende dann hier wieder veröffentlichen. Mit Highscore und Start-Ende-Screens...

Grüsse,

Volker
Benutzeravatar
dllfreak2001
Beiträge: 2925
Registriert: 07.09.2004 23:44
Wohnort: Bayern

Beitrag von dllfreak2001 »

Also Leutz
ich glaube das Spiel heißt auch nicht original Breakout.
Soweit ich weiß heißt das Arkanoid der Name ist aber rechtlich
geschützt, denke ich.
Deshalb haben auch die Kollegen vom PB-Breakout ihr Spiel
Breakout genannt, ist aber ein sinnvollerer Name "Breakout".
I´a dllfreak2001
Benutzeravatar
bluejoke
Beiträge: 1244
Registriert: 08.09.2004 16:33
Kontaktdaten:

Beitrag von bluejoke »

Nöö, Arkanoid ist ein Breakout-Klon, wenn ich recht informiert bin
Wikipedia - Breakout hat geschrieben:Es entspricht in etwa einem Solo-Pong [...]

1986 kam mit Gigas und Gigas Mark II von Sega sowie Arkanoid von der Firma Taito eine ganze Reihe von Spielen auf den Markt, die viele mit dem Begriff Breakout verbinden.
Ich bin Ausländer - fast überall
Windows XP Pro SP2 - PB 4.00
Benutzeravatar
Jason
Beiträge: 123
Registriert: 06.01.2005 17:47

Re: Weitere Pong-Variante...

Beitrag von Jason »

Volker Schmid hat geschrieben:Hallo,

Was mich jetzt interessiert:
Bis zu welcher Ausstattung (Hardware) ist das Ding noch spielbar? Bitte kurze Infos zu Prozessor, Grafikkarte und Spielbarkeit.
Ein bisschen Spiel-Feedback ist natürlich auch Interessant.
Geht hier unter Win98se auf einem Athlon XP2600 mit Matrox G550.

Hier noch einige Anregungen...

http://www.terminalstudio.com/arkanoid.shtml

http://www.300ad.com/arcamania.php

http://www.searchamateur.com/Arkanoid-O ... wnload.htm

http://www.isotope244.com/games/ab/acky ... akout.html
Der Rest ist Schweigen!
Benutzeravatar
redacid
Beiträge: 581
Registriert: 29.08.2004 17:06

Beitrag von redacid »

bluejoke hat geschrieben:Nöö, Arkanoid ist ein Breakout-Klon, wenn ich recht informiert bin
richtig. Breakout wurde in den 70er Jahren von Steve Jobs und Steve Wozniak bei Atari entwickelt. Arkanoid ist erst in den 80ern erschienen.
Antworten