Player objectbegrenzung

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

 

DebbieDanger

Betreff: Player objectbegrenzung

BeitragSo, Apr 17, 2005 19:19
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi, ihr habt mir ja schon sehr geholfen, jetzt habe ich ncoh ne frage.

Ich habe eionen beweglichen player und ein object, in diesem fall ne lampe aber wenn der player (in vogelperspektive) auf die lampe trifft läuft er hindurch.

Ich habe jetzt schon die kollision abgefragt:
BlitzBasic: [AUSKLAPPEN]
If ImagesCollide(player, plx, ply,animindex, lampe1, 200,200,0) Then

EndIf

Nun bei einem normalen randtest würde ich ihn jetzt aus der richtung aus der er gekommen ist wieder ein paar picel zurücksetzen. Aber er kann ja aus allen 8 richtungen auf das objekt treffen. Nun bin ich etwas hinterfragt, kann mir jemand nen denkanstoß geben?

Danke schonmal.

diGGa

GruppenKaspar

BeitragSo, Apr 17, 2005 19:33
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]

oldplx = plx
oldply = ply
If ImagesCollide(player, plx, ply,animindex, lampe1, 200,200,0) Then
plx = oldplx
ply = oldply
EndIf


denke das funzt abver nicht getestet
Gestern Nacht Schlug der Regen an mein Fenster
Ich ging durch das dunkle Zimmer und
glaubte im Licht der Straßenlampe
Den Geist unseres jahrhunderts auf der
Straße zu sehen
Der uns sagte, daß wir alle am Rande
des Abgrunds stehen.
- Al Steward


Athlon 64 3000+ / Radeon 9600 / 1024mb ddram
 

hitokiri

BeitragSo, Apr 17, 2005 19:35
Antworten mit Zitat
Benutzer-Profile anzeigen
Wie hast du denn genau die Playersteuerung geregelt ?
falls du für den player ein feld y speed und ein feld x speed hast dann ist das ganze relativ simpel:
if imagescollide(blablabla)

playerx= playerx-playerxspeed
playery= playery-playeryspeed

also du nimmst einfach den negativen wert der bewegung in x und y richtung.

mal ein beispiel:
spieler kommt von oben links. dann bewegt er sich in positive x und y richtung. also wäre dann playerx=playerx+playerxspeed. du nimmst dann einfach stattdessen playerx=playerx-playerxspeed wenn er kollidiert.

diGGa

GruppenKaspar

BeitragSo, Apr 17, 2005 19:37
Antworten mit Zitat
Benutzer-Profile anzeigen
hitokiri hat Folgendes geschrieben:
Wie hast du denn genau die Playersteuerung geregelt ?
falls du für den player ein feld y speed und ein feld x speed hast dann ist das ganze relativ simpel:
if imagescollide(blablabla)

playerx= playerx-playerxspeed
playery= playery-playeryspeed

also du nimmst einfach den negativen wert der bewegung in x und y richtung.

mal ein beispiel:
spieler kommt von oben links. dann bewegt er sich in positive x und y richtung. also wäre dann playerx=playerx+playerxspeed. du nimmst dann einfach stattdessen playerx=playerx-playerxspeed wenn er kollidiert.


das geht nicht da er ja nich weiss aus welcher richtung er kommt. kommt er von unten dann gehts weiter rein
Gestern Nacht Schlug der Regen an mein Fenster
Ich ging durch das dunkle Zimmer und
glaubte im Licht der Straßenlampe
Den Geist unseres jahrhunderts auf der
Straße zu sehen
Der uns sagte, daß wir alle am Rande
des Abgrunds stehen.
- Al Steward


Athlon 64 3000+ / Radeon 9600 / 1024mb ddram
 

hitokiri

BeitragSo, Apr 17, 2005 19:39
Antworten mit Zitat
Benutzer-Profile anzeigen
no, weil er , wenn er von unten kommt, einen negativen "yspeed" hat, falls sie eben so ein feld benutzt. wenn sie dann "- yspeed" macht, das selber schon negativ ist, machts ein + draus und damit bewegt er sich zurück nach unten Wink

diGGa

GruppenKaspar

BeitragSo, Apr 17, 2005 19:43
Antworten mit Zitat
Benutzer-Profile anzeigen
wenn er das so macht ja Smile
Gestern Nacht Schlug der Regen an mein Fenster
Ich ging durch das dunkle Zimmer und
glaubte im Licht der Straßenlampe
Den Geist unseres jahrhunderts auf der
Straße zu sehen
Der uns sagte, daß wir alle am Rande
des Abgrunds stehen.
- Al Steward


Athlon 64 3000+ / Radeon 9600 / 1024mb ddram
 

DebbieDanger

BeitragSo, Apr 17, 2005 21:03
Antworten mit Zitat
Benutzer-Profile anzeigen
Danke für die rasche antwort, nein mein spieler läuft direct ohne beschleunigung, digga ich denke das müsste klappen, ich probiers mal.

Hm ich bretter immernoch durch die wand, bzw die lampe
 

hitokiri

BeitragSo, Apr 17, 2005 21:21
Antworten mit Zitat
Benutzer-Profile anzeigen
*kopfkratz* bist du sicher, dass du in der kollisionsabfrage das richtige handle, also die richtige variable für das bild der lampe angegeben hast ? müsste eigentlich wirklich so klappen, ist vielleicht ein tippfehler
 

DebbieDanger

BeitragSo, Apr 17, 2005 22:07
Antworten mit Zitat
Benutzer-Profile anzeigen
Also wenn ich dich richtig verstehe hito meinst du das bei der kollisioonsabfrage was nicht stimmt, aber ich habe einen test, bei mir wird ein bild eingeblendet wenn dich spieler und lampe berühren, und das funktioniert ja auch prima, nur kann ich das bild-den spieler - nicht vom überqueren der lampe abhalten.

Alfadur

BeitragMo, Apr 18, 2005 0:37
Antworten mit Zitat
Benutzer-Profile anzeigen
sag mal mehr zur steuerung... kann sich dein spieler in 360° bewegen? also machste die bewegung mit sin und cos? tilebasierte karte?? ein paar mehr infos brauche ich noch .-)
A Cray is the only computer that runs an endless loop in less than four hours.
 

suberror

BeitragMo, Apr 18, 2005 14:32
Antworten mit Zitat
Benutzer-Profile anzeigen
gelöscht
  • Zuletzt bearbeitet von suberror am Sa, Mai 06, 2017 16:28, insgesamt 2-mal bearbeitet
 

DebbieDanger

BeitragMo, Apr 18, 2005 21:41
Antworten mit Zitat
Benutzer-Profile anzeigen
Ok danke das versuche ich mal, verdammt ich komme wohl um types nicht rum hehe.
Bis später.

diGGa

GruppenKaspar

BeitragMo, Apr 18, 2005 21:45
Antworten mit Zitat
Benutzer-Profile anzeigen
is das nich das gleiche was ich oben geschrieben habe?!
Gestern Nacht Schlug der Regen an mein Fenster
Ich ging durch das dunkle Zimmer und
glaubte im Licht der Straßenlampe
Den Geist unseres jahrhunderts auf der
Straße zu sehen
Der uns sagte, daß wir alle am Rande
des Abgrunds stehen.
- Al Steward


Athlon 64 3000+ / Radeon 9600 / 1024mb ddram
 

suberror

BeitragDi, Apr 19, 2005 11:17
Antworten mit Zitat
Benutzer-Profile anzeigen
gelöscht

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group