2D Shooter
Übersicht

ThothBetreff: 2D Shooter |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ich wollte heute mal probiern einen das grundgerüst für einen shooter zu programmieren:
Graphics 800,600,16,2 SetBuffer BackBuffer() Global spielerjet, spieler_links, spieler_rechts, X, Y Repeat X = 200 Y = 200 spielerjet = LoadImage ("gfx/spieler_jet.bmp") DrawImage spielerjet, X, Y spieler_links = GetKey() spieler_rechts = GetKey() If spieler_links = 203 Then X = X - 1 EndIf If spieler_rechts = 205 Then X = X + 1 EndIf If KeyDown(1) Then ende = 1 Flip Until ende = 1 Ähm.. er bewegt das Raumschiff einfach nicht.. |
||
David |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hi!
BlitzBasic: [AUSKLAPPEN]
Vorzugsweise nur eine Variable verwenden! ![]() grüße |
||
![]() |
diGGaGruppenKaspar |
![]() Antworten mit Zitat ![]() |
---|---|---|
Repeat
X = 200 Y = 200 am anfang der schleife setzt du die variablen jedesmal zurück... übrigens lädst du auch in der schleife das bild... du lädst es immer und immer wieder... |
||
Gestern Nacht Schlug der Regen an mein Fenster
Ich ging durch das dunkle Zimmer und glaubte im Licht der Straßenlampe Den Geist unseres jahrhunderts auf der Straße zu sehen Der uns sagte, daß wir alle am Rande des Abgrunds stehen. - Al Steward Athlon 64 3000+ / Radeon 9600 / 1024mb ddram |
Thoth |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Danke, hab eure Tipps beachtet, dennoch:
BlitzBasic: [AUSKLAPPEN]
..leider bewegt es sich immernoch nicht.. eigentlich sollte man mit 1 das bild nach links versetzen können, und mit 2 nach rechts.. MfG Thoth |
||
![]() |
Kryan |
![]() Antworten mit Zitat ![]() |
---|---|---|
getkey gibt den ascii-wert und nicht den scancode wieder
einfach das verwenden: spieler_links=KeyDown(203) spieler_rechts=KeyDown(205) |
||
Webspaceanbieter?
Klick hier! Kultige Spieleschmiede? Klick hier! |
- Zuletzt bearbeitet von Kryan am Di, März 22, 2005 21:07, insgesamt einmal bearbeitet
![]() |
diGGaGruppenKaspar |
![]() Antworten mit Zitat ![]() |
---|---|---|
BlitzBasic: [AUSKLAPPEN]
das bild musst du ausserhalb der schleife laden aber schon innerhalb zeichnen wenn du das nicht machst dann sieht mans ja nur einmal mit cls löschst du den bildschirm und dadurch wird das ding dann auch bewegt |
||
Gestern Nacht Schlug der Regen an mein Fenster
Ich ging durch das dunkle Zimmer und glaubte im Licht der Straßenlampe Den Geist unseres jahrhunderts auf der Straße zu sehen Der uns sagte, daß wir alle am Rande des Abgrunds stehen. - Al Steward Athlon 64 3000+ / Radeon 9600 / 1024mb ddram |
Thoth |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
tut mir leid dass ich nerve aber... hab alles berügsiuchtigt was ihr mir gesagt habt (hoff ich mal) aber es gibt keine veränderung:
BlitzBasic: [AUSKLAPPEN] Graphics 800,600,16,2 MfG |
||
Gerhard |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Du hast getkey ausserhalb der Hauptschleife. Wie soll dein Programm erfahren, welche Taste du drückst? | ||
Thoth |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Oje.. ich werd noch wahnsinnig ![]() BlitzBasic: [AUSKLAPPEN] Graphics 800,600,16,2 Leider immernoch keine veränderung ![]() Thoth |
||
Gerhard |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Machs doch wie oben vorgeschlagen:
if keyhit(203) then x=x-1 if keyhit(.... getkey setzt immer wieder deine Variable auf Null. Das musst du anders lösen. |
||
- Zuletzt bearbeitet von Gerhard am Di, März 22, 2005 21:25, insgesamt einmal bearbeitet
![]() |
Kryan |
![]() Antworten mit Zitat ![]() |
---|---|---|
wenn dann, aber auch wirklich wie ich geschrieben habe: mit KEYDOWN | ||
Webspaceanbieter?
Klick hier! Kultige Spieleschmiede? Klick hier! |
Gerhard |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
einverstanden. | ||
Thoth |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Juuhuuuuu ! ![]() Ihr seid super, B!G ThX !!! MfG |
||
Thoth |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hab schon wieder ein Problem, ich habe versucht einen Schuss vor dem Schiff erscheinen zu lassen, der dann nach oben wandert:
BlitzBasic: [AUSKLAPPEN]
.. es geht nicht: Fehlermeldung: Expecting variable assignment... Thoth |
||
![]() |
RallimenSieger des 30-EUR-Wettbewerbs |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hier ![]() BlitzBasic: [AUSKLAPPEN] For I 1 To 100 das BlitzBasic: [AUSKLAPPEN] vor die repeat schleife |
||
[BB2D | BB3D | BB+]
|
Gerhard |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Resizeimage in der Hauptschleife?
100 mal das Schussbild an der gleichen Stelle zeichnen und löschen? Willst du das wirklich? |
||
Thoth |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Naja... wollte ich nicht wirklich... ^^ @gerhard
Ich habs gemacht aber da ist ja das problem, das am anfang der hauptschleife ja jedesmal cls kommt, der schuss verschwindet dann auch jedesmal wieder... außerdem bewegt er sich leider immer noch nicht ![]() BlitzBasic: [AUSKLAPPEN]
MfG |
||
Gerhard |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Im Prinzip könntest du bei einem Schuss folgendes machen:
If keyhit(30) then geschossen = 1 : schussX = X : schussY = Y If geschossen = 1 then Drawimage schuss,schussX,schussY schussY = schussY -10 if schussY < 0 then geschossen = 0 endif |
||
Thoth |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
ich habs jetzt so:
BlitzBasic: [AUSKLAPPEN]
![]() Thoth |
||
Gerhard |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
So malst du alle Schussbilder in einem einzigen Durchlauf deiner Hauptschleife. Da kann sich nix bewegen.
Du musst in jedem Durchlauf der Hauptschleife ein leicht verschobenes Schussbild zeichnen. |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group