bilder einfügen

Übersicht BlitzMax, BlitzMax NG Beginners-Corner

Neue Antwort erstellen

 

florob

Betreff: bilder einfügen

BeitragSa, Mai 20, 2006 16:10
Antworten mit Zitat
Benutzer-Profile anzeigen
hallo

wie funktioniert das mit dem loadimage? in blitz2d hab ich immer einfach bild=loadimage("bild.bmp")
gsagt, aber in bmax geht das ja irgendwie anders und ich komm nicht dahinter. ich möcht eigentlich einfach nur den schläger und den ball für ping pong laden.
danke im voraus

lg flo

BtbN

BeitragSa, Mai 20, 2006 16:17
Antworten mit Zitat
Benutzer-Profile anzeigen
Geht in BMax an sich genau so:

Code: [AUSKLAPPEN]
SuperStrict

Framework BRL.Max2D
Import BRL.BMPLoader
Import BRL.PNGLoader
Import BRL.JPGLoader
Import BRL.TGALoader

Graphics(800,600,32,75)

Global img:TImage = LoadImage("bild.bmp")

Repeat
Cls

    DrawImage(img,50,50)

Flip
Until KeyHit(KEY_ESCAPE)

End


So sollte es gehen.
 

florob

BeitragSa, Mai 20, 2006 16:27
Antworten mit Zitat
Benutzer-Profile anzeigen
das hab ich schon probiert. da is mein code. was mach ich falsch?

es kommt nur ein schwarzer bildschirm, mauszeiger sieht man noch, aba sobald ich irgendwas drück geht er zrück zum bmax.

Code: [AUSKLAPPEN]
'ping pong

Strict

Const s=5         'geschwindigkeit ball
Global xschl=350   'kordi schläger
Global xball=395   'x kordi ball
Global yball=200   'x kordi ball
Global winkel=270   'abprallwinkel
Global zaehler
Global s1         'speed schläger

Graphics 800,600

Global ball:TImage = LoadImage("ball.bmp")
Global schlaeger:TImage = LoadImage("schlaeger.bmp")


While Not KeyHit(1)

'kollision schlaeger

If yball<=575
   
   For zaehler=0 To 99
   If xball=xschl+zaehler
      If zaehler>50
         zaehler:-100
         zaehler:*(-1)
      EndIf
      zaehler:-50
      zaehler:*(-1)
      zaehler:/2
      winkel:+180-2*winkel
      winkel:-zaehler
   Else
      DrawText"Game Over!",390,300
      WaitKey()
      End
   EndIf
   Next
EndIf

'kollision wand

If xball<1 Or xball>790 Or yball<1
   winkel:+180-2*winkel
EndIf

'winkel auf 360 grad begrenzen

If winkel<0
   Repeat
   winkel:+360
   Until winkel>=0
ElseIf winkel>359
   Repeat
   winkel:-360
   Until winkel<=359
EndIf

'bewegen vom schläger

If KeyDown(203)
   xschl:-s1
ElseIf KeyDown (205)
   xschl:+s1
EndIf

If xschl<1
   xschl=1
ElseIf xschl>700
   xschl=700
EndIf

DrawImage schlaeger,xschl,585

'ball bewegen

xball=xball+Cos(winkel)*s
yball=yball-Sin(winkel)*s

DrawImage ball,xball,yball

Flip

Wend



lg flo
 

Dreamora

BeitragSa, Mai 20, 2006 17:21
Antworten mit Zitat
Benutzer-Profile anzeigen
Lass es mal im Debugmodus laufen. ich würde drauf tippen, dass der Pfad falsch ist oder sonst etwas schief läuft
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.
 

florob

BeitragSa, Mai 20, 2006 17:29
Antworten mit Zitat
Benutzer-Profile anzeigen
äh...wie mach ich das? auf die debug exe klicken? da kommt das selbe wie sonst: schwarzer bildschirm und wenn ich was drück is alles weg
pfad von den bildern stimmt aba, die sind im gleichen ordner.
 

D²O

BeitragSa, Mai 20, 2006 19:12
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi, das Problem steckt hier

Code: [AUSKLAPPEN]
   If xball=xschl+zaehler


hier fragst Du ob xball gleich xschl+zaehler ist,
das ist aber nicht der fall.
Dadurch springt das Programm gleich zu dieser stelle.
Code: [AUSKLAPPEN]
      Else
         DrawText"Game Over!",390,300
         WaitKey()


und darum bleibt der bildschirm einfach schwarz.
Flip wird ja auch nie erreicht.

Schau Deinen Code nochmals genau durch und versuch zu verstehen
was da vor sich geht Wink

Learning by doing Smile
Blitz+; Blitz3d; BlitzMax; GLBasic; Purebasic;
GameMaker Studio 1.4xx; AGK;
 

florob

BeitragSa, Mai 20, 2006 19:30
Antworten mit Zitat
Benutzer-Profile anzeigen
ah danke, klingt logisch

lg flo
 

florob

BeitragSa, Mai 20, 2006 20:03
Antworten mit Zitat
Benutzer-Profile anzeigen
hab noch ne frage, kann man ifs verschachteln?? weil ich hab das programm jetz schritt für schritt laufen lassen, und bei dem code´hängt er sich komplett auf, hilft nur neu hochfahren (den computer).

Code: [AUSKLAPPEN]
If yball<=575
   
   For zaehler=0 To 99
   If xball=xschl+zaehler
      If zaehler>50
         zaehler:-100
         zaehler:*(-1)
      EndIf
      zaehler:-50
      zaehler:*(-1)
      zaehler:/2
      winkel:+180-2*winkel
      winkel:-zaehler
   EndIf
   Next
EndIf
 

D²O

BeitragSa, Mai 20, 2006 20:37
Antworten mit Zitat
Benutzer-Profile anzeigen
Versteh Deine Frage nicht ganz Confused

Du hast doch schon ne verschachtelung.
Klaro geht das.
Blitz+; Blitz3d; BlitzMax; GLBasic; Purebasic;
GameMaker Studio 1.4xx; AGK;
 

florob

BeitragSa, Mai 20, 2006 21:01
Antworten mit Zitat
Benutzer-Profile anzeigen
was is dann an dem code falsch?? wenn er sich komplett aufhängt kann das ja ned richtig sein. ich find keinen fehler und seit ich das drin hab hängt er sich auf

d-bug

BeitragSa, Mai 20, 2006 23:22
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]
If yball<=575
   
   For zaehler=0 To 99
   If xball=xschl+zaehler
      If zaehler>50
         zaehler:-100
         zaehler:*(-1)
      EndIf
      zaehler:-50
      zaehler:*(-1)
      zaehler:/2
      winkel:+180-2*winkel
      winkel:-zaehler
   EndIf
   Next
EndIf


Die ganzen Zähler Berechnungen da sorgen dafür das die For-Next-Schleife völlig durcheinander kommt...

mach es lieber so, wenn es schon sein muß :
Code: [AUSKLAPPEN]
f yball<=575
   local zaehler:int
   For local i:int=0 To 99
   zaehler = i
   If xball=xschl+zaehler
      If zaehler>50
         zaehler:-100
         zaehler:*(-1)
      EndIf
      zaehler:-50
      zaehler:*(-1)
      zaehler:/2
      winkel:+180-2*winkel
      winkel:-zaehler
   EndIf
   Next
EndIf
 

florob

BeitragSo, Mai 21, 2006 19:23
Antworten mit Zitat
Benutzer-Profile anzeigen
danke, so gehts, aba das ganze is irr langsam! (is aba irgendwie logisch...)
gut ich werd versuchen das anders zu lösen...
trotzdem danke

lg flo
 

florob

BeitragMo, Mai 22, 2006 19:40
Antworten mit Zitat
Benutzer-Profile anzeigen
ich muss euch schon wieder mit einer anfängerfrage, die ich wahrscheinlich selbst beantworten können sollte, belästigen:
was ist an der zeile mit imagescollide falsch??? er sagt mir dass er nicht TImage in Int umwandeln kann, aber das will ich ja gar ned machen...

Code: [AUSKLAPPEN]
Global ball:TImage = LoadImage("gfx\ball.bmp")
Global schlaeger:TImage = LoadImage("gfx\schlaeger.bmp")


While Not KeyHit(key_escape)

Cls

'kollision schlaeger

If ImagesCollide(ball:TImage,xball,yball,schlaeger:TImage,xschl,585)
   


danke

lg flo

BtbN

BeitragMo, Mai 22, 2006 21:05
Antworten mit Zitat
Benutzer-Profile anzeigen
Doch, du willst es in Int umwandeln:
ImagesCollide(image1:TImage,x1:Int,y1:Int,frame1:Int,image2:Timage,x2:Int,y2:Int,frame2:Int)

Also ist der Dritte Parameter der Frame des Images, und nicht das zweite Bild.
 

florob

BeitragDi, Mai 23, 2006 13:20
Antworten mit Zitat
Benutzer-Profile anzeigen
aha.....sry in blitz2d is das so auch gangen. und was müsst ich hinschreiben stattdessen? die frames sind doch nur fürs animieren oder?
 

Dreamora

BeitragDi, Mai 23, 2006 14:28
Antworten mit Zitat
Benutzer-Profile anzeigen
Nein auch für die Kollisionstests.

Was du hinschreiben musst: Schau bitte in der Hilfe nach (also imagescollide anklicken und F1 drücken!!)
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.
 

florob

BeitragDi, Mai 23, 2006 14:34
Antworten mit Zitat
Benutzer-Profile anzeigen
das hab ich schon gmacht. es is ja ned so das ich nicht selber versuch das zu lösen. aba dort steht nix. tutorial wo das drinsteht hab ich auch keins gfunden.
also was müsst ich dort hin schreiben oder besser was kama dort hinschreiben?

lg flo

Neue Antwort erstellen


Übersicht BlitzMax, BlitzMax NG Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group