Brauche Tipps für Geschicklichkeitsspiel

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

jonnyboy

Betreff: Brauche Tipps für Geschicklichkeitsspiel

BeitragSa, März 22, 2008 23:09
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo Leute, ich bins mal wieder.

Ich habe ein Problem, das mich ein bisschen aus der Bahn geworfen hat. ich habe in den letzten 7 tagen versucht, Basic zu lernen, und war auch recht zuversichtlich, weil ich schon ein ganzes Spaceshootergame hinbekommen habe. Very Happy

Doch nun steh ich wieder vor der Sache, das ich garnicht weiß, wie ich etwas machen soll.
Ich möchte ein Geschicklichkeitsspiel machen, aber habe keine Ahnung wie ich das bewerkstelligen soll.

Es sollen in einem 6x3 großen Feld Klötze angezeigt werden. hauptbestandteil des Spieles ist aber, das die Blöcke nach unten wandern und neue kommen etc.

Ich habe mir überlegt, die Klötze als Type-Felder zu gestallten, mit einer x, einer y,variable, einer variable wo der typ des Klotzes drinnesteht und eine, wo drinsteht, ob der Klotz angezeigt wird oder so.

Die ganzen Types zu kreieren und sie anzeigen lassen ist mein problem. Im moment fällt mir nichts besseres ein,als jeden Klotzplatz einzeln zu erschaffen, weil ich, wenn ich eine For-Schleigfe nehme, die klöötze nicht so als Koordinaten setzen kann wie ich es haben will. Das hört sich jetzt warscheinlich etwas kompliziert an..^^ naja.. Jedenfalls: auch mit dem DrawImage habe ich probleme, wenn ich nicht für jeden Speicherplatz eine If-Frage schreiben will.

Ich denke, ich sollte das mit Dim-Feldern verbinden, aber ich hab leider keine ahnung mehr, wie das geht, weil ich die Tutorials, die ich bisher gefunden habe, leider nie ganz verstanden habe, oder nur schwer oder nur für kurze Zeit...

Ich weiß, das ich mein problem hier nicht gut beschrieben habe...
Aber ich hoffe, ihr könntet mir irgendwie helfen und etwas nachsichtig sein...

Weil ihr mir nach dieser wenig Informativen Nachricht nicht helfen kölnnt, habe ich mal ein paar Bilder meiner Idee gemacht. Es wäre ziemlich nett, wenn ihr mir einen kleinen Pseudocode a la:

Code: Speicher die Klötze als types
Setze sie in Dims mit befehl soundso
zeichne sie mit DrawImage und dann mit Type verknüpfen...
geben könntet.

Ich weiß, das ist eine große Erwartung, aber vielleicht gibt es ja Leute, die Spaß dabei haben, mit bei der Logik dahinter zu helfen Smile

Hier die Bilder: http://www.file-upload.net/dow...e.zip.html
Und meinen bisherigen Code:

Code: [AUSKLAPPEN]
;#########################

;Quick Decide Version 1.00

;#########################



Graphics 344, 439, 24, 2 ; Anfangssequenz
SetBuffer BackBuffer()



;MEDIEN WERDEN GELADEN

Global folie = LoadImage("Daten\folie.png")
Global stein1 = LoadImage("Daten\stein1.png")
Global stein2 = LoadImage("Daten\stein2.png")
Global stein3 = LoadImage("Daten\stein3.png")
Global stein4 = LoadImage("Daten\stein4.png")
Global stein5 = LoadImage("Daten\stein5.png")


;VARIABLEN WERDEN GENERIERT

Dim steinfeld(2, 5)

Type stein
Field x
Field y
Field typ
Field gemalt
End Type

SeedRnd MilliSecs()

stein05.stein = New stein
stein05\x = 25
stein05\y = 95
stein05\typ = Rand(1, 5)
stein05\gemalt = 0

stein04.stein = New stein
stein04\x = 25
stein04\y = 95 + 48 + 2
stein04\typ = Rand(1, 5)
stein04\gemalt = 0

stein03.stein = New stein
stein03\x = 25
stein03\y = 95 + 96 + 4
stein03\typ = Rand(1, 5)
stein03\gemalt = 0

;HAUPTSPIELSCHLEIFE

Repeat

DrawImage folie, 0, 1
Include "Funktionen.bb"
Flip

Until KeyHit(1)

End


Code: [AUSKLAPPEN]

If stein05\typ = 1 Then
DrawImage (stein1, stein05\x, stein05\y)
End If
If stein05\typ = 2 Then
DrawImage (stein2, stein05\x, stein05\y)
End If
If stein05\typ = 3 Then
DrawImage (stein3, stein05\x, stein05\y)
End If
If stein05\typ = 4 Then
DrawImage (stein4, stein05\x, stein05\y)
End If
If stein05\typ = 5 Then
DrawImage (stein5, stein05\x, stein05\y)
End If

If stein04\typ = 1 Then
DrawImage (stein1, stein04\x, stein04\y)
End If
If stein04\typ = 2 Then
DrawImage (stein2, stein04\x, stein04\y)
End If
If stein04\typ = 3 Then
DrawImage (stein3, stein04\x, stein04\y)
End If
If stein04\typ = 4 Then
DrawImage (stein4, stein04\x, stein04\y)
End If
If stein04\typ = 5 Then
DrawImage (stein5, stein04\x, stein04\y)
End If

If stein03\typ = 1 Then
DrawImage (stein1, stein03\x, stein03\y)
End If
If stein03\typ = 2 Then
DrawImage (stein2, stein03\x, stein03\y)
End If
If stein03\typ = 3 Then
DrawImage (stein3, stein03\x, stein03\y)
End If
If stein03\typ = 4 Then
DrawImage (stein4, stein03\x, stein03\y)
End If
If stein03\typ = 5 Then
DrawImage (stein5, stein03\x, stein03\y)
End If

TimBo

BeitragSa, März 22, 2008 23:25
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi,

also du kannst Types und Arrys miteinander vermischen.

Code: [AUSKLAPPEN]

dim grafik(9) ;erzeugt 10Grafiken oder je nach dem wieviele du brauchst von 0-9

grafik(0)=Loadimage(...)
grafik(1)=Loadimage(..)
...

type klotz
    field typ, x, y
end type

....
for i = 1 to anzahl der x klötze
   for ii=1 to anzahl der y Klötze
        k.klotz=ew klotz
        k\typ=Rand(0,9) ;der typ wird zufällig bestimmt
        k\x=i*50
        k\y=ii*50
   next
next

;mainschleife
repeat
    for k.klotz = each klotz
       drawimage (grafik(k\typ), k\x, k\y)
    next

....
forever




für das mit dem Sound empfiehlt sich Rob's BB Tutorial Wink
google mal danach
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.

Plasma

Betreff: hui

BeitragSa, März 22, 2008 23:33
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]
Repeat

DrawImage folie, 0, 1
Include "Funktionen.bb"
Flip

Until KeyHit(1)


das lass mal

TimBo

BeitragSa, März 22, 2008 23:41
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi

Plasma hat recht, habe ich ganz übersehen.
Lade nie Sachen in einer Mainschleife.. mach das immer davor !

mfg
Intel ViiV Quad-Core unmatched
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.

The_Nici

BeitragSa, März 22, 2008 23:46
Antworten mit Zitat
Benutzer-Profile anzeigen
Include<> laden

Include wird beim kompilieren geladen und reinkompiliert.

Darf schon da stehen.

Blitzcoder

Newsposter

BeitragSa, März 22, 2008 23:49
Antworten mit Zitat
Benutzer-Profile anzeigen
Da muss man etwas mit BB und BMax aufpassen. BB schmeißt einfach alle Includes in eine Datei, und kompiliert das. Das ermöglicht sowas:

Code: [AUSKLAPPEN]
function test()
include "func_test.bb"
end function


BMax hingegen kompiliert einzeln, da geht sowas nicht.
P4 3 Ghz@3,55Ghz|GF 6600GT 256MB|Samsung 80GB | 2x Samsung 160GB|2048MB DDR-400 RAM|6 Mbit Flatrate | Logitech G15 | Samsung 225BW-TFT | Ubuntu Gutsy Linux | Windows Vista | Desktop | Blog | CollIDE | Worklog
________________
|°°°°°°°°°°°°°°||'""|""\__,_
|______________ ||__ |__|__ |)
|(@) |(@)"""**|(@)(@)****|(@)

TimBo

BeitragSa, März 22, 2008 23:51
Antworten mit Zitat
Benutzer-Profile anzeigen
Shocked
ohh ok wieder was dazugelernt...

THX

Viele Grüße
Intel Core ViiV Quad-core unmatched
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.

jonnyboy

BeitragSo, März 23, 2008 0:21
Antworten mit Zitat
Benutzer-Profile anzeigen
Ahja =)
Erstmal vielen Dank an Intel Core Duo, das war genau das, was ich suchte Wink
Das große problem was ich hatte: Bei DraWimage wollte ich dann das Bild variabel haben, also hab immer versucht, es so zu machen:

DrawImage ("stein" + i, bla\x, bla\y)...^^

Ich werd es jetzt mal ausprobieren, ich glaube aber,ich habs verstanden...

Vielen Dank Exclamation Very Happy

TimBo

BeitragSo, März 23, 2008 0:28
Antworten mit Zitat
Benutzer-Profile anzeigen
Keine Ursache Wink

achja
Dim und Arry

Viele Grüße
Intel ViiV Quad-core Unmatched
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.

jonnyboy

BeitragSo, März 23, 2008 1:31
Antworten mit Zitat
Benutzer-Profile anzeigen
=P Ohman, hier wird einem IMMEr auf die onlinehilfe verwiesen.. Wink

Ich gucke da doch schon immer nach, wenn ich mir bei einem Befehl nicht sicher bin Wink
Hab das auch beimeinem Blitz Basic 3D direkt bei Hilfe...

Aber Types, Dims und Arrays sind halt etwas schwer zu verstehen mit nur einem Beispiel... Ich wünschte mir, da gäbe es mehr Beispiele und vorallem auch für verschiedene Bereiche... Wink naja.

Eventuell müsste ich euch nochmal fragen, wie man es macht, das der guckt, ob auf einer Reihe 3 gleiche sind, das sind für euch sicher alte Hüte. Aber erstmal will ichs ohnehin alleine probieren, auch um nicht nachher auchnoch des Forums verwiesen zu werden weil ihr praktisch mein Spiel macht Very Happy

mfg,

JONNY

The_Nici

BeitragSo, März 23, 2008 11:50
Antworten mit Zitat
Benutzer-Profile anzeigen
Ein eindimensionales Array besteht einfach aus ein paar aneinandergereihten Variablen.
[0][1][2]
Das wäre Dim etwas(2)

Dann gibts 2 dimensionale Arrays. Das sind wie Tabellen.

[0,0][1,0][2,0]
[0,1][1,1][2,1]
[0,2][1,2][2,2]

Dim etwas(2,2)

All die Kästchen kannste füllen.
z.b. bei Abbildung 1:
etwas(0)=1337
etwas(1)=2
etwas(2)=565

Abbildung 2 bsp:
etwas(0,0)=1
etwas(0,1)=50
....usw

jonnyboy

BeitragSo, März 23, 2008 14:57
Antworten mit Zitat
Benutzer-Profile anzeigen
Hm..
Okay, danke.

Aber wofür kann man denn noch Arrays brauchen?

Also in diesem Beispiel hab ichs glaub ich verstanden, weil man sonst die Grafiken nicht variabel benutzen könnte?
Naja.. ich glaub, ich muss mir daas einfach so oft wie möglich anlesen, danke =)

Aber ist was verwirrend,das es da jez auchnoch BlitzArrays gibt usw..^^

Najo, grüße

JONNY

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group