Kein Schuss zu sehen ...
Übersicht

Garfield360Betreff: Kein Schuss zu sehen ... |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hallo,
Ich habe (versucht) einen Code zu erstellen, der ein Schuss direkt nach vorne hin abfeuert. Doch ich sehe kein Bild geschweigedenn ein Schuss ! Ich habe ein "Print "Feuer"" mit eingebaut, so sehe ich bdas die Funktion aufgerufen wird, was sie auch wird, es gibt keine Fehlermeldung... . Hier mein Code Code: [AUSKLAPPEN] Function DrawSchuss()
Projectil=LoadImage("C:\schuss.jpg") Print "feuer" y = MouseYSpeed() x = MouseXSpeed() z = 0 For z = 1 To 10000 DrawImage(Projectil,x,y) Next End Function danke für die Hilfe Garfield360 |
||
INpac |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
hmm, warum soll das mal 3D werden?
dann kannste mit types einen schuss erstellen. du erstellst dann zB eine sphere an der cam, drehst sie auf deren winkel und bewegst sie dann immer nach vorne... |
||
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Code: [AUSKLAPPEN] Function DrawSchuss()
Projectil=LoadImage("C:\schuss.jpg") Print "feuer" y = MouseYSpeed() x = MouseXSpeed() z = 0 For z = 1 To 10000 DrawImage(Projectil,x,y) Next End Function Oweh- das ist ja übelster Code ! 1. Lade deine Bilder schon vorher- jedesmal wenn Du die Function aufrufst, lädst du auch das Bild neu. Das hält der Beste SPeicher nur begrenzt lange aus. 2. Was soll der Sinn deiner Z-Schleife sein? Du zeichnest dein Bild 10000mal an exakt derselben Stelle und bremst damit dein Programm aus. Wenn Du vorhaben solltest ein 3D-Programm zu schreiben, muß ich dich bitter enttäuschen -so wird das nichts. Du verschiebst bei einem 3D-Prg keine Blidchen, sondern Objekte. Geh mal auf die www.blitzbase.de und schau Dir die 3D-Befehle an; vielleicht wird dann einiges etwas klarer. 3. Wenn es bei einem 2D-Proggy bleiben soll: Was soll die Zuweisung von MouseXspeed und MouseYspeed ? Die Befehle geben die relative (!) Positionsänderung seit dem letzten Aufruf wieder; d.h. keine absoluten Koordinaten. Hier wär Mousex() und MouseY() der richtige Befehl. |
||
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3 Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64 B3D BMax MaxGUI Stolzer Gewinner des BAC#48, #52 & #92 |
![]() |
Jolinah |
![]() Antworten mit Zitat ![]() |
---|---|---|
Er meint vermutlich sowas:
Code: [AUSKLAPPEN] ;Bild nur 1 mal ganz am Anfang laden Global Projectil=LoadImage("C:\schuss.jpg") ;Bild an der Position der Maus malen. ;Dazu bräuchte man zwar nicht unbedingt ne eigene Funktion ;) Function DrawSchuss() DrawImage(Projectil, MouseX(), MouseY() ) End Function Aber da das ganze ja wohl 3d werden soll kann ich dir auch nur Empfehlen die 3d Befehle anzuschauen. |
||
![]() |
Markus2 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Flip vergessen ?
Ansonnsten 2D Grafik nach Renderworld malen . |
||
Garfield360 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hi,
Ich hab das problem jetzt selbst hinbekommen, doch wie bekomme ich das hin das ich sehe , wie sich die kugel bewegt? |
||
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Dein Code ? | ||
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3 Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64 B3D BMax MaxGUI Stolzer Gewinner des BAC#48, #52 & #92 |
Garfield360 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
sry habe ich vergessen ...:
If KeyHit(29) Then x = EntityX (cam) y = EntityY (cam) z = EntityZ (cam) Sph = CreateSphere(22) For z=1 to 100 z=z+1 next PositionEntity sph ,x,y,z End If |
||
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Code: [AUSKLAPPEN] If KeyHit(29) Then
x = EntityX (cam) y = EntityY (cam) z = EntityZ (cam) Sph = CreateSphere(22) For z=1 to 100 z=z+1 next PositionEntity sph ,x,y,z End If Hmmm immer Noch übelst, wenn auch schon 3d.... Also: Wenn du eine For-next schleife machst, brauchst du die ZählerVariable nicht manuell zu erhöhen. (z=z+1 ist unnötig). Das erledigt die Schleife ganz allein. Dann ist deine Schleife unnötig, da du den View nicht aktualisierst, somit also keine bewegung erkennbar wäre. Code: [AUSKLAPPEN] Sph = CreateSphere(22)
while not keyhit(1) If KeyHit(29) Then fired_bullet=1 x = EntityX (cam) y = EntityY (cam) zend = EntityZ (cam) +100 end if if fired_bullet=1 then if z <=zend then PositionEntity sph ,x,y,z z=z+1 else fired_bullet=0 end if End If updateworld() renderworld() wend Was ich da geschrieben hab, ist noch äusserst unsauber, und auch ungetestet. es geht hier aber mehr um das Prinzp: Wenn die Feuertaste gedrückt wird, merkst du dir (Fired_bullet) dass eine Kugel unterwegs ist und veränderst dann bei jedem Durchlauf deiner Hauptschleife die Position ein Wenig, bis die Kugel ihre Reichweite überschritten hat. In diesem (unschönen) Beispiel wird deine Kugel auch unabhängig von der Blickrichtung abgefeuert. aber als Grundprinzip sollte es (hoffe ich) etwas helfen. |
||
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3 Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64 B3D BMax MaxGUI Stolzer Gewinner des BAC#48, #52 & #92 |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group