Schuss mit Wand Kollidieren

Übersicht BlitzBasic Beginners-Corner

Gehe zu Seite 1, 2  Weiter

Neue Antwort erstellen

 

Schnuff

Betreff: Schuss mit Wand Kollidieren

BeitragMo, Aug 15, 2005 13:08
Antworten mit Zitat
Benutzer-Profile anzeigen
hallo ich habe ein kleines Spiel Proggramiert,
in dem man auch Schießen kann.
Folgender Fehler trat dabei auf:

wenn der schuss mit der Wand Kollidiert wird die Patrone nicht gelöscht
was kann ich da machen?

das Spiel ist in 3D und die Schüsse sind in einem Type gespeichert

Blitz3D

BeitragMo, Aug 15, 2005 13:30
Antworten mit Zitat
Benutzer-Profile anzeigen
Freeentity Schuss\Patrone löscht die Patrone aus dem Speicher

Delete Schuss.Waffenschusse löscht die Containervariable(oder halt den Schuss)
User posted image
Xware Entertainment und Forum
User posted image
 

Schnuff

BeitragMo, Aug 15, 2005 13:43
Antworten mit Zitat
Benutzer-Profile anzeigen
ja aber das eigentliche Problem ist, dass wenn die Patrone
die Wand berührt, keine Aktion erfolgt Crying or Very sad

darth

BeitragMo, Aug 15, 2005 13:45
Antworten mit Zitat
Benutzer-Profile anzeigen
schon mal mit meshesintersect() versucht?
irgendwie so was wie:
if meshesintersect(kugel,wand)=true then
bitte lösch die kugel, sonst bin ich traurig
endif
Diese Signatur ist leer.
 

Schnuff

BeitragMo, Aug 15, 2005 13:51
Antworten mit Zitat
Benutzer-Profile anzeigen
der Code Funktion nicht:
Code: [AUSKLAPPEN]

if meshesintersect(kugel,wand)=true then
bitte lösch die kugel, sonst bin ich traurig
endif


Spaß beiseite funktioniert jetzt, Danke @darth gamer
wiso wird dass Spiel dann immer um die Hälfte Langsamer?
kann man das vermeiden?

Blitz3D

BeitragMo, Aug 15, 2005 13:58
Antworten mit Zitat
Benutzer-Profile anzeigen
weil Meshesintersect böhze langsam ist.
Benutze EntityCollided()

Oder benutz doch ganz einfach die Pickbefehle für die Schüsse, das ist
viel einfacher Wink
User posted image
Xware Entertainment und Forum
User posted image
 

Schnuff

BeitragMo, Aug 15, 2005 14:01
Antworten mit Zitat
Benutzer-Profile anzeigen
Entitycollided() geht nicht, weiß nicht warum
Pickbefehle? was ist das?

Blitz3D

BeitragMo, Aug 15, 2005 14:01
Antworten mit Zitat
Benutzer-Profile anzeigen
Schnüffel mal in der Online-Hilfe nach CameraPick
User posted image
Xware Entertainment und Forum
User posted image
 

Schnuff

BeitragMo, Aug 15, 2005 14:03
Antworten mit Zitat
Benutzer-Profile anzeigen
die Befehle funktionieren nicht, weil ich das Genze Haus in Maplet erstellt habe,
somit kann ich nicht die entfernung zu einer Bestimmten Wand messen Crying or Very sad

Blitz3D

BeitragMo, Aug 15, 2005 14:06
Antworten mit Zitat
Benutzer-Profile anzeigen
Welche Entfernung?
quatsch
also, du machst das so:
BlitzBasic: [AUSKLAPPEN]
EntityPickMode Level,2 ;den Pickmodus des Mapletlevels auf 2(Polygon) stellen

Repeat ;Hauptschleife

Identitaet = CameraPick(Kamera,FadenkreuzX,FadenkreuzY) ;Die Variable ;[Identitaet] hat immer die Kennung des
;Objektes, das mit dem Fadenkreuzmittelpunkt in Berührung kommt

If MouseDown(1) And Identitaet = Level Then ;Wenn die Maustaste (links)
;gedrückt wird und der Spieler
;das Maplet-Level im Visier hat

FunkenKommenAusDerWand() ;...solleneben funken rauskommen
; oder so

EndIf ;if-schleife abschließen
User posted image
Xware Entertainment und Forum
User posted image

darth

Betreff: echt?

BeitragMo, Aug 15, 2005 14:15
Antworten mit Zitat
Benutzer-Profile anzeigen
echt? meshesintersect() macht das prog langsam?!?
und ich dachte immer es liegt an der mesh die ich geladen hab...
hmmm... muss ich mir also was anderes überlegen
Diese Signatur ist leer.

Blitz3D

BeitragMo, Aug 15, 2005 14:20
Antworten mit Zitat
Benutzer-Profile anzeigen
ich hab den Code ein wenig optimiert, Jan_ hat mich darauf hingewiesen.

BlitzBasic: [AUSKLAPPEN]
EntityPickMode Level,2 ;den Pickmodus des Mapletlevels auf 2(Polygon) stellen

Repeat ;Hauptschleife

If MouseDown(1) And CameraPick(Kamera,FadenkreuzX,FadenkreuzY) = Level Then ;Wenn die Maustaste (links)
;gedrückt wird und der Spieler
;das Maplet-Level im Visier hat

FunkenKommenAusDerWand() ;...solleneben funken rauskommen
; oder so

EndIf ;if-schleife abschließen


So, jetz wird nur gepickt, wenn man schießt, das beschleuningt das SPiel ein bisschen Wink
User posted image
Xware Entertainment und Forum
User posted image
 

Schnuff

BeitragMo, Aug 15, 2005 15:16
Antworten mit Zitat
Benutzer-Profile anzeigen
aber man muss in dem Haus auch auf gegner Schießen können
und wenn man das so macht wie du, Blitz3D dann
wird die Kugel sofort gelöscht Sad
das heißt sie fliegt garnicht los Sad
falls es euch hilft, hier der code:
BlitzBasic: [AUSKLAPPEN]

; Schießen
If KeyHit(57) And Muni>0 Then
Munition.Schuss=New Schuss
Munition\Ent=CopyEntity(Patrone)
PositionEntity Munition\Ent,EntityX(Spieler),EntityY(Spieler),EntityZ(Spieler)
RotateEntity Munition\Ent,EntityPitch(Spieler),EntityYaw(Spieler),EntityRoll(Spieler)
MoveEntity Munition\Ent,0,0,MeshDepth(Spieler)
TurnEntity Munition\Ent,90,0,0
EntityType Munition\Ent,3
ShowEntity Munition\Ent
EndIf

; Schüsse Bewegen
For Munition.Schuss=Each Schuss
MoveEntity Munition\Ent,0,0.2,0
;If MeshesIntersect(Munition\Ent,Haus1)=1 Then Loesche_die_Patrone=1
;If MeshesIntersect(Munition\Ent,Bad )=1 Then Loesche_die_Patrone=1
If Loesche_die_Patrone=1 Then FreeEntity Munition\Ent : Delete Munition.Schuss : Loesche_die_Patrone=0
Next

Blitz3D

BeitragMo, Aug 15, 2005 15:32
Antworten mit Zitat
Benutzer-Profile anzeigen
nochmal von vorne:
Benutze nicht die Kollision von den Kugeln und derm Level sondern benutze einfach entitypick. Das ist viel leichter umzusätzen. Hier einfach mal
ein Beispiel.
BlitzBasic: [AUSKLAPPEN]
Kamera = CreateCamera()
EntityPickMode Level,2
EntityPickMode Gegner,2
Einschlag = LoadSound(\"SFX/impact.wav\")
Flatsch = LoadSound(\"SFX/flatsch.wav\")

Repeat

If MouseDown(1) Then
If CameraPick(Kamera,GraphicsWidth()/2,GraphicsHeight()/2) = Level Then PlaySound Einschlag
If CameraPick(Kamera,GraphicsWidth()/2,GraphicsHeight()/2) = Gegner Then PlaySound Flatsch
EndIf

RenderWorld
UpdateWorld
Flip

Until KeyHit(1)
End


So, damit hätte ich sogar schon mehr als du da oben
User posted image
Xware Entertainment und Forum
User posted image
 

Schnuff

BeitragMo, Aug 15, 2005 15:42
Antworten mit Zitat
Benutzer-Profile anzeigen
das soll ein 3D Spiel werden das heißt:
die Munition soll zu sehen sein (wenn auch nur kurz)
sowie Blitz3D kann ichs also nicht machen Sad

Blitz3D

BeitragMo, Aug 15, 2005 15:46
Antworten mit Zitat
Benutzer-Profile anzeigen
Doch, so machst du's. Du musst lediglich noch einen Sprite als
Atrappe vor dem Spieler aufblinken lassen und das war's Wink
User posted image
Xware Entertainment und Forum
User posted image
 

Schnuff

BeitragMo, Aug 15, 2005 15:52
Antworten mit Zitat
Benutzer-Profile anzeigen
na OK
PS: Falls es noch andere vorschläge gibt, her damit Wink

Blitz3D

BeitragMo, Aug 15, 2005 16:12
Antworten mit Zitat
Benutzer-Profile anzeigen
Setze erstmal die beste Möglichkeit in die Tat um.
Achja, schau dir noch SpriteViewMode an wenn du es so machst wie ich es
dir gesagt habe, sonst fliegen nur bunte Balken in der Gegend rum.
Der Sprite muss fast unabhängig von der Kamera fliegen.
User posted image
Xware Entertainment und Forum
User posted image
 

Schnuff

BeitragMo, Aug 15, 2005 20:04
Antworten mit Zitat
Benutzer-Profile anzeigen
Könte mir mal jemand ein Schuss programm schreiben
(ausreichend Kommentiert)

Blitz3D

BeitragMo, Aug 15, 2005 20:08
Antworten mit Zitat
Benutzer-Profile anzeigen
ich denke nicht, dass das hier jemand für dich macht. Und falls es jemand will,
dann sollte er das nicht tun Wink

Programmieren lernt man aus Programmieren, was geht denn jetzt schon wieder
nicht?

PS: Wenn du besser im Programmieren bist, wirst du verstehen, warum das
hier niemand tun würde
User posted image
Xware Entertainment und Forum
User posted image

Gehe zu Seite 1, 2  Weiter

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group