glaub hier sollte noch n forum für absolut unwissende sein

Übersicht BlitzBasic Beginners-Corner

Gehe zu Seite 1, 2  Weiter

Neue Antwort erstellen

Die Wurst

Betreff: glaub hier sollte noch n forum für absolut unwissende sein

BeitragFr, Dez 17, 2004 23:44
Antworten mit Zitat
Benutzer-Profile anzeigen
tut mir wieder mal leid, wenns des thema schon geben sollte... aber ich versteh teilweise eure fach-chinesischen buchstabenketten nicht...Wink

was hab ich bis jetzt...: konzept für ein 2d ballerspiel(draufsicht)... programmierung is kein problem... des krieg ich alles auf die reihe... nur ab und zu fällts schwer nen ansatz zu finden... bzw. ne vorstellung zu haben...

was will ich machen...: figur "bewegt" sich auf einer map, die angenommen 3000*3000 px ist. "bewegt" in auführungsstrichen, da nicht die figur sich bewegt, sondern der hintergrund! hoch, runter, rechts, links ist kein prob... aber ich will, dass die map sich nicht nur in 90° winkeln dreht, sondern z.B. in 11,25° winkeln.... ich hoffe, ihr versteht so halbwegs, was ich meine... wenigstens dankö für den versuch es zu verstehen... (bin ne ausdrucks-niete in deutsch Wink )

Die Wurst

Betreff: ich schon wieder

BeitragFr, Dez 17, 2004 23:53
Antworten mit Zitat
Benutzer-Profile anzeigen
noch ne frage... ich will nicht wissen, ob meine figur genau mit DIESER wand kollidiert, sondern ob sie generell mit irgendeinem von mir gezeichneten bild (außer map) kollidiert... geht das?

wenn ich habe:
BlitzBasic: [AUSKLAPPEN]
If ImagesCollide(bla1,bla1_x,bla1_y,0,bla2,bla2_x,bla2_y,0) Then
bla bla
EndIf


ist es ja nur die frage ob 2 bilder (^) mit einander zusammen stoßen

soll dann so aussehen...

Code: [AUSKLAPPEN]
if imagescollide(bla1,bla1_x,bla1_y,0,alle anderen objekt außer map) then
   ihr wisst schon
endif
  • Zuletzt bearbeitet von Die Wurst am Di, Dez 21, 2004 14:42, insgesamt einmal bearbeitet
 

D²O

BeitragSa, Dez 18, 2004 0:44
Antworten mit Zitat
Benutzer-Profile anzeigen
Im grund musst Du es für jedes bild schreiben und überprüfen.

Such im Forum mal nach Tile oder Tileengine.

Schau Dir "Dim" bzw. "Arrays" mal in der Hilfe an.

Schau Dir mal ne "For Next" schleife an Wink
Blitz+; Blitz3d; BlitzMax; GLBasic; Purebasic;
GameMaker Studio 1.4xx; AGK;

Triton

BeitragSa, Dez 18, 2004 0:50
Antworten mit Zitat
Benutzer-Profile anzeigen
Um deine Figur (bzw die Map) in beliebigen Winkeln zu bewegen, musst du dich nur in linearen Funktionen und Dreiecksberechnung auskennen:

-> http://www.silizium-net.de/trigonometrie.htm
-> https://www.blitzforum.de/viewtopic.php?t=7493
-> http://www.silizium-net.de/bbcodea6.htm

Zum zweiten:
pack dir alle Objekte in einen Array (bzw Type)
und frage alle Objekte dann in einer Schleife (am besten
For..Next) ab.
Coding: silizium-net.de | Portfolio: Triton.ch.vu

Bigmichi

BeitragSa, Dez 18, 2004 11:11
Antworten mit Zitat
Benutzer-Profile anzeigen
was auch möglich ist ein großes Image zu erstellen dort deine Image reinzumalen udn dan nur kolli mit dem 1 Image zu machen =) nur dan weiß man nie wo man kollidiert ist =)

BladeRunner

Moderator

BeitragSa, Dez 18, 2004 17:04
Antworten mit Zitat
Benutzer-Profile anzeigen
Zitat:
figur "bewegt" sich auf einer map, die angenommen 3000*3000 px ist.

Ich hoffe du meinst damit nicht ein einziges Bild, sondern wirklich eine Map aus einzelnen Teilstücken. Sonst wirst Du (bzw. dein Rechner) ins Schleudern kommen.
Unter 2D ist diese Ganze Rotiererei zudem sehr langsam, d.h. du müsstest alles Vorberechnen (Speicherverbrauch!!!). Ich würde dir empfehlen (so du denn B3D-Besitzer bist) dass Ganze mittels Sprites zu lösen, d.h. den 3D-Befehlssatz für die 2D-Transformationen zu nutzen. Mit der Forensuche solltest Du dazu was finden können.
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

Die Wurst

BeitragSo, Dez 19, 2004 11:52
Antworten mit Zitat
Benutzer-Profile anzeigen
danke, danke... aber ich bleib erst mal bei 2d... 3d hört sich noch kranker an...
also doch nur in 90°winkeln drehen... naja...egal

Die Wurst

Betreff: neues prob

BeitragMo, Dez 20, 2004 18:59
Antworten mit Zitat
Benutzer-Profile anzeigen
hey leude... hab mal wieder n problem... kann meinen fehler nicht finden! wundert euch nicht, ich hab ne sehr eigene art zu progg'n...

BlitzBasic: [AUSKLAPPEN]
;TASTENBEFEHLE
Const hoch =200
Const runter =208
Const links =203
Const rechts =205
Const esc = 1
Const leer = 57
Const f12 = 88
Const breite =640
Const hoehe =480

;BILDER LADEN
;PLAYER
pl_0=LoadImage(\"pl_hinten.bmp\")
pl_4=LoadImage(\"pl_vorne.bmp\")
pl_6=LoadImage(\"pl_links.bmp\")
pl_2=LoadImage(\"pl_rechts.bmp\")
pl_7=LoadImage(\"pl_hinten_links.bmp\")
pl_1=LoadImage(\"pl_hinten_rechts.bmp\")
pl_5=LoadImage(\"pl_vorne_links.bmp\")
pl_3=LoadImage(\"pl_vorne_rechts.bmp\")
;MAP
spielfeld=LoadImage(\"map002.bmp\")

;PLAYER
pl_x=(breite-25)/2 ;breite 25 hoehe 40
pl_y=(hoehe-40)/2

;MAP
map_x=0
map_y=0

;RICHTUNG
richtung=4 ;0=hoch 1=hoch-rechts 2=rechts 3=runter-rechts 4=runter 5=runter-links 6=links 7=hoch-links

;grafik optionen
Graphics 640,480,16,1
SetBuffer BackBuffer()

;Hauptschleife
While Not KeyDown(esc)

If KeyDown(hoch) Then

richtung=0

map_y=map_y+2

ElseIf KeyDown(hoch) And KeyDown(rechts) Then

richtung=1

map_y=map_y+2
map_x=map_x+2

ElseIf KeyDown(rechts) Then

richtung=2

map_x=map_x-2

ElseIf KeyDown(runter) And KeyDown(rechts) Then

richtung=3

map_y=map_y-2
map_x=map_x-2

ElseIf KeyDown(runter) Then

richtung=4

map_y=map_y-2

ElseIf KeyDown(runter) And KeyDown(links) Then

richtung=5

map_y=map_y-2
map_x=map_x+2

ElseIf KeyDown(links) Then

richtung=6

map_x=map_x+2

ElseIf KeyDown(hoch) And KeyDown(links) Then

richtung=7

map_y=map_y-2
map_x=map_x+2

EndIf






Cls





If richtung=0 Then

DrawImage pl_0,pl_x,pl_y

EndIf

If richtung=1 Then

DrawImage pl_1,pl_x,pl_y

EndIf

If richtung=2 Then

DrawImage pl_2,pl_x,pl_y

EndIf

If richtung=3 Then

DrawImage pl_3,pl_x,pl_y

EndIf

If richtung=4 Then

DrawImage pl_4,pl_x,pl_y

EndIf

If richtung=5 Then

DrawImage pl_5,pl_x,pl_y

EndIf

If richtung=6 Then

DrawImage pl_6,pl_x,pl_y

EndIf

If richtung=7 Then

DrawImage pl_7,pl_x,pl_y

EndIf

DrawImage spielfeld,map_x,map_y

Flip

Wend

Kryan

BeitragMo, Dez 20, 2004 19:12
Antworten mit Zitat
Benutzer-Profile anzeigen
darf man erstmal wissen worum es geht?

mir fällt nur gerade auf, dass du zuerst den player zeichnest und dann die map (wobei der player übergemalt wird)
Webspaceanbieter?
Klick hier!
Kultige Spieleschmiede?
Klick hier!

Die Wurst

BeitragMo, Dez 20, 2004 19:17
Antworten mit Zitat
Benutzer-Profile anzeigen
ursprünglich (vor 20min) stand map auch noch über player... aber da hat er mir gesagt, image (map) dosen`t exist... desswegen wollt ich ausprobieren ob er den player auch nicht findet... und so war es auch...

also: eine figur in der mitte des bildschirmes... wenn er läuft, bewegt nicht er sich sonder die map... und das in 8 verschiedene richtungen... weiter bin ich noch nicht

Spikespine

BeitragMo, Dez 20, 2004 19:23
Antworten mit Zitat
Benutzer-Profile anzeigen
wenn ich das richtig deute steht in dem code der graphics befehl nach den geladenen Bildern...
so können die gar nicht angezeigt werden weil die dadurch wieder gelöscht werden...

Die Wurst

BeitragMo, Dez 20, 2004 19:28
Antworten mit Zitat
Benutzer-Profile anzeigen
danke... das wars schon! aber wieso reagiert der nicht auf die bedingung "if keydown(links) and keydown(hoch) then"...

der macht immer nur eins von beiden... d.h. der geht nur runter, hoch, links, rchts.... wieder falsche reihenfolge?

Kryan

BeitragMo, Dez 20, 2004 19:33
Antworten mit Zitat
Benutzer-Profile anzeigen
du fragst es zu häufig ab:

am anfang muss stehen:
up=KeyDown(200)
...

und dann:

If up and left Then...
If up Then ...
If down Then...
...
Webspaceanbieter?
Klick hier!
Kultige Spieleschmiede?
Klick hier!

Die Wurst

BeitragMo, Dez 20, 2004 19:46
Antworten mit Zitat
Benutzer-Profile anzeigen
jetz geht gar nix mehr

BlitzBasic: [AUSKLAPPEN]
;grafik optionen
Graphics 640,480,16,1
SetBuffer BackBuffer()


;TASTENBEFEHLE
Const esc = 1
Const leer = 57
Const f12 = 88
Const breite =640
Const hoehe =480

;RICHTUNGEN
hoch = KeyDown(200)
rechts = KeyDown(205)
runter = KeyDown(208)
links = KeyDown(203)

;BILDER LADEN
;PLAYER
pl_0=LoadImage(\"pl_hinten.bmp\")
pl_4=LoadImage(\"pl_vorne.bmp\")
pl_6=LoadImage(\"pl_links.bmp\")
pl_2=LoadImage(\"pl_rechts.bmp\")
pl_7=LoadImage(\"pl_hinten_links.bmp\")
pl_1=LoadImage(\"pl_hinten_rechts.bmp\")
pl_5=LoadImage(\"pl_vorne_links.bmp\")
pl_3=LoadImage(\"pl_vorne_rechts.bmp\")

MaskImage pl_0,0,255,0
MaskImage pl_1,0,255,0
MaskImage pl_2,0,255,0
MaskImage pl_3,0,255,0
MaskImage pl_4,0,255,0
MaskImage pl_5,0,255,0
MaskImage pl_6,0,255,0
MaskImage pl_7,0,255,0



;MAP
spielfeld=LoadImage(\"map002.bmp\")

;PLAYER
pl_x=(breite-25)/2 ;breite 25 hoehe 40
pl_y=(hoehe-40)/2

;MAP
map_x=0
map_y=0

;RICHTUNG
richtung=4 ;0=hoch 1=hoch-rechts 2=rechts 3=runter-rechts 4=runter 5=runter-links 6=links 7=hoch-links



;Hauptschleife
While Not KeyDown(esc)

If hoch Then

richtung=0

map_y=map_y+2

ElseIf hoch And rechts Then

richtung=1

map_y=map_y+2
map_x=map_x+2

ElseIf rechts Then

richtung=2

map_x=map_x-2

ElseIf runter And rechts Then

richtung=3

map_y=map_y-2
map_x=map_x-2

ElseIf runter Then

richtung=4

map_y=map_y-2

ElseIf runter And links Then

richtung=5

map_y=map_y-2
map_x=map_x+2

ElseIf links Then

richtung=6

map_x=map_x+2

ElseIf hoch And links Then

richtung=7

map_y=map_y-2
map_x=map_x+2

EndIf






Cls


DrawImage spielfeld,map_x,map_y


If richtung=0 Then

DrawImage pl_0,pl_x,pl_y

ElseIf richtung=1 Then

DrawImage pl_1,pl_x,pl_y

ElseIf richtung=2 Then

DrawImage pl_2,pl_x,pl_y

ElseIf richtung=3 Then

DrawImage pl_3,pl_x,pl_y

ElseIf richtung=4 Then

DrawImage pl_4,pl_x,pl_y

ElseIf richtung=5 Then

DrawImage pl_5,pl_x,pl_y

ElseIf richtung=6 Then

DrawImage pl_6,pl_x,pl_y

ElseIf richtung=7 Then

DrawImage pl_7,pl_x,pl_y

EndIf



Flip

Wend

Die Wurst

BeitragMo, Dez 20, 2004 19:48
Antworten mit Zitat
Benutzer-Profile anzeigen
oder soll ich aus den ganzen elseif's neue if's machen?

Kryan

BeitragMo, Dez 20, 2004 19:49
Antworten mit Zitat
Benutzer-Profile anzeigen
nimm select
und übrigens: du musst die tastaturbefehle in die schleife packen, so dass sie jedes mal neu abgefragt werden usw.
Webspaceanbieter?
Klick hier!
Kultige Spieleschmiede?
Klick hier!

Die Wurst

BeitragMo, Dez 20, 2004 20:10
Antworten mit Zitat
Benutzer-Profile anzeigen
danke... hat zu größten teil funktioniert... aber: der spieler läuft zwar jetzt auch schräg, nur die bilder dazu werden nur selten angezeigt!...

Edit:
wie ich select bei den tastenbefehlen benutzen soll bleibt mir ein rätsel... und noch was merkwürdiges... wenn er schräg läuft, dann tut er das nur selten im 45°winkel zum bildschirmrand, ob wohl es genau 45° sein sollten

Kryan

BeitragMo, Dez 20, 2004 20:29
Antworten mit Zitat
Benutzer-Profile anzeigen
meine optimierung:

BlitzBasic: [AUSKLAPPEN]
grafik optionen 
Graphics 640,480,16,1
SetBuffer BackBuffer()


;TASTENBEFEHLE
Const esc = 1
Const leer = 57
Const f12 = 88
Const breite =640
Const hoehe =480


;BILDER LADEN
;PLAYER
Dim player(7)
player(0)=LoadImage(\"pl_hinten.bmp\")
player(4)=LoadImage(\"pl_vorne.bmp\")
player(6)=LoadImage(\"pl_links.bmp\")
player(2)=LoadImage(\"pl_rechts.bmp\")
player(7)=LoadImage(\"pl_hinten_links.bmp\")
player(1)=LoadImage(\"pl_hinten_rechts.bmp\")
player(5)=LoadImage(\"pl_vorne_links.bmp\")
player(3)=LoadImage(\"pl_vorne_rechts.bmp\")

MaskImage pl_0,0,255,0
MaskImage pl_1,0,255,0
MaskImage pl_2,0,255,0
MaskImage pl_3,0,255,0
MaskImage pl_4,0,255,0
MaskImage pl_5,0,255,0
MaskImage pl_6,0,255,0
MaskImage pl_7,0,255,0



;MAP
spielfeld=LoadImage(\"map002.bmp\")

;PLAYER
pl_x=(breite-25)/2 ;breite 25 hoehe 40
pl_y=(hoehe-40)/2

;MAP
map_x=0
map_y=0

;RICHTUNG
richtung=4 ;0=hoch 1=hoch-rechts 2=rechts 3=runter-rechts 4=runter 5=runter-links 6=links 7=hoch-links



;Hauptschleife
While Not KeyDown(esc)
;RICHTUNGEN
hoch = KeyDown(200)
rechts = KeyDown(205)
runter = KeyDown(208)
links = KeyDown(203)

Select 1
Case hoch
richtung=0
map_y=map_y+2

Case hoch And rechts
richtung=1
map_y=map_y+2
map_x=map_x+2
Case rechts
richtung=2
map_x=map_x-2
Case runter And rechts
richtung=3
map_y=map_y-2
map_x=map_x-2
Case runter
richtung=4
map_y=map_y-2
Case runter And links
richtung=5
map_y=map_y-2
map_x=map_x+2
Case links
richtung=6
map_x=map_x+2
Case runter And links
richtung=7
map_y=map_y-2
map_x=map_x+2
End Select
Cls
DrawImage spielfeld,map_x,map_y
DrawImage player(richtung),pl_x,pl_y
Flip
Wend
Webspaceanbieter?
Klick hier!
Kultige Spieleschmiede?
Klick hier!

Die Wurst

BeitragDi, Dez 21, 2004 10:36
Antworten mit Zitat
Benutzer-Profile anzeigen
ein erneutes danke schön... aber: jetzt läuft er gar nicht mehr schräg... und die bilder dazu zeigt er auch nicht an... und ich versteh nicht, was die eins bedeuten soll... "select 1"...usw.

Die Wurst

Betreff: aldituete.piranho.com/bb

BeitragDi, Dez 21, 2004 10:58
Antworten mit Zitat
Benutzer-Profile anzeigen
wenn du lust hast des mal auszuprobieren... hier die bilder:


player(0)
user posted image
(1)
user posted image
(2)
user posted image
(3)
user posted image
(4)
user posted image
(5)
user posted image
(6)
user posted image
(7)
user posted image

Edit: wenn du die bilder nicht siehst... http://aldituete.piranho.com/bb


die map is selbst als gif zu graoß für meinen webspace...

mal einfach eine ... meine is 1500*1500

Code: [AUSKLAPPEN]
Graphics 640,480,16,1
SetBuffer BackBuffer()


;TASTENBEFEHLE
Const esc = 1
Const leer = 57
Const f12 = 88
Const breite =640
Const hoehe =480


;BILDER LADEN
;PLAYER
Dim player(7)
player(0)=LoadImage("pl_hinten.bmp")
player(4)=LoadImage("pl_vorne.bmp")
player(6)=LoadImage("pl_links.bmp")
player(2)=LoadImage("pl_rechts.bmp")
player(7)=LoadImage("pl_hinten_links.bmp")
player(1)=LoadImage("pl_hinten_rechts.bmp")
player(5)=LoadImage("pl_vorne_links.bmp")
player(3)=LoadImage("pl_vorne_rechts.bmp")

MaskImage player(0),0,255,0
MaskImage player(1),0,255,0
MaskImage player(2),0,255,0
MaskImage player(3),0,255,0
MaskImage player(4),0,255,0
MaskImage player(5),0,255,0
MaskImage player(6),0,255,0
MaskImage player(7),0,255,0



;MAP
spielfeld=LoadImage("map002.bmp")

;PLAYER
pl_x=(breite-25)/2 ;breite 25 hoehe 40
pl_y=(hoehe-40)/2

;MAP
map_x=0
map_y=0

;RICHTUNG
richtung=4 ;0=hoch 1=hoch-rechts 2=rechts 3=runter-rechts 4=runter 5=runter-links 6=links 7=hoch-links



;Hauptschleife
While Not KeyDown(esc)
;RICHTUNGEN
hoch = KeyDown(200)
rechts = KeyDown(205)
runter = KeyDown(208)
links = KeyDown(203)

Select 1
Case hoch
richtung=0
map_y=map_y+2

Case hoch And rechts
richtung=1
map_y=map_y+2
map_x=map_x+2
Case rechts
richtung=2
map_x=map_x-2
Case runter And rechts
richtung=3
map_y=map_y-2
map_x=map_x-2
Case runter
richtung=4
map_y=map_y-2
Case runter And links
richtung=5
map_y=map_y-2
map_x=map_x+2
Case links
richtung=6
map_x=map_x+2
Case runter And links
richtung=7
map_y=map_y-2
map_x=map_x+2
End Select
Cls
DrawImage spielfeld,map_x,map_y
DrawImage player(richtung),pl_x,pl_y
Flip
Wend


die bilder sind noch nicht ganz ausgereift (war auch nur n test)

Gehe zu Seite 1, 2  Weiter

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group