Zombieblast - Failed to assemble
BlitzMax Forums/BlitzMax Programming/Zombieblast - Failed to assemble
| ||
I've just tried to convert the Zombieblast Games sample over to SuperStrict, you only need to convert some variables over from none assigned to <variable>% or <variable>:Int then it builds but gets the following error... Build Error: Failed to assemble C:/Program Files/BlitzMax/samples/birdie/games/zombieblast/.bmx/game.bmx.gui.debug.win32.x86.s I'm going to try and pinpoint the change that caused the error but wondering if anyone has had a similar problem? |
| ||
Have tried building turning quickbuild off? |
| ||
No effect tried quickbuild off and on! ? |
| ||
It's OK for me. I'm guessing other stuff builds OK. I would also expect a few more error messages output. You might want to try deleting the .bmx directory. What happens when you turn off Build GUI App? |
| ||
Here's the code if you want to give it a go... [code\] SuperStrict ' ' Game Demo Coded By David Bird (Birdie) ' Incbin "media/sand.png" Incbin "media/ship1.png" Incbin "media/cloud.png" Incbin "media/shot.png" Incbin "media/shot2.PNG" Incbin "media/mud.png" Incbin "media/smoke.png" Incbin "media/scan.png" Incbin "media/zombie_0.png" Incbin "media/zombie_1.png" Incbin "media/zombie_2.PNG" Incbin "media/zombie_3.PNG" Incbin "media/zombie_4.PNG" Incbin "media/zombie_5.PNG" Incbin "media/zombie_6.png" Incbin "media/zombie_7.PNG" Incbin "media/Title.png" Incbin "media/HitSpace.png" Global C_ScreenWidth# = 640, C_ScreenHeight# = 480 Global C_ScreenMidX# =C_ScreenWidth/2 Global C_ScreenMidY# =C_ScreenHeight/2 Global MapPosition_X#=400, MapPosition_Y#=400 Global WorldSize% = 8192 Global Scanner_Rot# Global Scanner_X#= C_ScreenWidth - 80 Global Scanner_Y#= 80 Global Scanner_Scale# = 0.5 Global ObjectList:TList = New TList Global DetailList:TList = New TList Global CloudList:TList = New TList Global ScanList:TList = New TList Global TitleWidth#,TitleHeight# Graphics C_ScreenWidth, C_ScreenHeight ,32 HideMouse AutoImageFlags MASKEDIMAGE|FILTEREDIMAGE|MIPMAPPEDIMAGE 'media globals Global media_sand:TImage Global media_ship1:TImage Global media_cloud:TImage Global media_shots:TImage Global media_shot2:TImage Global media_mud:TImage Global media_smoke:TImage Global Media_scan:TImage Global media_Title:TImage Global media_HitSP:TImage Global Media_zombie:TImage[8] LoadMedia() Local P1:Player = New Player ObjectList.AddLast p1 'title screen While Not KeyDown(KEY_SPACE) Cls SetBlend SOLIDBLEND SetColor 255,255,255 TileImage Media_sand,MapPosition_X,MapPosition_Y MapPosition_X:+1 SetRotation 0 SetBlend ALPHABLEND SetColor 255,255,255 SetAlpha 1 SetScale TitleWidth,TitleHeight DrawImage Media_Title,C_ScreenMidX,C_ScreenMidY-24 SetScale 1,1 SetAlpha 0.5 DrawImage media_HitSP, C_ScreenMidX, C_ScreenHeight - media_HitSP.height Flip Wend Local a% For a=0 Until 100 cloud.Create( Rnd(-WorldSize,WorldSize), Rnd(-WorldSize,WorldSize) ) Next For a=0 Until 250 Baddie.Create(Rnd(-1000,1000), Rnd(-1000,1000), 0) Next While Not KeyDown(KEY_ESCAPE) Cls UpdateObjects() DrawLevel(p1) DrawObjects() DrawScanner( P1 ) Flip Wend End Function LoadMedia() SetHandle 0.5,0.5 AutoMidHandle True media_sand = LoadImage("incbin::media/sand.png") media_ship1 = LoadImage("incbin::media/ship1.png") media_cloud = LoadImage("incbin::media/cloud.png") media_shots = LoadImage("incbin::media/shot.png") media_shot2 = LoadImage("incbin::media/shot2.PNG") media_scan = LoadImage("incbin::media/scan.png") media_mud = LoadImage("incbin::media/mud.png") media_smoke = LoadImage("incbin::media/smoke.png") media_Title = LoadImage("incbin::media/Title.png") media_HitSP = LoadImage("incbin::media/HitSpace.png") 'scale to fullscreen TitleWidth = media_title.width / C_ScreenWidth TitleHeight= media_title.height / (C_ScreenHeight+48) Media_zombie[0] = LoadAnimImage("incbin::media/zombie_0.png",32,64,0,17) Media_zombie[1] = LoadAnimImage("incbin::media/zombie_1.png",32,64,0,17) Media_zombie[2] = LoadAnimImage("incbin::media/zombie_2.PNG",32,64,0,17) Media_zombie[3] = LoadAnimImage("incbin::media/zombie_3.PNG",32,64,0,17) Media_zombie[4] = LoadAnimImage("incbin::media/zombie_4.PNG",32,64,0,17) Media_zombie[5] = LoadAnimImage("incbin::media/zombie_5.PNG",32,64,0,17) Media_zombie[6] = LoadAnimImage("incbin::media/zombie_6.png",32,64,0,17) Media_zombie[7] = LoadAnimImage("incbin::media/zombie_7.PNG",32,64,0,17) EndFunction Function DrawLevel(o:Entity) 'using the object{o} position and direction to draw the map ' MapPosition_X = MapPosition_X + ((o.x - MapPosition_X)*0.25) ' MapPosition_Y = MapPosition_Y + ((o.y - MapPosition_Y)*0.25) MapPosition_X = o.x MapPosition_Y = o.y SetBlend SOLIDBLEND SetColor 255,255,255 SetScale 1,1 TileImage Media_sand,MapPosition_X,MapPosition_Y EndFunction Function UpdateObjects() Local e:Entity For e=EachIn ObjectList e.Update() Next EndFunction Function DrawObjects() Local e:Entity Local c:Cloud For c=EachIn CloudList c.Update() Next 'Draw Shadows For e=EachIn ObjectList e.DrawShadow() Next 'Draw Details Local d:Detail For d=EachIn DetailList d.Update(MapPosition_X, MapPosition_Y) Next 'Draw objects without shadows For e=EachIn ObjectList e.DrawBody() Next 'DrawClouds For c=EachIn CloudList c.DrawShadow() Next For c=EachIn CloudList c.DrawBody() Next EndFunction Type Entity Field x#,y# Field height# Field rotation# Field spd#=1 Method Update() Abstract Method DrawBody() Abstract Method DrawShadow() Abstract EndType Type Player Extends Entity Field RotationSpd# Field liftSpd# Field thrust# Field osc# Method Update() If KeyDown(KEY_UP) thrust:+0.01 If thrust>0.5 thrust = 0.5 EndIf EndIf If KeyDown(KEY_DOWN) thrust:-0.05 EndIf spd:+thrust If thrust<0 thrust = 0 EndIf If spd>8 spd=8 EndIf If spd<0.5 spd = 0.5 If KeyHit(KEY_SPACE) Local a%,thei# thei = height +(3.5*Cos(osc) ) Shots.Create x, y, spd+5, thei, rotation For a=0 Until 3 Shots.Create x, y, spd+5, thei, rotation+Rnd(-1.75,1.75) Next EndIf Local sz#=14*(1+(height/140.0)) Local sd#=16 Local cs#= Cos(rotation-90) Local sn#= Sin(rotation-90) Local ddx# = sz Local ddy# = 9 Local tx1# = ddx*cs + ddy*sn Local ty1# = ddx*sn - ddy*cs ddx=-ddx Local tx2# = ddx*cs + ddy*sn Local ty2# = ddx*sn - ddy*cs Local thei# thei = height +(3.5*Cos(osc) ) Local deltasm#= ( 0.5 * (spd/8.0)) Trail.Create( x+tx1, y+ty1, thei, deltasm, rotation ) Trail.Create( x+tx2, y+ty2, thei, deltasm, rotation ) Local tx#= 20 * Cos(rotation) Local ty#= 20 * Sin(rotation) Local rd#= 255*thrust*2 Local gn#= rd*0.7 Local bl#= gn*0.5 ColTrail.Create( x-tx, y-ty, thei, 0.3, rotation, [rd, gn, bl] ,2.0) ColTrail.Create( x-tx, y-ty, thei, 0.3, rotation, [rd*2.0, 0.0, 0.0] ,1.0) If KeyDown(KEY_RIGHT) rotationSpd:+0.25 If rotationSpd>2 rotationSpd=2 EndIf EndIf If KeyDown(KEY_LEFT) rotationSpd:-0.25 If rotationSpd<-2 rotationSpd=-2 EndIf EndIf rotation:+rotationSpd rotationSpd:*0.95 If KeyDown(KEY_A) liftSpd:-0.02 If liftSpd<-1 liftSpd=-1 EndIf EndIf If KeyDown(KEY_Z) liftSpd:+0.02 If liftSpd>1 liftSpd=1 EndIf EndIf height:+liftSpd liftspd:*0.985 If height<4 height = 4 liftspd = 0 EndIf If height>50 height = 50 liftspd=0 EndIf x=x+(spd*Cos(rotation)) y=y+(spd*Sin(rotation)) If x>WorldSize x=-WorldSize If x<-WorldSize x=WorldSize If y>WorldSize y=-WorldSize If y<-WorldSize y=WorldSize osc:+1 EndMethod Method DrawShadow() Local dx#,dy#,sz#,thei# thei = height +(3.5*Cos(osc) ) sz =(0.002*thei) SetRotation rotation+90 SetBlend ALPHABLEND SetScale 0.25+sz,0.25+sz SetColor 0,0,0 SetAlpha 0.5 DrawImage media_ship1,C_ScreenMidX + (x-MapPosition_X), C_ScreenMidY + ( y - MapPosition_Y ) EndMethod Method DrawBody() Local dx#,dy#,sz#,thei# thei = height +(3.5*Cos(osc) ) sz =(0.002*thei) SetAlpha 1 SetRotation rotation+90 SetBlend MASKBLEND SetColor 255,255,255 dx=thei/3.0 dy=thei SetScale 0.25+sz, 0.25+sz DrawImage media_ship1,(x-MapPosition_X+dx) + C_ScreenMidX,(y-MapPosition_Y+dy) + C_ScreenMidY EndMethod Function Create:Player(x#,y#) Local p:Player = New Player p.x=x p.y=y p.height = 4 p.spd=1 ObjectList.AddFirst p Return p EndFunction EndType Type Cloud Field x#,y#,height#, rotation% Method Update() x:+1 y:+0.1 If x>WorldSize x=-WorldSize If x<-WorldSize x=WorldSize If y>WorldSize y=-WorldSize If y<-WorldSize y=WorldSize EndMethod Method DrawBody() Local dx#,dy# dx=height/2.0 dy=height SetBlend LIGHTBLEND SetAlpha 1 SetScale 2.4,2.4 SetRotation rotation SetColor 255,255,255 DrawImage media_cloud,(MapPosition_X+dx-x) + C_ScreenMidX,(MapPosition_Y+dy-y) + C_ScreenMidY EndMethod Method DrawShadow() SetBlend ALPHABLEND SetColor 0,0,0 SetAlpha 0.2 SetScale 4, 4 SetRotation rotation DrawImage media_cloud,(MapPosition_X-x) + C_ScreenMidX,(MapPosition_Y-y) + C_ScreenMidY EndMethod Function Create:Cloud( x#, y# ) Local c:Cloud = New Cloud c.x= x c.y= y c.rotation = Rnd(360) c.height = 75 CloudList.AddLast c Return c EndFunction EndType Type Shots Extends Entity Field life% Method DrawBody() Local dx#,dy# dx=height/3.0 dy=height SetBlend MASKBLEND SetColor 255,255,255 SetAlpha 1 SetScale 1, 1 SetRotation rotation + 90 DrawImage media_shots,(MapPosition_X+dx-x) + C_ScreenMidX,(MapPosition_Y+dy-y) + C_ScreenMidY EndMethod Method DrawShadow() SetBlend ALPHABLEND SetColor 0,0,0 SetAlpha 0.2 SetScale 1, 1 SetRotation rotation + 90 DrawImage media_shots,(MapPosition_X-x) + C_ScreenMidX,(MapPosition_Y-y) + C_ScreenMidY EndMethod Method Update() x=x+(spd*Cos(rotation)) y=y+(spd*Sin(rotation)) If x>WorldSize x=-WorldSize If x<-WorldSize x=WorldSize If y>WorldSize y=-WorldSize If y<-WorldSize y=WorldSize If life<80 height:-0.75 EndIf Trail.Create( x, y, height, 0.3, rotation ) If height<0 ObjectList.Remove Self Mud.Create(x, y, rotation) Local ee# ee=1 SmokeEmitter.create( x#,y#, 0,ee, ee, ee ) Else life:-1 If life<0 ObjectList.Remove Self EndIf EndIf EndMethod Function Create:Shots(x#,y#,spd#,hei#,rot#) Local s:Shots = New Shots s.x=x s.y=y s.rotation = rot s.spd = spd s.height = hei s.life = 100 ObjectList.AddFirst s Return s EndFunction EndType Type Detail Field life% Field x#,y#,rot#,alp# Field col#[3] Method Update( wx#, wy# ) Abstract EndType Type Trail Extends Detail Field height# Field size# Method Update( wx#, wy# ) Local dx#, dy# alp:-0.005 If alp<0 life = 0 EndIf life:-1 If life<0 DetailList.Remove Self Else dx=height/3.0 dy=height SetAlpha alp SetBlend alphablend SetRotation rot SetColor 255,255,255 size:+0.05 SetScale 1,size DrawRect (wx-x+dx)+C_ScreenMidX,(wy-y+dy)+C_ScreenMidY,10,1 EndIf EndMethod Function Create:Trail(x#,y#,hei#,alp#,rot#) Local t:Trail = New Trail t.x=x t.y=y t.height= hei t.alp = alp t.rot = rot t.life= 100 t.size= 1 DetailList.AddLast t EndFunction EndType Type ColTrail Extends Detail Field height#,size# Method Update( wx#, wy# ) Local dx#, dy# alp:-0.01 size:*0.9 If alp<0 life = 0 EndIf life:-1 If life<0 DetailList.Remove Self Else dx=height/3.0 dy=height SetAlpha alp SetBlend LIGHTBLEND SetRotation rot SetColor Col[0],Col[1],Col[2] SetScale size,size DrawRect (wx-x+dx)+C_ScreenMidX,(wy-y+dy)+C_ScreenMidY,10,4 EndIf EndMethod Function Create:ColTrail(x#,y#,hei#,alp#,rot#,col#[],size#) Local t:ColTrail = New ColTrail t.x=x t.y=y t.height= hei t.alp = alp t.rot = rot t.life= 100 t.size=size t.col = col DetailList.AddLast t EndFunction EndType Type Mud Extends Detail Method Update( wx#, wy# ) SetRotation rot SetBlend ALPHABLEND If life<50 alp = Float(life)/100.0 EndIf SetAlpha alp SetColor 0,0,0 SetScale 0.5,0.5 DrawImage media_mud,(wx-x)+C_ScreenMidX,(wy-y)+C_ScreenMidY life:-1 If life<0 DetailList.Remove Self EndIf EndMethod Function Create:Mud(x#,y#, rot#) Local m:Mud = New Mud m.x = x m.y = y m.rot = rot m.alp = 0.5 m.life = 200 DetailList.AddLast M EndFunction EndType Type smoke_prt Field x#,y#,height# 'local to emitter Field scl# Field alp# Field dx#,dy# Field life% Field rot#, rotdir# Method Draw( tx#, ty# ) y:-dy x:+dx life:-1 alp:-0.005 scl:+0.017 If alp<=0 life =0 Return EndIf SetBlend LightBlend SetAlpha alp SetScale scl,scl SetRotation rot rot:+rotdir DrawImage media_smoke, tx+x, ty+y EndMethod Function Create:smoke_prt(scl#,alp#,x#,y#,dx#,dy#,life%) Local s:Smoke_prt = New Smoke_prt s.x=x s.y=y s.dx=dx s.dy=dy s.life=life s.alp=alp s.scl=scl s.rotdir = Rnd(-4,4) s.rot = Rnd(360) Return s EndFunction EndType Type SmokeEmitter Extends Detail Field smlist:TList = New TList Field rd#,gn#,bl#, max_cnt%=50, cur_cnt% Method Update( wx#, wy# ) Local sp:smoke_prt SetColor 255*rd,255*gn,255*bl For sp=EachIn smlist sp.Draw((wx-x)+C_ScreenMidX, (wy-y)+C_ScreenMidY) If sp.life<0 'remove it and add another smlist.remove sp cur_cnt:-1 EndIf Next If cur_cnt<max_cnt smlist.addfirst( smoke_prt.Create( 0.2, 0.3, 0, 0, Rnd( -0.1, 0.1 ), Rnd(0.1,1), 40 ) ) cur_cnt:+1 EndIf life:-1 If life<0 DetailList.Remove Self smlist.clear() EndIf EndMethod Function Create:SmokeEmitter(x#,y#, rot#,cr#,cg#,cb#) Local sm:SmokeEmitter = New SmokeEmitter sm.x = x sm.y = y sm.rot = rot sm.alp = 0.20 sm.life = 50 sm.rd=cr sm.gn=cg sm.bl=cb DetailList.AddLast sm EndFunction EndType Type Baddie Extends Entity Field frame% = 0 Field frm_p% = 2 Field frm_t% = 0 Field direct%= 0 Field life% Method Update() frm_t:+1 If frm_t>frm_p frm_t= 0 frame:+1 If frame = 17 frame = 0 EndIf x=x+(spd*Cos(rotation-90)) y=y+(spd*Sin(rotation-90)) If x>WorldSize x=-WorldSize If x<-WorldSize x=WorldSize If y>WorldSize y=-WorldSize If y<-WorldSize y=WorldSize spd=0.3 rotation:+1 If rotation<0 rotation:+360 If rotation>=360 rotation:-360 direct = rotation / 45 EndMethod Method DrawShadow() Local dx% = -12 Local dy% = -4 SetBlend alphaBlend SetColor 0,0,0 SetAlpha 0.3 SetRotation -30 SetScale 0.43,0.47 DrawImage Media_zombie[direct],(MapPosition_X-x) + C_ScreenMidX+dx,(MapPosition_Y-y) + C_ScreenMidY+dy, frame EndMethod Method DrawBody() SetBlend alphaBlend SetColor 255,255,255 SetAlpha 1 SetRotation 0 SetScale 0.4,0.4 DrawImage Media_zombie[direct],(MapPosition_X-x) + C_ScreenMidX,(MapPosition_Y-y) + C_ScreenMidY, frame EndMethod Function Create:Baddie(x#,y#,spd#) Local s:Baddie = New Baddie s.x=x s.y=y s.rotation = Rand(350) s.spd = Rnd(1,2) s.height = 0 s.life = 100 ObjectList.AddFirst s Return s EndFunction EndType Type Scan_Object Field alp#,x#,y#,typ% Method Update(cx#, cy#) alp:-0.01 If alp<0 ScanList.Remove Self Else SetAlpha alp DrawRect cx+x,cy+y,5,5 EndIf EndMethod Function Create:Scan_Object(x#, y#, typ% ) Local so:Scan_Object = New Scan_Object so.x=x so.y=y so.typ=typ so.alp=0.4 ScanList.AddLast so EndFunction EndType Function DrawScanner(p:Player) 'according to a certain player SetBlend LightBlend SetColor 255,255,255 SetAlpha 0.5 SetRotation Scanner_Rot+90 Scanner_rot:-5 If scanner_rot<0 scanner_rot:+360 SetScale Scanner_Scale,Scanner_Scale DrawImage media_scan,Scanner_X,Scanner_Y Local b:Baddie Local so:Scan_Object Local dx#,dy#,ang#,ln# For b=EachIn ObjectList 'get angle to object dx=p.x-b.x dy=p.y-b.y ln=Sqr(dx*dx+dy*dy) If ln<1200 ang = ATan2(dx,dy) If ang<0 ang=360+ang If Abs(ang-(Scanner_rot))<2 'add a new dot on the scanner Scan_Object.Create(dx/20.0, dy/20.0, 0 ) EndIf EndIf Next SetBlend LightBlend SetAlpha 0.25 SetColor 48,64,48 SetRotation 0 DrawRect Scanner_X-64,Scanner_Y-64,256,256 SetColor 0,255,0 For so=EachIn ScanList so.Update(scanner_x,Scanner_Y) Next EndFunction [\code] |
| ||
Runs fine. |