AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi Kollision zwischen 2 Bildern in DelphiX
Thema durchsuchen
Ansicht
Themen-Optionen

Kollision zwischen 2 Bildern in DelphiX

Ein Thema von ISAS · begonnen am 15. Nov 2003 · letzter Beitrag vom 30. Nov 2003
Antwort Antwort
Seite 2 von 2     12   
Benutzerbild von ISAS
ISAS

Registriert seit: 24. Sep 2003
Ort: Vietnam
205 Beiträge
 
Delphi 4 Standard
 
#11

Re: Kollision zwischen 2 Bildern in DelphiX

  Alt 19. Nov 2003, 12:56
Danke mal für deine Antwort, aber leider muss ich dich entäuschen.
Das was du mir programmiert hast, habe ich auch schon selber mal programmiert.

Es handelt sich um das Bewegen.
Es soll sich nicht der Spieler bewegen, sondern die Umgebung. Der Spieler soll im Mittelpunkt befestigt sein und sich nicht vom Platz bewegen.

Ich hab schon vieles probiert, komme aber nicht auf die Lösung.

Habe hier ein Bild, wie ich das meine. (Bei meinem Spiel, was ich da oben mitgeschickt habe, ist es auch so)
Miniaturansicht angehängter Grafiken
erkl_rung1.jpg  
Signatur wurde auf Wunsch geändert. Deswegen einfach hier drauf klicken-> www.geggi.at.gg
  Mit Zitat antworten Zitat
Benutzerbild von ISAS
ISAS

Registriert seit: 24. Sep 2003
Ort: Vietnam
205 Beiträge
 
Delphi 4 Standard
 
#12

Re: Kollision zwischen 2 Bildern in DelphiX

  Alt 19. Nov 2003, 12:59
Zitat von ISAS:
Naja, 5 mal wurde es schon heruntergeladen. Hat schon jemand eine Idee??



Wenn ich die Kollision habe und das Spiel ruckelfrei geht, dann ises schon fast fertig.
Gegner sind dann ein Kinderspiel (Hab ich schon gemacht). Nur das Inventar (Maus in DelphiX) wird mir noch einige Probleme bereiten.

Also, helft mir bitte, bitte, bitte so schnell, viel und gut wie möglich
Ups, naja, wollte nur ändern, dass es 5 mal downgeloadet wurde, aber hab aus versehen auf den Button Zitat geklickt
Signatur wurde auf Wunsch geändert. Deswegen einfach hier drauf klicken-> www.geggi.at.gg
  Mit Zitat antworten Zitat
ATwardz

Registriert seit: 12. Mai 2003
205 Beiträge
 
Delphi 7 Professional
 
#13

Re: Kollision zwischen 2 Bildern in DelphiX

  Alt 19. Nov 2003, 18:44
So , ich hoffe das dir dieses Beispiel weiter hilft!
Ich hatte noch keine Zeit für deine (Ich geh um die Büsche Kollision)!
Aber sonst funkst alles ruckelfrei!

Eins noch, da die Büsche jetzt keine VAriablen sind, kannst du sie nur mit Itemindex von der Spriteengine oder per finspriteat(x,y) anwählen!

Wenn es immernoch nicht das ist was du suchst , habe ich wohl grundlegend was falsch verstanden!


ATwardz!
Angehängte Dateien
Dateityp: zip sprites_175.zip (32,9 KB, 24x aufgerufen)
  Mit Zitat antworten Zitat
Benutzerbild von ISAS
ISAS

Registriert seit: 24. Sep 2003
Ort: Vietnam
205 Beiträge
 
Delphi 4 Standard
 
#14

Re: Kollision zwischen 2 Bildern in DelphiX

  Alt 20. Nov 2003, 20:07
Danke, das hat mir gefehlt. Mille grazie!!!

Hab das Tgegenstand.create immer anders gemacht . Das wird der Grund gewesen sein, wieso ich nur 1 Bild für Tgegenstand deklarieren konnte . Habe gerade deinen Quellcode Delphi4 tauglich gemacht (Hab nur Delphi4 und deswegen kann ich die neueren Versionen nicht öffnen, weil da immer ein Error kommt. Ich kann halt nur den Quellcode lesen, das Fenster, wo Labels, Buttons etc reinkommen, dass ladet der nicht.)

Bin im Moment gerade dabei, das Laden einzufügen, was ich aber sicher gleich haben werde.
Signatur wurde auf Wunsch geändert. Deswegen einfach hier drauf klicken-> www.geggi.at.gg
  Mit Zitat antworten Zitat
ATwardz

Registriert seit: 12. Mai 2003
205 Beiträge
 
Delphi 7 Professional
 
#15

Re: Kollision zwischen 2 Bildern in DelphiX

  Alt 20. Nov 2003, 23:01
Freud mich das ich helfen konnte!
Viel Erfolg noch!

ATwardz
  Mit Zitat antworten Zitat
Benutzerbild von ISAS
ISAS

Registriert seit: 24. Sep 2003
Ort: Vietnam
205 Beiträge
 
Delphi 4 Standard
 
#16

Re: Kollision zwischen 2 Bildern in DelphiX

  Alt 29. Nov 2003, 13:29
So, bin erst jetzt zum Erläutern meines Problems gekommen.

Ich öffne das Projekt. Das Öffnen-Fenster von Windows öffnet sich auch. Ich such die Textdatei, welche den Code für das Level enthält heraus und öffne sie. Es funktoniert alles perfekt, ausser eines.

Die Version, die ich von ATwardz erhalten habe, funktioniert ruckelfrei. Mein Level aber nicht. Es ist auch nicht grösser oder enthält mehr Sachen. 10 Büsche, 1 Player und der Rest ist Gras.
Also kann es nur am Laden liegen. Ich lade die Textdatei nämlich so:

Delphi-Quellcode:
if opendialog1.execute then
 Data:=TIniFile.Create(opendialog1.Filename);

for i:=0 to Maxx do
begin
 for j:=0 to Maxy do
  begin
    steine[i,j].visible := Data.readBool(IntToStr(i)+'_'+IntToStr(j),'visible',True);
    steine[i,j].typ := Data.readInteger(IntToStr(i)+'_'+IntToStr(j),'typ',0);
  end;
end;
data.free;

muster:=Timage.create(self);

for i:=0 to Maxx do
begin
for j:=0 to Maxy do
begin

  With TGegenstand.Create(DXSpriteEngine1.Engine) do
  Begin
    if steine[i,j].typ=2 then begin
    {Image:=form1.DXImageList1.Items[0];}
    X:=j*32;
    Y:=i*32;
    end;
  end;
end;
end;
muster.free;
end;
Und die Textdatei schaut so aus:

[1_1]
visible=1
typ=2
[3_5]
visible=1
typ=3
[4_8]
visible=1
typ=2
...

Und dann wird das nie wieder verwendet.
Signatur wurde auf Wunsch geändert. Deswegen einfach hier drauf klicken-> www.geggi.at.gg
  Mit Zitat antworten Zitat
ATwardz

Registriert seit: 12. Mai 2003
205 Beiträge
 
Delphi 7 Professional
 
#17

zu viele Bilder eingeladen!

  Alt 29. Nov 2003, 23:06
Hi,

ich bin es wieder! Welche Werte werden MaxX und Maxy zugeweiden?
Ich rate dir hiermit immernoch das du mit Sprites arbeites, da diese wesntlich effektiver sind.

Dein Problkem ist glaube ich, das du alle Bitmaps lädst und anzeigst(Ach diese, die nicht im Surface deines Fensters angeziegt werden! So muss der Rechner überflüßiges berechnen!
Vorteile von Sprites sind, dass nur immer diese berechnet werden die angezeigt man sehen kann, jeder sprite greift auf deine Imagelist zu und nimmt das bild bei jeder berechnung neu aus der Liste!So ist deine Version viel Speicherfressender,da zu bei 100 Büschen 100 mal die Bitmap/JPG einliesst!(Schau dir mal im Taskmanager den verwendeten Speicher an, ich glaube der wird enorm sein!

An deiner Stelle würde ich echt auf Sprites umsteigen!
So muss du es folgendermassen anstellen!
- Images erstellen wenn sie ins Bild rücken!
- Images freigeben wenn sie aus dem Bild rücken!
- Die SaveTXT muss desswegen noch Koordinaten erhalten!

So ich denke einer von beiden wegen, wobei die Spritesvariante echt die entschieden bessere ist , müsste hinhauen!
  Mit Zitat antworten Zitat
Benutzerbild von ISAS
ISAS

Registriert seit: 24. Sep 2003
Ort: Vietnam
205 Beiträge
 
Delphi 4 Standard
 
#18

Re: Kollision zwischen 2 Bildern in DelphiX

  Alt 30. Nov 2003, 14:03
Es sind Sprites, die ich für die Büsche verwende.
Es besteht alles aus Sprites, seitdem du mir das Projekt geschickt hast.

Habe gerade MaxX und MaxY nachgeschaut. 30 war bei beiden eingestellt, aber jetzt hab ich 16/14 eingetippt und jetzt bewegt sich der Spieler (genauer gesagt die Büsche) nicht mehr. Irgendwie komisch. Dann hab ich es wieder auf 30 umgestellt, aber das hat auch nicht funktioniert.

Dann hab ich nachgeschaut, wo sich das DoMove befindet und hab gsehn, dass da gar nichts drin steht.
Hab dann was reingschriem und nun funkts flüssig. Aber jetzt hab ich ein Problem, weil du gefragt hast, wieviel ich bei MaxX und MaxY eingegeben habe. wenn ich 100 nimm, dann ruckelts. Es kommt dann ja auf die Grösse des Levels an, welches MaxX und MaxY ich verwende, oder??

Aja, die TXT-Datei enthält ja die Koordinaten zB. [1_1] oder [4_8].

- Images erstellen wenn sie ins Bild rücken!
- Images freigeben wenn sie aus dem Bild rücken!

Wie ich das machen kann, weiss ich nicht.
Signatur wurde auf Wunsch geändert. Deswegen einfach hier drauf klicken-> www.geggi.at.gg
  Mit Zitat antworten Zitat
ATwardz

Registriert seit: 12. Mai 2003
205 Beiträge
 
Delphi 7 Professional
 
#19

Re: Kollision zwischen 2 Bildern in DelphiX

  Alt 30. Nov 2003, 16:23
Ja, dann ist ja eigentlich alles klar, hatte mich dann verlesen im Bezug auf die Koordinaten und so!

Nja das mit dem erstellen und wieder freigeben ist recht simpel!
Du bekommst ja im DXdraw immer einem bestimmten Teil deines Levels angezeigt!
Nun schreibts du einfach deine Leveleinlesemethode in die OnMove Methode!
Nun überprüfst du immer ob einer deiner Büsche eingelsen werden muss wenn du deine Person bewegst!(Dazu musst du aufgrund der Performance dein Level vorher in eine Liste schreiben die du erstellst, sonst muss der rechner ja jedesmal auf die Datei zugreifen,das verlangsam das ganze!)

Nun musst Du nur noch in deine OnMove Procedure schreiben, ungefähr so!

IF bewegung = Rechts
Then
Begin

For i:=0 to Büschanzahl
If BuschRandkoordinaten = FormRandkoordinaten
then
Sprite.create;

If Sprite.x=Form1.width+Sprite.width then
Sprite.dead;

end;

Hoffe du verstehst was ich meine sonst frag einfach!

@wardz
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 23:35 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