Gegner im Spaceshooter?

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

 

Frusciante

Betreff: Gegner im Spaceshooter?

BeitragMo, Sep 12, 2005 8:04
Antworten mit Zitat
Benutzer-Profile anzeigen
Also bin immernoch an nem Spaceshooter. Die schüsse hab ich jetzt mit Types gemacht. Funktioniert auch aller wunderbar. Doch wie bekomm ich am besten Gegner ins Spiel auch wieder über Types? Bin gerade noch am herumtüfteln und irgendwie bekomm ich die Gegner nicht mit Types hin. Ist das die beste Lösung oder gibts da noch andere?

mfg Frusciante²

bruZard

BeitragMo, Sep 12, 2005 8:05
Antworten mit Zitat
Benutzer-Profile anzeigen
Types sind die beste Lösung.
PIV 2,4GHz - 1GB DDR 333 - ATI Radeon9600 - WinXP - DX9.0c - BMax 1.14 - B3D 1.91 - 1280x1024x32

User posted image

Xalon

BeitragMo, Sep 12, 2005 10:23
Antworten mit Zitat
Benutzer-Profile anzeigen
BlitzBasic: [AUSKLAPPEN]

Type figuren

Field bitmap,leben,x,y
Field name$
;etc.
End Type


So sollte so ein Type aussehen Wink

Xalon
>>Besucht doch mal meine Seite,mit NEUEN Tutorials<<
User posted image
 

Finn

BeitragDi, Sep 13, 2005 16:01
Antworten mit Zitat
Benutzer-Profile anzeigen
beispiel:
Code: [AUSKLAPPEN]

AppTitle "Gegner"

type gegner
field x
field y
field image
end type

graphics 800, 600, 16, 2
Global gegneranzahl = 10

GEGNER_ERSTELLEN()

Repeat
cls
UPDATE_GEGNER()
flip
forever

;functions

function GEGNER_ERSTELLEN()

For a = 0 to gegneranzahl

g.gegner = new gegner
g\x         = Rnd(0, 200)
g\y         = Rnd(0, 300)
g\image  = loadimage("gegnerbild.bmp")

next

end function

function UPDATE_GEGNER()

For upd.gegner = each gegner

drawimage upd\image, upd\x, upd\y

;hier können dann auch alle anderen gegnerangaben wie KI, bewegung
;etc. rein

next

end function






müsste funktionieren. (natürlich nur wenn die grafik existiert)
 

Frusciante

BeitragDi, Sep 13, 2005 16:18
Antworten mit Zitat
Benutzer-Profile anzeigen
Wenn ich diese Funktion (auf den Bildschirm gemalt werden die Aliens in einer anderen Funktion) aufrufe, müssten doch eigentlich 11 neue Aliens auf den Bildschirm gezeichnet werden immer im Abstand von 20 Pixenl. Oder hab ich jetzt einen totalen Denkfehler. Es wird aber leider immer nur 1 auf den Bildschirm gezeichnet.

BlitzBasic: [AUSKLAPPEN]

Function newalien(ax, ay)
For n = 0 To 10 Step 1
alien.t_alien = New t_alien
alien\ax = alien\ax + 20
Next
End Function


Hier werden sie gezeichnet:
BlitzBasic: [AUSKLAPPEN]

Function drawalien()

For alien.t_alien = Each t_alien
DrawImage alien_i, alien\ax, alien\ay
Next



Und noch ne Frage:
Die Schüsse laufen in dem Spiel ohne eingebaute Verzägerung durch millisecs oder ähnliches. Sie bewegen sich 3 Pixel pro Schleifendurchlauf und die geschwindigkeit ist auf meinem Rechner gut so. Kann es jetzt sein das sich die Schüsse auf einem schnelleren Computer auch schneller bewegen?

mfg Frusciante²
 

Finn

BeitragDi, Sep 13, 2005 16:42
Antworten mit Zitat
Benutzer-Profile anzeigen
schreib nicht +20 sondern *20.
dann müsste es gehen.
 

mulleimers

BeitragDi, Sep 13, 2005 16:43
Antworten mit Zitat
Benutzer-Profile anzeigen
Frusciante hat Folgendes geschrieben:

Und noch ne Frage:
Die Schüsse laufen in dem Spiel ohne eingebaute Verzägerung durch millisecs oder ähnliches. Sie bewegen sich 3 Pixel pro Schleifendurchlauf und die geschwindigkeit ist auf meinem Rechner gut so. Kann es jetzt sein das sich die Schüsse auf einem schnelleren Computer auch schneller bewegen?

mfg Frusciante²

Wenn du eine Framebremse eingebaut hast nein, sonst bewegen sie sich auf einem schnelleren PC auf jeden fall schneller, da die Hauptschleife schneller durchläuft
 

Frusciante

BeitragDi, Sep 13, 2005 16:45
Antworten mit Zitat
Benutzer-Profile anzeigen
Funktioniert leider immer noch nicht.

mfg Frusciante²
 

MegaTefyt

BeitragDi, Sep 13, 2005 16:46
Antworten mit Zitat
Benutzer-Profile anzeigen
Das alien\ax ist immer der Wert des neu erstellen Types, sprich ist standardgemäß 0. Das heißt, dass du jedesmal

alien\ax = 0 + 20

rechnest, daher sind alle auf x-Position 20.

Mach einfach

alien\ax = n * 20

dann passt das. ^^
  • Zuletzt bearbeitet von MegaTefyt am Di, Sep 13, 2005 16:49, insgesamt einmal bearbeitet
 

Finn

BeitragDi, Sep 13, 2005 16:47
Antworten mit Zitat
Benutzer-Profile anzeigen
For n = 2 To 10 Step 1
alien.t_alien = New t_alien
alien\ax = n * 20 ;hier muss die vari von oben benutzt werden
Next
 

Frusciante

BeitragDi, Sep 13, 2005 16:58
Antworten mit Zitat
Benutzer-Profile anzeigen
vielen dank, jetz hats geklappt!

mfg Frusciante²

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group