Mousehit(1) funktioniert nicht
Übersicht

AMDBetreff: Mousehit(1) funktioniert nicht |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hi
also ich hab jetzt n animiertes messer und wenn man Maustaste links drückt geht auch alles nun habe ich auch noch Gegner erställt und die will ich einfach mal löschen mit ner kollisions-abfrage+Mousehit(1). also wenn ich dann mit dem gegner collidier will ich das man noch Maustaste links drücken um den gegner zu löschen. Also wenn ich des mousehit(1) weg lasse gehts aber wenn ichs dann wieder dazu schreibe gehts wieder net... weiß jemand warum? hier mal der code mit dem ich das versuch: Code: [AUSKLAPPEN] If EntityCollided(camera,4) And KeyHit(28)
FreeEntity Gegner End If MfG |
||
Das Leben ist ein scheiß Spiel hat aber eine saugute Grafik!
PC: AMD 5200 X2(2x2,6Ghz), 250GB Festplatte, 2048MB Arbeitsspeicher, Nvidia 9800 GTX mit 512MB..... Bildschrim mit 22 Zoll und 5msk Übertragungszeit...... Mein BaumMap Tutorial: http://www.blitzforum.de/forum...hp?t=26341 |
![]() |
hecticSieger des IS Talentwettbewerb 2006 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Kollisionen unter 3D gehen, anders als in 2D, nur aus der Bewegung aus. Das bedeutet, dass die Kollision nur einmal kurz True ist, wenn der Gegner nach einer Kollision stehen bleibt. Somit ist die Warscheinlichkeit recht gering in genau diesem Frame auch die Maustaste gedrückt zu haben. Probier mal erst mit MouseDown(1) sowas zu machen. | ||
Download der Draw3D2 V.1.1 für schnelle Echtzeiteffekte über Blitz3D |
AMD |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
wie meinst du des erst mousehit(1) ? einfach die Maustastenabfrage vor der Collisionsabfrage?
ich hätte jetzt auch gerade keine idee wie ich das anders lösen könnte MfG Edit: Oh ups omg^^ jetzt kapier ich des erst^^ ich soll erst versuchen so was mit Mouse"down" zu machen anstatt mit hit^^ aber da funktioniert leider auch nix |
||
Das Leben ist ein scheiß Spiel hat aber eine saugute Grafik!
PC: AMD 5200 X2(2x2,6Ghz), 250GB Festplatte, 2048MB Arbeitsspeicher, Nvidia 9800 GTX mit 512MB..... Bildschrim mit 22 Zoll und 5msk Übertragungszeit...... Mein BaumMap Tutorial: http://www.blitzforum.de/forum...hp?t=26341 |
![]() |
hecticSieger des IS Talentwettbewerb 2006 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Kannst du nochmal deinen Wunschablauf erläutern, ich verstehe grad deine Beschreibung oben nicht mehr ganz. Ich versuche mal meine Vorstellung zu erleutern.
Du bewegst deine Spielfigur durch die Gegend welche ein Messer mitsich trägt. Dieses Messer hat den Kollisionstyp ''4'' eingestellt. Das Messer selbst ist ein eigenes Entity mit eingetragenem EntityRadius. Dann kannst du mit KeyHit(28) ''Enter'' das Messer vorschnellen (angreifen) lassen. Wenn nun das Messer mit einem Gegner kollidiert soll der Gegner verwundet werden, welcher mit anschliessender Maustaste MouseHit(1) gelöscht werden kann. Alles richtig? Wenn ja, gibt es zwei Probleme dabei: - Kollisionen gehen nur von ''zu kollidierende Objekte'' auf ''zu überprüfende Objekte''. Das bedeutet, wenn sich dein Gegner auch bewegt, dann kann es (oder auch immer) vorkommen, dass keine Kollision ermitelt wird. - Wenn eine Kollision statt gefunden hat, muss in der oben genannten Konstellation der Gegnertyp zwischengespeichert werden, da eine Kollision nur aus der Bewegung ermitelt werden kann. Das bedeutet, wenn zwei Objekte sich grad berührt haben wird eine Kollision angegeben, bleiben nun beide Objekte stehen (werden nicht weiter bewegt) gibt es auch keine Kollision mehr, obwohl sie immer noch einander liegen. |
||
Download der Draw3D2 V.1.1 für schnelle Echtzeiteffekte über Blitz3D |
- Zuletzt bearbeitet von hectic am Mi, Okt 03, 2007 12:35, insgesamt einmal bearbeitet
gigi |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Teste doch erstma wann die beiden kolliedieren, z.b. mit
Code: [AUSKLAPPEN] If EntityCollided(camera,4) then Text 100,100,"Jetzt!!!!" Endif Darauf kann man dann später aufbauen. |
||
AMD |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
ich hab am anfang gschrieben:
Code: [AUSKLAPPEN] Also wenn ich des mousehit(1) weg lasse gehts aber wenn ichs dann
wieder dazu schreibe gehts wieder net also gig es funzt! aso ubs jaja des kommt immer vom schnell lesen^^ du willst das ich teste "wann" es collidiert ich hab gelesn du willst das ich teste ob es collidiert^^ und ja @hectic genau so isses wie du beschrieben hast aber wie kann ich das Problem lösen? wie machen andere so etwas? MfG |
||
Das Leben ist ein scheiß Spiel hat aber eine saugute Grafik!
PC: AMD 5200 X2(2x2,6Ghz), 250GB Festplatte, 2048MB Arbeitsspeicher, Nvidia 9800 GTX mit 512MB..... Bildschrim mit 22 Zoll und 5msk Übertragungszeit...... Mein BaumMap Tutorial: http://www.blitzforum.de/forum...hp?t=26341 |
![]() |
hecticSieger des IS Talentwettbewerb 2006 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Für Sachen die du noch nicht ganz verstehst, würde ich dir empfehlen sich kleine Testprogramme zu schreiben, die genau sowas behandeln. Damit du mal weißt wie sowas aussehen kann, habe ich dir mal grad was gemacht:
Code: [AUSKLAPPEN] Graphics3D 800,600,0,2
SetBuffer BackBuffer() Local camera=CreateCamera() PositionEntity camera,0,0,-4 CameraProjMode camera,2 CameraZoom camera,.25 Local light=CreateLight() TurnEntity light,40,-40,0 Local messer=CreateSphere(24) PositionEntity messer,+4,0,0 EntityColor messer,180,180,255 EntityType messer,1 Local gegner=CreateSphere(24) PositionEntity gegner,-4,0,0 EntityColor gegner,255,180,180 EntityType gegner,2 Collisions 1,2,2,2 ;Collisions 2,1,2,2 While Not KeyHit(1) If KeyDown(30) Then MoveEntity gegner,-.020,0,0 If KeyDown(31) Then MoveEntity gegner,+.025,0,0 If KeyDown(44) Then MoveEntity messer,-.025,0,0 If KeyDown(45) Then MoveEntity messer,+.020,0,0 UpdateWorld RenderWorld If EntityCollided(messer,2) Then Text 20,20,"Kollision" Flip Wend End Wie du siehst, geht nur eine Kollisions aus dem messer (blau) auf den gegner (rot). Wird der gegner auf das messer bewegt, passiert nichts. Dekomentierst du due kommentierte Zeile, so kann auch der gegner auf dem messer kollidieren. Das ist wichtig, wenn beide Objekte sich bewegen. Das gegeneinanderspielen geht nur wenn beide Objekte per EntityRadius angegeben sind. Den Rest solltest du dir mit einer eigenen Logik selbst machen. |
||
Download der Draw3D2 V.1.1 für schnelle Echtzeiteffekte über Blitz3D |
AMD |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
ok sry aber meine eigene logik reicht net so weit ![]() ich hab mir jetzt versucht n kleines sample zu machen was eigl. fast nur kopiert is von deinem^^ Code: [AUSKLAPPEN] Graphics3D 800,600,0,2
SetBuffer BackBuffer() Local camera=CreateCamera() PositionEntity camera,0,0,-4 CameraProjMode camera,2 CameraZoom camera,.25 Local light=CreateLight() TurnEntity light,40,-40,0 Local messer=CreateSphere(24) PositionEntity messer,+4,0,0 EntityColor messer,180,180,255 EntityType messer,1 Local gegner=CreateSphere(24) PositionEntity gegner,-4,0,0 EntityColor gegner,255,180,180 EntityType gegner,2 Collisions 1,2,2,2 Collisions 2,1,2,2 While Not KeyHit(1) hui=0 If KeyDown(44) Then MoveEntity messer,-.025,0,0 If KeyDown(45) Then MoveEntity messer,+.020,0,0 If KeyDown(30) Then MoveEntity gegner,-.020,0,0 If KeyDown(31) Then MoveEntity gegner,+.025,0,0 UpdateWorld RenderWorld If EntityCollided(messer,2) Text 20,20,"collision" End If If MouseHit(1) hui=1 If hui=1 And EntityCollided(messer,2) FreeEntity Gegner End If Flip Wend End da hab ich einfach jetzt weng rum probiert aber habs net weiter geschaft ![]() vll kann mir ja einer von euch wenigstenz ein bischen auf die sprünge helfen ![]() MfG |
||
Das Leben ist ein scheiß Spiel hat aber eine saugute Grafik!
PC: AMD 5200 X2(2x2,6Ghz), 250GB Festplatte, 2048MB Arbeitsspeicher, Nvidia 9800 GTX mit 512MB..... Bildschrim mit 22 Zoll und 5msk Übertragungszeit...... Mein BaumMap Tutorial: http://www.blitzforum.de/forum...hp?t=26341 |
![]() |
hecticSieger des IS Talentwettbewerb 2006 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Dein Code funktioniert nicht, weil ql:And eine Binäre And-Operation durchführt und beide Werte dann eben nicht übereinstimmen. Dazu kannst du dir mal Binäre Operationen im Internet anschauen. Du kannst dein Problem lösen, indem du es wie folgt veränderst:
Code: [AUSKLAPPEN] If hui=1 Then
If EntityCollided(messer,2) Then FreeEntity gegner End If End If |
||
Download der Draw3D2 V.1.1 für schnelle Echtzeiteffekte über Blitz3D |
AMD |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
hi also thx des mit and hab ich net gewusst weil ich des immer dafür verwendet hab wenn es 2 Bedingungen haben sollte!
jetzt hab ich aber des problem mein messer is mit Entityparent an der Kamera fest gemacht aber wenn ich dann den gegner mit dem messer streif verschiebt sich des Messer. weiß jemand dagegen etwas? MfG |
||
Das Leben ist ein scheiß Spiel hat aber eine saugute Grafik!
PC: AMD 5200 X2(2x2,6Ghz), 250GB Festplatte, 2048MB Arbeitsspeicher, Nvidia 9800 GTX mit 512MB..... Bildschrim mit 22 Zoll und 5msk Übertragungszeit...... Mein BaumMap Tutorial: http://www.blitzforum.de/forum...hp?t=26341 |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group