Autor Beitrag
Karlson
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 2088



BeitragVerfasst: Mo 18.10.04 00:42 
Moin,

Ich hatte heute zuviel Zeit und hab mich mal hingesetzt und versucht ein kleines Tennisspiel zu schreiben.

Das ist bei rausgekommen, für Anfänger bestimmt ganz intressant.

www.8ung.at/forumwatcher/Tennis.rar
.Chef
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1112



BeitragVerfasst: Mo 18.10.04 09:28 
Ich habs mir mal angeschaut, und muss leider sagen, dass es durch zuviele Bugs unspielbar ist:

- Der Ball verfängt sich gelegentlich im(!) Schläger und bleibt drin hängen.
- Wenn ich das Optionsfenster öffne, wird mein Schläger sehr klein, so dass ich danach nicht mehr spielen kann. Also er wird auch nicht wieder groß, wenn ich das Fenster schließe.
- Du solltest unbedingt einbauen, dass man durch die Schlägerbewegung Einfluss auf die Flugrichtung des Balles nehmen kann. So, wie es jetzt ist, prallt der Ball einfach nur ab, egal, was man macht, und es ist nicht möglich, seinen Gegner auszuspielen.

Und nochn Tipp: WIe ich sehe, hast du ein Panel als Ball. Setz doch ein rundes Shape auf das Panel. ;-)

Gruß,
Jörg

_________________
Die Antworten auf die 5 häufigsten Fragen:
1. Copy(), Pos(), Length() --- 2. DoubleBuffered:=True; --- 3. Application.ProcessMessages bzw. TThread --- 4. ShellExecute() --- 5. Keine Vergleiche von Real-Typen mit "="!
Karlson Threadstarter
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 2088



BeitragVerfasst: Mo 18.10.04 15:52 
Hi Jörg,

zu 1.) Stimmt, das ist sche****, es liegt daran das ich die X-Fläche der Schläger nicht abfrage.

zu 2.) Ja :mrgreen: Tu mir denGefallen und schau dir den Code an und sag mir warum dieser verdammte Schläger klein wird. Entweder seh ich den Wald vor lauter Bäumen nicht mehr oder ich bin einfach nur blöd ;) Ich hab ne halbe Stunde in dem (wirklich kleinem) Code gesucht, finde aber den Fehler nicht...kein Wunder bei dem Saustall im Quellcode. :rolleyes:

zu 3.) Das wäre wirklich gut aber mir ging es nicht darum ein schönes Spiel zu schreiben. Es geht allgemein um die Bewegung des Balls und wie er auf Schläger und Wand reagiert. Das wäre schon cool wenn man auf die Ballbewegung Einfluss nehmen könnte, aber mein Vorbildspiel hat so eine funktion auch nicht :)

Vielleicht hat ja jemand Lust am Programm weiterzuarbeiten, der kann das ja dann umsetzten.


gruss
.Chef
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1112



BeitragVerfasst: Mo 18.10.04 20:03 
Zu 2.)Ich tippe mal ganz stark auf eine der zwei(!) Stellen in Unit2, wo du die Panel-Höhe des linken Schlägers einstellst.

_________________
Die Antworten auf die 5 häufigsten Fragen:
1. Copy(), Pos(), Length() --- 2. DoubleBuffered:=True; --- 3. Application.ProcessMessages bzw. TThread --- 4. ShellExecute() --- 5. Keine Vergleiche von Real-Typen mit "="!
GTA-Place
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
EE-Regisseur
Beiträge: 5248
Erhaltene Danke: 2

WIN XP, IE 7, FF 2.0
Delphi 7, Lazarus
BeitragVerfasst: Mo 18.10.04 20:38 
1. Was soll den Trackbar4, wenn die unsichtbar ist??

2.procedure TForm2.TrackBar5Change(Sender: TObject);
Es gibt keine TrackBar5.

3.
ausblenden Delphi-Quelltext
1:
2:
3:
4:
procedure TForm1.Button2Click(Sender: TObject);
procedure TForm1.Button3Click(Sender: TObject);
procedure TForm1.Button4Click(Sender: TObject);
procedure TForm1.Button5Click(Sender: TObject);

Es gibt keinen Button2, Button3, Button4 und Button5.

4.
ausblenden Delphi-Quelltext
1:
2:
procedure SetPort(address, Value: Word);
function GetPort(address: Word): Word;

Wieso denn einfach, wenns auch kompliziert geht. Muss das über den internen PC-Lautsprecher sein?

5. 2 Timer und 1 Label sind umsonst.

6. Ich hab mit Formatierung aus ca. 270 Zeilen, genau 150 Zeilen gemacht.

7. Gib doch den Panels und Buttons und sonst was Namen. Ich hasse es, wenn die alle keinen Namen haben.
Karlson Threadstarter
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 2088



BeitragVerfasst: Mo 18.10.04 23:04 
GTA-Place hat folgendes geschrieben:
1. Was soll den Trackbar4, wenn die unsichtbar ist??

2.procedure TForm2.TrackBar5Change(Sender: TObject);
Es gibt keine TrackBar5.

3.
ausblenden Delphi-Quelltext
1:
2:
3:
4:
procedure TForm1.Button2Click(Sender: TObject);
procedure TForm1.Button3Click(Sender: TObject);
procedure TForm1.Button4Click(Sender: TObject);
procedure TForm1.Button5Click(Sender: TObject);

Es gibt keinen Button2, Button3, Button4 und Button5.

4.
ausblenden Delphi-Quelltext
1:
2:
procedure SetPort(address, Value: Word);
function GetPort(address: Word): Word;

Wieso denn einfach, wenns auch kompliziert geht. Muss das über den internen PC-Lautsprecher sein?

5. 2 Timer und 1 Label sind umsonst.

6. Ich hab mit Formatierung aus ca. 270 Zeilen, genau 150 Zeilen gemacht.

7. Gib doch den Panels und Buttons und sonst was Namen. Ich hasse es, wenn die alle keinen Namen haben.


Stimmt schon alles, aber die meisten Objekte wie die 2 Timer und das Label und die paar Buttons hab ich während dem Programmieren für Tests benutzt. Wie ich oben bereits schrieb, geht es um die grobe Kolisionabfrage usw, der Rest ist doch ganz ehrlich scheissegal.

Die Beschriftungen hätte ich machen können, aber es sollte doch hoffentlich nicht zu schwer sich vier verschiedenen Panels zu merken.
F34r0fTh3D4rk
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 5284
Erhaltene Danke: 27

Win Vista (32), Win 7 (64)
Eclipse, SciTE, Lazarus
BeitragVerfasst: Fr 04.02.05 17:20 
bei mir ist das fenster zu groß ich kann den rechten schläger net sehen, ansonsten war das problem mit dem hängenbleiben bei meinem tennis auch, aber die lösung funzt irgendwie net und bei mir ist der ball auch manchmal durchgebrochen
araX
ontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic starofftopic star
Beiträge: 36

Win XP +SP2, Gentoo & Debian
D7 Enterp
BeitragVerfasst: Fr 04.02.05 17:51 
Schade das der DL nicht mehr funktioniert
uall@ogc
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1826
Erhaltene Danke: 11

Win 2000 & VMware
Delphi 3 Prof, Delphi 7 Prof
BeitragVerfasst: Fr 04.02.05 18:01 
der download funktioniert bei mir noch, aber "lohnend" isses nicht gerade (hoffe ich greif niemanden an ;>)
Karlson Threadstarter
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 2088



BeitragVerfasst: Fr 04.02.05 18:18 
Ne es is wirklich nicht lohnend :lol:

Habs mir auch grad mal wieder angeschaut, und es ist sche**** geworden...
F34r0fTh3D4rk
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 5284
Erhaltene Danke: 27

Win Vista (32), Win 7 (64)
Eclipse, SciTE, Lazarus
BeitragVerfasst: Fr 04.02.05 21:07 
mit tastatur steuerung ist eh besser ^^

ist es möglich eine art bot dafür zu schreiben also ein externes cheat tool welches die position des balls erkennt und automatisch mit einer tastendruck simulation reagiert ?
en!gma
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 378

win xp
delphi 7.0
BeitragVerfasst: Fr 04.02.05 21:48 
naja ok für anfänger? =)
ich weiss nich, hab mir den code nich angeschaut, aber wenn wirklich noch überflüssige buttons usw drin sind,
werden die anfänger wohl doch nur mehr verwirrt als alles andere.

und
@F34r0fTh3D4rk:
sollte eigentlich gehen, aber was für ein tastendruck? läuft doch mit der maus
F34r0fTh3D4rk
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 5284
Erhaltene Danke: 27

Win Vista (32), Win 7 (64)
Eclipse, SciTE, Lazarus
BeitragVerfasst: Fr 04.02.05 21:50 
meines aber net ^^
Karlson Threadstarter
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 2088



BeitragVerfasst: Fr 04.02.05 21:50 
Klar, warum sollte das nicht möglich sein?

Die Adresse für den Top liegt bei mir bei $BF4A78
Die Adresse für die Left liegt bei $BF4A74

@en1gma: Mit Anfängern meinte ich nicht das Programm, sondern wie ich auch schonmal schrieb den Code für die Ballbewegung usw. Damit habe ich auch angefangen. Hab erst aus Spass einen Ball rumfliegen lassen, dann noch einen Schläger dazu, dann noch einen Schläger, dann eine KI :lol: Dementsprechend sieht das alles auch aus. Intressant ist im Grunde nur der Code des Timer1.
F34r0fTh3D4rk
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 5284
Erhaltene Danke: 27

Win Vista (32), Win 7 (64)
Eclipse, SciTE, Lazarus
BeitragVerfasst: Fr 04.02.05 21:52 
und wie lese ich die aus ?

wie man sie verändert weiß ich (gibt aber bestimmt fehler :D)
Karlson Threadstarter
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 2088



BeitragVerfasst: Fr 04.02.05 21:53 
F34r0fTh3D4rk hat folgendes geschrieben:
und wie lese ich die aus ?

wie man sie verändert weiß ich (gibt aber bestimmt fehler :D)


Nö, eigentlich nicht. Der Timer überprüft ja jedesmal aufs neue. Ich habs nicht ausprobiert, aber es müsste klappen.

Auslesen mit Suche in: Delphi-Forum, Delphi-Library READPROCESSMEMORY
en!gma
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 378

win xp
delphi 7.0
BeitragVerfasst: Fr 04.02.05 21:54 
mit Suche in: Delphi-Forum, Delphi-Library READPROCESSMEMORY

//edit
1. ups zu spät
2. und dann auch noch falsch geschrieben ;D
F34r0fTh3D4rk
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 5284
Erhaltene Danke: 27

Win Vista (32), Win 7 (64)
Eclipse, SciTE, Lazarus
BeitragVerfasst: Fr 04.02.05 21:55 
mit fehler meine ich dass es net geht, grade wegen des timers


unter readprocessmemory findet er nischt :?
Karlson Threadstarter
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 2088



BeitragVerfasst: Fr 04.02.05 21:58 
F34r0fTh3D4rk hat folgendes geschrieben:
mit fehler meine ich dass es net geht, grade wegen des timers

Auswelchem Grunde sollte es nicht gehen? Du könntest du Adresse ja mal nopen, dann bleibt der Ball hängen. Genauso kannst du die Adressen doch auch umschreiben. Der Timer verändert die Ballpos. ja mit ball.left := ball.left + 1. Ob da jetzt in der letzen millisekunde ein Sprung gemacht wurde, ist dem Timer ja wurscht.
F34r0fTh3D4rk
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 5284
Erhaltene Danke: 27

Win Vista (32), Win 7 (64)
Eclipse, SciTE, Lazarus
BeitragVerfasst: Fr 04.02.05 21:58 
lol die suche geht nimmer :o