Arcade Game : Typen für Upgrades?

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

CrowSmith

ehemals "Fleisch"

Betreff: Arcade Game : Typen für Upgrades?

BeitragDi, Okt 27, 2009 17:27
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo.

Ich will für mein Arcade Game (ein Breakout Klon) viele verschiedene Upgrades gestalten, mit jeweils einer anderen Wirkung. Die Upgrades sollen mit einem Zufallsgenerator erstellt werden, sofern ein Stein getroffen wurde. Der Effekt des jeweiligen Upgrades soll nur dann eintreten, wenn man es mit dem Player (der verschiebbare Balken womit man den Breakout Ball abwehrt) auffängt.

Da ich das dafür notwendige Kollisionssystem nicht für jedes Upgrade neu schreiben will, will ich einen Typ "Upgrade" erstellen.

Allerdings ist mir das Erstellen/Anwenden eines Typen noch unklar UND ich frage mich, wie ich bei einer erfolgten Kollision herausfinde/abfrage, WELCHES Upgrade den Player berührt hat.

Kann mir jemand helfen?

MfG, der Fleisch
Worklogs: TotalWar2D
Wbsites: Privat / Entwicklerstudio / Gewerbe (Folgen bald)
Smartphones: Samsung Galaxy S I9000 / Samsung Galaxy S2 I9100 / Samsung Galaxy S3 (Kommt 2012)
Notebook 1: HP Pavillion DV6700 (AMD 64 X2 TL-60 @ 2.00GHz, 4GB DDR3 1333MHz, Nvidia GeFroce 8400M GS, Win Vista Home Premium 32Bit)
Notebook 2: HP Pavillion DV6t Quad Edition (KOMMT BALD =] )
Notebook 3: Clevo X7200 (KOMMT BALD =] )
Desktop: (KOMMT BALD =] )

Nicdel

BeitragDi, Okt 27, 2009 17:31
Antworten mit Zitat
Benutzer-Profile anzeigen
Types sind dafür wirklich gut geeignet. Um herauszufinden welcher Art das Upgrade war, das der Player berührt hat, kannst du im Type ein Feld "art" oder "typ" machen:

BlitzBasic: [AUSKLAPPEN]

Type Upgrade

Field image,x,y
Field typ

End Type
Desktop: Intel Pentium 4 2650 Mhz, 2 GB RAM, ATI Radeon HD 3850 512 MB, Windows XP
Notebook: Intel Core i7 720 QM 1.6 Ghz, 4 GB DDR3 RAM, nVidia 230M GT, Windows 7
 

E. Urbach

ehemals "Basicprogger"

BeitragDi, Okt 27, 2009 17:40
Antworten mit Zitat
Benutzer-Profile anzeigen
@Nicdel: image ist dann allerdings überflüssig, weil die Art des Upgrades das Bild bestimmt und nicht die Instanz. Insofern müsste es
Code: [AUSKLAPPEN]
Type Upgrade
    Field x, y
    Field typ
End Type

heißen.

Fleisch hat Folgendes geschrieben:
WELCHES Upgrade den Player berührt hat

Normalerweise (ohne Optimierungen zu berücksichtigen, weil es hier keinen Sinn macht) iterierst du durch alle Instanzen. Die aktuelle, zu prüfende Instanz entspricht dann auch dem Upgrade, welches mit dem Spieler kollidierte.
The box said, "Requires Windows XP or better", so I installed Ubuntu | Linux is NOT Windows
Flua :: Profiler für BB und BMax :: Partikel-Engine für BMax :: Lyphia-Projekt Quellcode (BMax) :: Automatische Parallelisierung :: Meine Musik

CrowSmith

ehemals "Fleisch"

BeitragDi, Okt 27, 2009 17:59
Antworten mit Zitat
Benutzer-Profile anzeigen
Also so hatte ich mir das vorgestellt:

Code: [AUSKLAPPEN]

Type Upgrade

Field Bild
Field KoordinateX
Field KoordinateY
Field Effekt

End Type

;Erstellung der Upgrades:

dim Upgrade (30)
dim Effekt (30)

;Die Zuweisung für die diversen Werte:

For Index=1 To 30
 Upgrade(Index)\Bild = loadanimimage ("Bild",30,30,Index-1,Index)
 Upgrade(Index)\KoordinateX = ;X Koordinate des jeweils getroffenen Blocks
 Upgrade(Index)\KoordinateY = ;Y Koordinate des jeweils getroffenen Blocks
 Upgrade(Index)\Effekt = Effekt(Index) ;jeweiliger Effekt des Upgrades
next

;Abfrage

if (KoordinateX >= KoordinateXPlayer And KoordinateX <= KoordinateXPlayer -LängePlayer) And KoordinateY >= KoordinateYPlayer
 Effekt(Index)
endif


wäre das so in etwa richtig?
Worklogs: TotalWar2D
Wbsites: Privat / Entwicklerstudio / Gewerbe (Folgen bald)
Smartphones: Samsung Galaxy S I9000 / Samsung Galaxy S2 I9100 / Samsung Galaxy S3 (Kommt 2012)
Notebook 1: HP Pavillion DV6700 (AMD 64 X2 TL-60 @ 2.00GHz, 4GB DDR3 1333MHz, Nvidia GeFroce 8400M GS, Win Vista Home Premium 32Bit)
Notebook 2: HP Pavillion DV6t Quad Edition (KOMMT BALD =] )
Notebook 3: Clevo X7200 (KOMMT BALD =] )
Desktop: (KOMMT BALD =] )
 

mDave

BeitragDi, Okt 27, 2009 18:02
Antworten mit Zitat
Benutzer-Profile anzeigen
Du musst erstmal ein Upgrade erstellen

Code: [AUSKLAPPEN]
u.upgrade= New upgrade


Mit
Code: [AUSKLAPPEN]
For u.upgrade=Each upgrade

machste dann Dinge mit den Upgrades, unter anderem auch auf Kollision prüfen.


Guck dir mal das Typetutorial von Dottakopf an.

CrowSmith

ehemals "Fleisch"

BeitragDi, Okt 27, 2009 18:04
Antworten mit Zitat
Benutzer-Profile anzeigen
Ok werde ich, wo genau finde ich es denn?
Worklogs: TotalWar2D
Wbsites: Privat / Entwicklerstudio / Gewerbe (Folgen bald)
Smartphones: Samsung Galaxy S I9000 / Samsung Galaxy S2 I9100 / Samsung Galaxy S3 (Kommt 2012)
Notebook 1: HP Pavillion DV6700 (AMD 64 X2 TL-60 @ 2.00GHz, 4GB DDR3 1333MHz, Nvidia GeFroce 8400M GS, Win Vista Home Premium 32Bit)
Notebook 2: HP Pavillion DV6t Quad Edition (KOMMT BALD =] )
Notebook 3: Clevo X7200 (KOMMT BALD =] )
Desktop: (KOMMT BALD =] )
 

mDave

BeitragDi, Okt 27, 2009 18:07
Antworten mit Zitat
Benutzer-Profile anzeigen
Forensuche rechte Spalte.



https://www.blitzforum.de/foru...mmies+type

TimBo

BeitragDi, Okt 27, 2009 23:00
Antworten mit Zitat
Benutzer-Profile anzeigen
Bitte NICHT in den Typ Field Image machen !

Das Bild reicht es einmal zu laden. Wink

TimBo
mfg Tim Borowski // CPU: Ryzen 2700x GPU: Nvidia RTX 2070 OC (Gigabyte) Ram: 16GB DDR4 @ 3000MHz OS: Windows 10
Stolzer Gewinner des BCC 25 & BCC 31
hat einen ersten Preis in der 1. Runde beim BWInf 2010/2011 & 2011/12 mit BlitzBasic erreicht.

CrowSmith

ehemals "Fleisch"

BeitragMi, Okt 28, 2009 0:51
Antworten mit Zitat
Benutzer-Profile anzeigen
Sind für jedes Upgrade andere Bilder.

Oder wie meinst du das?
Worklogs: TotalWar2D
Wbsites: Privat / Entwicklerstudio / Gewerbe (Folgen bald)
Smartphones: Samsung Galaxy S I9000 / Samsung Galaxy S2 I9100 / Samsung Galaxy S3 (Kommt 2012)
Notebook 1: HP Pavillion DV6700 (AMD 64 X2 TL-60 @ 2.00GHz, 4GB DDR3 1333MHz, Nvidia GeFroce 8400M GS, Win Vista Home Premium 32Bit)
Notebook 2: HP Pavillion DV6t Quad Edition (KOMMT BALD =] )
Notebook 3: Clevo X7200 (KOMMT BALD =] )
Desktop: (KOMMT BALD =] )
 

n-Halbleiter

BeitragMi, Okt 28, 2009 0:54
Antworten mit Zitat
Benutzer-Profile anzeigen
Was alle sagen wollen, ist, dass du ein animiertes Bild machen solltest, das mit LoadAnimImage laden und dann einfach nur ein Field "frame" hast. Das Handle des animierten Bildes wird dann einfach global gespeichert.
mfg, Calvin
Maschine: Intel Core2 Duo E6750, 4GB DDR2-Ram, ATI Radeon HD4850, Win 7 x64 und Ubuntu 12.04 64-Bit
Ploing!
Blog

"Die Seele einer jeden Ordnung ist ein großer Papierkorb." - Kurt Tucholsky (09.01.1890 - 21.12.1935)

Tennisball

BeitragMi, Okt 28, 2009 0:57
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich denke mal in etwa so kannst du das mit den Bildern machen:


Code: [AUSKLAPPEN]
global upgradeImages = loadanimimage("blubb.png",breite,hoehe,0,anzahl)

;bla
;..
;....

for u = each upgrade
   drawimage upgradeImages,u\x,u\y,u\typ
next


LoadAnimImage

TimBo

BeitragMi, Okt 28, 2009 0:57
Antworten mit Zitat
Benutzer-Profile anzeigen
mach am Anfang die LoadImages.

Bild1=Loadimage("bla")
Bild2=LoadImage("blubb")


wenn du alle Bilder gemalt hast, dann kannst du sagen
u\image = Bild1


das hier in die Main
for u.upgrade=each upgrade
DrawImage u\image
Next

so kannst du meheren Objekten deines Types das gleiche Bild zuweisen, ohne es immer neu zu laden.

Edit: bin zu lahm
mfg Tim Borowski // CPU: Ryzen 2700x GPU: Nvidia RTX 2070 OC (Gigabyte) Ram: 16GB DDR4 @ 3000MHz OS: Windows 10
Stolzer Gewinner des BCC 25 & BCC 31
hat einen ersten Preis in der 1. Runde beim BWInf 2010/2011 & 2011/12 mit BlitzBasic erreicht.

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group