AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi Ganz einfaches Fußballgame
Thema durchsuchen
Ansicht
Themen-Optionen

Ganz einfaches Fußballgame

Ein Thema von Neuni · begonnen am 6. Mai 2004 · letzter Beitrag vom 7. Mai 2004
Antwort Antwort
Seite 1 von 2  1 2      
Neuni

Registriert seit: 25. Feb 2004
815 Beiträge
 
Delphi 7 Personal
 
#1

Ganz einfaches Fußballgame

  Alt 6. Mai 2004, 17:08
Hallo,
ich wüde gerne ein gaaaanz einfach Fußball game proggen...

Der Spieler soll immer in der Mitte stehen, und um ihn herum soll das Spielfeld sich bewegen...das klappt auch alles.

meine Frage: Wie bekomm ich es hin, dass man dem anderen, wenn man neben ihm steht auf Tastendruck den Ball bnehmen kann? Also wie bei Fifa, dass man auf den anderen zuläuft, und ihm dann den Ball abnehmen kann wenn man in seiner näche steht. Man könnte zwar abfragen ob die beiden Spieler die gleiche Position haben, aber man sollte den Ball auch bekommen, wenn man neben ihm steht, also egal aus welcher richtung.

jemand ne idee?

Danke schonmal
  Mit Zitat antworten Zitat
Benutzerbild von dizzy
dizzy

Registriert seit: 26. Nov 2003
Ort: Lünen
1.932 Beiträge
 
Delphi 7 Enterprise
 
#2

Re: Ganz einfaches Fußballgame

  Alt 6. Mai 2004, 18:05
Entfernung messen!
(Stichwort: Vektoren)
Fabian K.
INSERT INTO HandVonFreundin SELECT * FROM Himmel
  Mit Zitat antworten Zitat
Neuni

Registriert seit: 25. Feb 2004
815 Beiträge
 
Delphi 7 Personal
 
#3

Re: Ganz einfaches Fußballgame

  Alt 6. Mai 2004, 18:55
Hab im Forum schon gesucht, aber nichts gefunde...weißt du wie ich die Entfernung messen kann?
  Mit Zitat antworten Zitat
Benutzerbild von alcaeus
alcaeus

Registriert seit: 11. Aug 2003
Ort: München
6.537 Beiträge
 
#4

Re: Ganz einfaches Fußballgame

  Alt 6. Mai 2004, 18:59
Also, Mathe wasweißichwievielte Klasse:
Distanz zwischen Punkt P1(x1, y1) und P2(x2, y2):
dist := sqrt(sqr(x2-x1)+sqr(y2-y1)); Also, das müsste funzen...wo die Herrschaften stehen weißt du ja,oder?
Andreas B.
Die Mutter der Dummen ist immer schwanger.
Ein Portal für Informatik-Studenten: www.infler.de
  Mit Zitat antworten Zitat
Benutzerbild von dizzy
dizzy

Registriert seit: 26. Nov 2003
Ort: Lünen
1.932 Beiträge
 
Delphi 7 Enterprise
 
#5

Re: Ganz einfaches Fußballgame

  Alt 6. Mai 2004, 19:02
Du hast zwei Koordinaten, mit je einmal X und einmal Y.

Angemommen ein Spieler steht bei
X=10, Y=20
ein weiterer bei
X=15, Y=50

(hier ists sofort ersichtlich, soll so sein, damit man sieht, dass es wirklich so geht )

Dies sind 2 Vektoren A=(10, 20); B=(15, 20)
Der Koordinatenunterschied ergibt sich aus A-B = (-5, 0)
Dies ist der Vektor zwischen den beiden Spielern. Und dessen Länge ist dann die Entfernung - die sich wie folgt berechnet:
Länge = sqrt(x² + y²)
ind diesem Fall
Länge = sqrt(-5² + 0²) = sqrt(-5²) = sqrt(25) = 5
*tädäää* - der Abstand zwischen den Spielern - ganz egal wie sie zueinander stehen.


gruss,
dizzy

\\edit: mal wieder zu langsam...
Fabian K.
INSERT INTO HandVonFreundin SELECT * FROM Himmel
  Mit Zitat antworten Zitat
Benutzerbild von glkgereon
glkgereon

Registriert seit: 16. Mär 2004
2.287 Beiträge
 
#6

Re: Ganz einfaches Fußballgame

  Alt 6. Mai 2004, 20:01
und abnehmen: du machst
Delphi-Quellcode:
if keydown(watweissich)
then
Begin
gegner.image:=ohneball;
for i:=1 to x1-x2 do
   begin
   ball.x:=ball.x- (x1-x2);
   ball.y:=ball.y- (y1-y2) div (x1-x2);//dann bewegts sich gleichmässig
   end;
spieler.image:=mitball;
end;
also so in etwa..is teilweise nur symbolisch
gibt noch ungelöste frage, aber so isses doc vom grundsatz schon ma ganz gut
auch so sachen obs nicht ball.x:=ballx.x + sein muss, ausprobieren
»Unlösbare Probleme sind in der Regel schwierig...«
  Mit Zitat antworten Zitat
Benutzerbild von Seniman
Seniman

Registriert seit: 15. Sep 2003
Ort: Münster
98 Beiträge
 
#7

Re: Ganz einfaches Fußballgame

  Alt 6. Mai 2004, 20:02
Hallo,

noch ein kleiner Tipp für die Umsetzung.

Die Entfernung berechnet sich, wie ja schon beschreiben, mit
dist:=sqrt(sqr(x1-x2)+sqr(y1-y2)); Wenn du nun die If-Abfrage bastelst, in der die Entfernung überprüft wird, dann quadriere besser beide Seiten der Gleichung, d.h. statt

if sqrt(sqr(x1-x2)+sqr(y1-y2))<distmax then blablabla schreibst du besser

if (sqr(x1-x2)+sqr(y1-y2)<distmax*distmax then blablabla Inhaltlich passiert genau dasselbe, es ist aber ein kleines bißchen schneller.

Grüße
Seniman
  Mit Zitat antworten Zitat
Neuni

Registriert seit: 25. Feb 2004
815 Beiträge
 
Delphi 7 Personal
 
#8

Re: Ganz einfaches Fußballgame

  Alt 6. Mai 2004, 20:33
ähhh...ja
Ich bin nicht gerade DAS Ass in Mathe, also falls jemand dass alles versteht, könnte er mir vielleicht nen Beispiel geben, wie ich die entfernung zwisch image1 und image2 messe?
  Mit Zitat antworten Zitat
Benutzerbild von alcaeus
alcaeus

Registriert seit: 11. Aug 2003
Ort: München
6.537 Beiträge
 
#9

Re: Ganz einfaches Fußballgame

  Alt 6. Mai 2004, 20:40
Naja, du musst die Position eines Images kennen: x1, y1.
Außerdem musst du einen Hotspot-Offset definieren: ox1, oy1. Der Hotspot ist der Punkt, von dem die Entfernung aus gemessen wird. Die Position ist immer relativ zu (x1, y1) definiert. Für das zweite Image gilt natürlich das gleicht. Also:
Delphi-Quellcode:
x1 := Image1.Left;
y1 := Image1.Top;
x2 := Image2.Left;
y2 := Image2.Top;
dist := sqrt(sqr((x2+ox2)-(x1+ox1))+sqr((y2+oy2)-(y1+oy1)));
Ich glaube du meintest das, oder?
Andreas B.
Die Mutter der Dummen ist immer schwanger.
Ein Portal für Informatik-Studenten: www.infler.de
  Mit Zitat antworten Zitat
Neuni

Registriert seit: 25. Feb 2004
815 Beiträge
 
Delphi 7 Personal
 
#10

Re: Ganz einfaches Fußballgame

  Alt 6. Mai 2004, 21:26
wie bekomm ich denn den hotspot-offset raus???
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:20 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz