AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi DelphiX kollision und bewegung mit TObjectList
Thema durchsuchen
Ansicht
Themen-Optionen

DelphiX kollision und bewegung mit TObjectList

Ein Thema von dustinthewind55 · begonnen am 20. Jun 2005 · letzter Beitrag vom 21. Jun 2005
Antwort Antwort
dustinthewind55

Registriert seit: 18. Okt 2004
3 Beiträge
 
#1

DelphiX kollision und bewegung mit TObjectList

  Alt 20. Jun 2005, 21:46
Hallo leuts,

ich bin grad dabei ein kleines 2d spiel mit hilfe von delphiX zu schreiben.
Nun zu meinen problem:
der player soll in der mitte stehen bleiben und die objekte sollen sich bewegen. bis dahin kein
problem aber wenn ich nun die kollisionskontrolle einbauen will habe ich das probem dass im falle
einer kollision nur das objekt mit dem ich kollidiere stehen bleibt (wegen vererbung)

dann bin ich auf die idee gekommen die bewegung sowie die kollisionskontrolle in meine player move
procedure reinzupacken und die bewegung über eine Tobjectlist mit ner schleife zu machen. die
gegenstände wollen sich nur blöder weise keinen mm bewegen.

Delphi-Quellcode:
var gegen: TObjectList

 Procedure TPlayer.DoMove(MoveCount: Integer);
var i: Integer;
Begin
  Inherited domove(movecount);

  If isup in form1.dxinput1.states
  Then
  Begin
    for i:=0 to gegen.Count-1 do
     TGegenstand(gegen[i]).Y:=TGegenstand(gegen[i]).Y+1;
   if collision>0 then //falls der player mit mehr als nix kollidiert ;)
     for i:=0 to gegen.Count-1 do
       TGegenstand(gegen[i]).Y:=TGegenstand(gegen[i]).Y-1;
  end;

  If isdown in form1.dxinput1.states
  Then
  Begin
     for i:=0 to gegen.Count-1 do
      TGegenstand(gegen[i]).Y:=TGegenstand(gegen[i]).Y-1;
    if collision>0 then
     for i:=0 to gegen.Count-1 do
       TGegenstand(gegen[i]).Y:=TGegenstand(gegen[i]).Y+1;
  end;

  If isleft in form1.dxinput1.states
  Then
  Begin
    for i:=0 to gegen.Count-1 do
     TGegenstand(gegen[i]).X:=TGegenstand(gegen[i]).x+1;
   if collision>0 then
     for i:=0 to gegen.Count-1 do
       TGegenstand(gegen[i]).X:=TGegenstand(gegen[i]).x-1;
  end;

  If isright in form1.dxinput1.states
  Then
  Begin
    for i:=0 to gegen.Count-1 do
     TGegenstand(gegen[i]).X:=TGegenstand(gegen[i]).x-1;
   if collision>0 then
     for i:=0 to gegen.Count-1 do
       TGegenstand(gegen[i]).X:=TGegenstand(gegen[i]).x+1;
  end;
end;
wär echt kewl wenn mir jemand helfen könnt. vielen dank im voraus.
greetz dustin
  Mit Zitat antworten Zitat
dustinthewind55

Registriert seit: 18. Okt 2004
3 Beiträge
 
#2

Re: DelphiX kollision und bewegung mit TObjectList

  Alt 21. Jun 2005, 13:36
bitte bitte bitte is echt hammer wichtig.
ich komm einfach net drauf. delphi bringt auch keine fehlermeldung und nix. es tut sich einfach nix. hab auch noch nie mit TObjectList gearbeitet. kann man da nur lesend auf die objecte zugreifen oder wie?
bitte helft mir

*push*
  Mit Zitat antworten Zitat
dustinthewind55

Registriert seit: 18. Okt 2004
3 Beiträge
 
#3

Re: DelphiX kollision und bewegung mit TObjectList

  Alt 21. Jun 2005, 15:21
oki hab jetzt selber geschafft: einfach ein array nehmen.

Delphi-Quellcode:

gegen: array of Tgegenstand;

If isLeft in main.Form1.DXInput1.States then
  begin
   for i:=0 to high(gegen) do
    gegen[i].X:=gegen[i].X+2;
   if collision>0 then
     for i:=0 to high(gegen) do
       gegen[i].X:=gegen[i].X-2;
   end;
thx an alle die sichs angeschaut und drüber nach gedacht haben

  Mit Zitat antworten Zitat
Antwort Antwort


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 22:47 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