Problem mit schüssen.
Übersicht

![]() |
ottaBetreff: Problem mit schüssen. |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hallo liebe Community,
Ich bin gerade dabei ein kleinen Shooter zu machen. Mein Problemchen ist das ich mit Hilfe der Suche funktion ein kleines Schussscript gefunden habe das eigendlich für ein 2D Spiel war. Naja da mein Spiel eh nur von der Seite gesehen wird aber dennoch 3D ist habe ich es einfach übernommen und ein wenig bearbeitet. Aber jetzt funktioniert es nicht so wie es soll. Hier mal der Code: Code: [AUSKLAPPEN] If KeyDown(57) Then s.schuss=new schuss s\x=playerx s\y=playery EndIf For s.schuss=Each schuss s\x=s\x+1 PositionEntity proj,s\x,s\y+2,0 If s\x>640 Delete s.schuss EndIf Next So meine Problem ist das wenn der Schuss fliegt und ich während dessen noch einmal drücke verschwindet der fliegende und ein neuer Schuss fliegt los. Das ist zwar toll das dieser wenichsten schonmal fliegt allerdings währe es tol wenn mehrere Schüsse fliegen könnten. Kann mir da vielleicht Jemand weiterhelfen? Wenn ihr den ganzen Code braucht um den Fehler zu finden sagt bescheid. Über jeden Hinweis bin ich dankbar ![]() |
||
AthlonXP 2800+, Radeon 9600XT,160GBHDD,512 MB DDR Ram (neuer Rechner neues Glück;))
Aktuelles Projekt: momentan Projektlos |
- Zuletzt bearbeitet von otta am Mo, März 13, 2006 20:29, insgesamt einmal bearbeitet
![]() |
Smily |
![]() Antworten mit Zitat ![]() |
---|---|---|
Also ich kann jetzt auf anhieb keinen Fehler im Code finden. Es wird ein neuer Schuss erstellt und es werden alle in einer schleife durchgegangen.
Hast du im Code noch andere Stellen, wo Irgendwelche operationen mit den Types durchgeführt werden, wenn ja poste die mal. |
||
Lesestoff:
gegen Softwarepatente | Netzzensur | brain.exe | Unabhängigkeitserklärung des Internets "Wir müssen die Rechte der Andersdenkenden selbst dann beachten, wenn sie Idioten oder schädlich sind. Wir müssen aufpassen. Wachsamkeit ist der Preis der Freiheit --- Keine Zensur!" stummi.org |
![]() |
otta |
![]() Antworten mit Zitat ![]() |
---|---|---|
ich poste mal den ganzen code, der ist noch nciht alzulang
Code: [AUSKLAPPEN] Graphics3D 800,600,32,2 ;variabeln festlegen spielerx#=1 spielery#=2 ;Dateien werden hier geladen level=LoadMesh("maps/testlevel.b3d") ballerman=loadsprite("figuren/bm.png",2) SpriteViewMode ballerman,2 proj = LoadSprite("sonstiges/schuss.png") ;Kamera und Licht kamera=createcamera(ballerman) licht=createlight() ;Objekte werden gesetzt PositionEntity kamera,1,2,-4 RotateEntity kamera,10,0,0 PositionEntity level,0,0,0 PositionEntity licht,1,2,0 Type schuss Field x,y End Type While Not KeyHit(1) If keydown(203) then spielerx=spielerx-0.1 EndIf If keydown(205) then spielerx=spielerx+0.1 EndIf If KeyDown(57) Then s.schuss=new schuss s\x=playerx s\y=playery EndIf For s.schuss=Each schuss s\x=s\x+1 PositionEntity proj,s\x,s\y+2,0 If s\x>640 Delete s.schuss EndIf Next PositionEntity ballerman,spielerx,spielery,0 RenderWorld Flip Wend |
||
AthlonXP 2800+, Radeon 9600XT,160GBHDD,512 MB DDR Ram (neuer Rechner neues Glück;))
Aktuelles Projekt: momentan Projektlos |
![]() |
Smily |
![]() Antworten mit Zitat ![]() |
---|---|---|
ahhh. ich habs ![]() die zeile [syntax="bb"]PositionEntity proj,s\x,s\y+2,0 [/syntax] verschiebt das Objekt. Also wird EIN schuss erst zum ersten eintrag bewegt, dann zum zweiten, dann zum dritten... bis zum letzten. und dann wird gerendert. also wird der schuss nur beim letzten eintrag angezeigt. Du musst für jeden schuss ein Entity für sich erstellen Ich poste mal bewusst keinen Code, weil du da nichts lernen würdest ![]() |
||
Lesestoff:
gegen Softwarepatente | Netzzensur | brain.exe | Unabhängigkeitserklärung des Internets "Wir müssen die Rechte der Andersdenkenden selbst dann beachten, wenn sie Idioten oder schädlich sind. Wir müssen aufpassen. Wachsamkeit ist der Preis der Freiheit --- Keine Zensur!" stummi.org |
![]() |
Iguan |
![]() Antworten mit Zitat ![]() |
---|---|---|
1. Erstelle am Anfang deines Codes (vor der Mainloop)das Schuss-Entity
2.Verstecke dieses mit HideEntity Nun kannst du beim Erstellen eines Schusses dieses versteckte Schuss-Entity kopieren (CopyEntity). etwa so: s\ent = CopyEntity(Schuss-Entity) Hoffe dir geholfen zu haben |
||
![]() |
otta |
![]() Antworten mit Zitat ![]() |
---|---|---|
Vielen Dank für eure hilfe werd mich gleich mal drann probieren. Und danke Smily, dass du nicht gleich nen kompletten Code gepostet hast! Ein wenig will ich meine Gehirnzellen doch selber mal arbeiten lassen ![]() Edit: Es hat zwar ein weilchen gedauert aber ich habs nun hinbekommen ![]() |
||
AthlonXP 2800+, Radeon 9600XT,160GBHDD,512 MB DDR Ram (neuer Rechner neues Glück;))
Aktuelles Projekt: momentan Projektlos |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group